github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/cue/testdata/comprehensions/closed.txtar (about)

     1  -- in.cue --
     2  dynamicTop: {
     3  	#D: {
     4  		for k, v in {foo: 123} {(k): v}
     5  	}
     6  }
     7  
     8  // Issue #1404
     9  dynamicDepth1: {
    10  	#D: {
    11  		a: foo: 123
    12  		b: {for k, v in a {(k): v}}
    13  	}
    14  }
    15  
    16  allowed: {
    17  	#D: {
    18  		if true {
    19  			d: int
    20  		}
    21  	}
    22  
    23  	vErr: #D & {d: 5}
    24  }
    25  
    26  disallowed: {
    27  	#D: {
    28  		if false {
    29  			d: int
    30  		}
    31  	}
    32  
    33  	vErr: #D & {d: 5}
    34  }
    35  -- out/eval --
    36  Errors:
    37  disallowed.vErr: field not allowed: d:
    38      ./in.cue:26:6
    39      ./in.cue:32:8
    40      ./in.cue:32:14
    41  
    42  Result:
    43  (_|_){
    44    // [eval]
    45    dynamicTop: (struct){
    46      #D: (#struct){
    47        foo: (int){ 123 }
    48      }
    49    }
    50    dynamicDepth1: (struct){
    51      #D: (#struct){
    52        a: (#struct){
    53          foo: (int){ 123 }
    54        }
    55        b: (#struct){
    56          foo: (int){ 123 }
    57        }
    58      }
    59    }
    60    allowed: (struct){
    61      #D: (#struct){
    62        d: (int){ int }
    63      }
    64      vErr: (#struct){
    65        d: (int){ 5 }
    66      }
    67    }
    68    disallowed: (_|_){
    69      // [eval]
    70      #D: (#struct){
    71      }
    72      vErr: (_|_){
    73        // [eval]
    74        d: (_|_){
    75          // [eval] disallowed.vErr: field not allowed: d:
    76          //     ./in.cue:26:6
    77          //     ./in.cue:32:8
    78          //     ./in.cue:32:14
    79        }
    80      }
    81    }
    82  }
    83  -- out/compile --
    84  --- in.cue
    85  {
    86    dynamicTop: {
    87      #D: {
    88        for k, v in {
    89          foo: 123
    90        } {
    91          〈1;k〉: 〈1;v〉
    92        }
    93      }
    94    }
    95    dynamicDepth1: {
    96      #D: {
    97        a: {
    98          foo: 123
    99        }
   100        b: {
   101          for k, v in 〈1;a〉 {
   102            〈1;k〉: 〈1;v〉
   103          }
   104        }
   105      }
   106    }
   107    allowed: {
   108      #D: {
   109        if true {
   110          d: int
   111        }
   112      }
   113      vErr: (〈0;#D〉 & {
   114        d: 5
   115      })
   116    }
   117    disallowed: {
   118      #D: {
   119        if false {
   120          d: int
   121        }
   122      }
   123      vErr: (〈0;#D〉 & {
   124        d: 5
   125      })
   126    }
   127  }