cuelang.org/go@v0.13.0/cue/testdata/fulleval/005_conditional_field.txtar (about)

     1  #name: conditional field
     2  #evalFull
     3  -- in.cue --
     4  
     5  if b {
     6  	a: "foo"
     7  }
     8  b: true
     9  c: {
    10  	a: 3
    11  	if a > 1 {
    12  		a: 3
    13  	}
    14  }
    15  d: {
    16  	a: int
    17  	if a > 1 {
    18  		a: 3
    19  	}
    20  }
    21  -- out/def --
    22  b: true
    23  a: "foo"
    24  c: {
    25  	a: 3
    26  }
    27  d: {
    28  	a: int
    29  	if a > 1 {
    30  		a: 3
    31  	}
    32  }
    33  -- out/legacy-debug --
    34  <0>{b: true, a: "foo", c: <1>{a: 3}, d: <2>{a: int if (<3>.a > 1) yield <4>{a: 3}}}
    35  -- out/compile --
    36  --- in.cue
    37  {
    38    if 〈0;b〉 {
    39      a: "foo"
    40    }
    41    b: true
    42    c: {
    43      a: 3
    44      if (〈0;a〉 > 1) {
    45        a: 3
    46      }
    47    }
    48    d: {
    49      a: int
    50      if (〈0;a〉 > 1) {
    51        a: 3
    52      }
    53    }
    54  }
    55  -- out/eval/stats --
    56  Leaks:  0
    57  Freed:  7
    58  Reused: 4
    59  Allocs: 3
    60  Retain: 1
    61  
    62  Unifications: 7
    63  Conjuncts:    7
    64  Disjuncts:    7
    65  -- out/evalalpha --
    66  (struct){
    67    a: (string){ "foo" }
    68    b: (bool){ true }
    69    c: (struct){
    70      a: (int){ 3 }
    71    }
    72    d: (_|_){
    73      // [incomplete] d: non-concrete value int in operand to >:
    74      //     ./in.cue:14:5
    75      //     ./in.cue:13:5
    76      //     ./in.cue:14:2
    77      a: (_|_){
    78        // [incomplete] d: non-concrete value int in operand to >:
    79        //     ./in.cue:14:5
    80        //     ./in.cue:13:5
    81        //     ./in.cue:14:2
    82      }
    83    }
    84  }
    85  -- diff/-out/evalalpha<==>+out/eval --
    86  diff old new
    87  --- old
    88  +++ new
    89  @@ -5,7 +5,15 @@
    90       a: (int){ 3 }
    91     }
    92     d: (_|_){
    93  -    // [cycle] cycle error:
    94  +    // [incomplete] d: non-concrete value int in operand to >:
    95       //     ./in.cue:14:5
    96  +    //     ./in.cue:13:5
    97  +    //     ./in.cue:14:2
    98  +    a: (_|_){
    99  +      // [incomplete] d: non-concrete value int in operand to >:
   100  +      //     ./in.cue:14:5
   101  +      //     ./in.cue:13:5
   102  +      //     ./in.cue:14:2
   103  +    }
   104     }
   105   }
   106  -- out/eval --
   107  (struct){
   108    a: (string){ "foo" }
   109    b: (bool){ true }
   110    c: (struct){
   111      a: (int){ 3 }
   112    }
   113    d: (_|_){
   114      // [cycle] cycle error:
   115      //     ./in.cue:14:5
   116    }
   117  }