cuelang.org/go@v0.13.0/cue/testdata/resolve/040_references_from_template_to_concrete.txtar (about)

     1  #name: references from template to concrete
     2  #evalPartial
     3  -- in.cue --
     4  res: [t]
     5  t: [X=string]: {
     6  	a: c + b.str
     7  	b: str: string
     8  	c: "X"
     9  }
    10  t: x: {b: str: "DDDD"}
    11  -- out/def --
    12  res: [t]
    13  t: {
    14  	{[X=string]: {
    15  		a: c + b.str, c: "X", b: {
    16  			str:          string
    17  		}
    18  	}}
    19  	x: {
    20  		a: "XDDDD"
    21  		c: "X"
    22  		b: {
    23  			str: "DDDD"
    24  		}
    25  	}
    26  }
    27  -- out/export --
    28  res: [{
    29  	x: {
    30  		a: "XDDDD"
    31  		c: "X"
    32  		b: {
    33  			str: "DDDD"
    34  		}
    35  	}
    36  }]
    37  t: {
    38  	x: {
    39  		a: "XDDDD"
    40  		c: "X"
    41  		b: {
    42  			str: "DDDD"
    43  		}
    44  	}
    45  }
    46  -- out/yaml --
    47  res:
    48  - x:
    49      a: XDDDD
    50      c: X
    51      b:
    52        str: DDDD
    53  t:
    54    x:
    55      a: XDDDD
    56      c: X
    57      b:
    58        str: DDDD
    59  -- out/json --
    60  {"res":[{"x":{"a":"XDDDD","c":"X","b":{"str":"DDDD"}}}],"t":{"x":{"a":"XDDDD","c":"X","b":{"str":"DDDD"}}}}
    61  -- out/legacy-debug --
    62  <0>{res: [<1>{[]: <2>(X: string)-><3>{a: (<3>.c + <3>.b.str), c: "X", b: <4>{str: string}}, x: <5>{a: "XDDDD", c: "X", b: <6>{str: "DDDD"}}}], t: <7>{[]: <2>(X: string)-><3>{a: (<3>.c + <3>.b.str), c: "X", b: <4>{str: string}}, x: <8>{a: "XDDDD", c: "X", b: <9>{str: "DDDD"}}}}
    63  -- out/compile --
    64  --- in.cue
    65  {
    66    res: [
    67      〈1;t〉,
    68    ]
    69    t: {
    70      [string]: {
    71        a: (〈0;c〉 + 〈0;b〉.str)
    72        b: {
    73          str: string
    74        }
    75        c: "X"
    76      }
    77    }
    78    t: {
    79      x: {
    80        b: {
    81          str: "DDDD"
    82        }
    83      }
    84    }
    85  }
    86  -- out/eval/stats --
    87  Leaks:  0
    88  Freed:  14
    89  Reused: 7
    90  Allocs: 7
    91  Retain: 3
    92  
    93  Unifications: 14
    94  Conjuncts:    21
    95  Disjuncts:    15
    96  -- out/evalalpha --
    97  (struct){
    98    res: (#list){
    99      0: ~(t)
   100    }
   101    t: (struct){
   102      x: (struct){
   103        b: (struct){
   104          str: (string){ "DDDD" }
   105        }
   106        a: (string){ "XDDDD" }
   107        c: (string){ "X" }
   108      }
   109    }
   110  }
   111  -- diff/-out/evalalpha<==>+out/eval --
   112  diff old new
   113  --- old
   114  +++ new
   115  @@ -1,14 +1,6 @@
   116   (struct){
   117     res: (#list){
   118  -    0: (struct){
   119  -      x: (struct){
   120  -        b: (struct){
   121  -          str: (string){ "DDDD" }
   122  -        }
   123  -        a: (string){ "XDDDD" }
   124  -        c: (string){ "X" }
   125  -      }
   126  -    }
   127  +    0: ~(t)
   128     }
   129     t: (struct){
   130       x: (struct){
   131  -- out/eval --
   132  (struct){
   133    res: (#list){
   134      0: (struct){
   135        x: (struct){
   136          b: (struct){
   137            str: (string){ "DDDD" }
   138          }
   139          a: (string){ "XDDDD" }
   140          c: (string){ "X" }
   141        }
   142      }
   143    }
   144    t: (struct){
   145      x: (struct){
   146        b: (struct){
   147          str: (string){ "DDDD" }
   148        }
   149        a: (string){ "XDDDD" }
   150        c: (string){ "X" }
   151      }
   152    }
   153  }