cuelang.org/go@v0.10.1/cue/testdata/resolve/043_diamond-shaped_constraints.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: diamond-shaped constraints
     4  #evalPartial
     5  -- in.cue --
     6  S: {
     7  	A: {
     8  		a: 1
     9  	}
    10  	B: A & {
    11  		b: 2
    12  	}
    13  }
    14  T: S & {// S == { A: { a:1 }, B: { a:1, b:2 } }
    15  	A: {
    16  		c: 3
    17  	}
    18  	B: {
    19  		d: 4 // Combines constraints S.A, S.B, T.A, and T.B // S.B & A
    20  	}
    21  }
    22  -- out/def --
    23  T: S & {
    24  	A: {
    25  		c: 3
    26  	}
    27  	B: {
    28  		d: 4
    29  	}
    30  }
    31  S: {
    32  	A: {
    33  		a: 1
    34  	}
    35  	B: A & {
    36  		b: 2
    37  	}
    38  }
    39  -- out/export --
    40  T: {
    41  	A: {
    42  		a: 1
    43  		c: 3
    44  	}
    45  	B: {
    46  		a: 1
    47  		b: 2
    48  		c: 3
    49  		d: 4
    50  	}
    51  }
    52  S: {
    53  	A: {
    54  		a: 1
    55  	}
    56  	B: {
    57  		a: 1
    58  		b: 2
    59  	}
    60  }
    61  -- out/yaml --
    62  T:
    63    A:
    64      a: 1
    65      c: 3
    66    B:
    67      a: 1
    68      b: 2
    69      c: 3
    70      d: 4
    71  S:
    72    A:
    73      a: 1
    74    B:
    75      a: 1
    76      b: 2
    77  -- out/json --
    78  {"T":{"A":{"a":1,"c":3},"B":{"a":1,"b":2,"c":3,"d":4}},"S":{"A":{"a":1},"B":{"a":1,"b":2}}}
    79  -- out/legacy-debug --
    80  <0>{T: <1>{A: <2>{a: 1, c: 3}, B: <3>{a: 1, b: 2, c: 3, d: 4}}, S: <4>{A: <5>{a: 1}, B: <6>{a: 1, b: 2}}}
    81  -- out/compile --
    82  --- in.cue
    83  {
    84    S: {
    85      A: {
    86        a: 1
    87      }
    88      B: (〈0;A〉 & {
    89        b: 2
    90      })
    91    }
    92    T: (〈0;S〉 & {
    93      A: {
    94        c: 3
    95      }
    96      B: {
    97        d: 4
    98      }
    99    })
   100  }
   101  -- out/eval/stats --
   102  Leaks:  0
   103  Freed:  16
   104  Reused: 12
   105  Allocs: 4
   106  Retain: 0
   107  
   108  Unifications: 16
   109  Conjuncts:    25
   110  Disjuncts:    16
   111  -- out/evalalpha --
   112  (struct){
   113    S: (struct){
   114      A: (struct){
   115        a: (int){ 1 }
   116      }
   117      B: (struct){
   118        b: (int){ 2 }
   119        a: (int){ 1 }
   120      }
   121    }
   122    T: (struct){
   123      A: (struct){
   124        c: (int){ 3 }
   125        a: (int){ 1 }
   126      }
   127      B: (struct){
   128        d: (int){ 4 }
   129        b: (int){ 2 }
   130        c: (int){ 3 }
   131        a: (int){ 1 }
   132      }
   133    }
   134  }
   135  -- diff/-out/evalalpha<==>+out/eval --
   136  diff old new
   137  --- old
   138  +++ new
   139  @@ -4,20 +4,20 @@
   140         a: (int){ 1 }
   141       }
   142       B: (struct){
   143  -      a: (int){ 1 }
   144  -      b: (int){ 2 }
   145  +      b: (int){ 2 }
   146  +      a: (int){ 1 }
   147       }
   148     }
   149     T: (struct){
   150       A: (struct){
   151  -      a: (int){ 1 }
   152  -      c: (int){ 3 }
   153  -    }
   154  -    B: (struct){
   155  -      a: (int){ 1 }
   156  -      c: (int){ 3 }
   157  -      b: (int){ 2 }
   158  +      c: (int){ 3 }
   159  +      a: (int){ 1 }
   160  +    }
   161  +    B: (struct){
   162         d: (int){ 4 }
   163  +      b: (int){ 2 }
   164  +      c: (int){ 3 }
   165  +      a: (int){ 1 }
   166       }
   167     }
   168   }
   169  -- diff/todo/p3 --
   170  Reordering
   171  -- out/eval --
   172  (struct){
   173    S: (struct){
   174      A: (struct){
   175        a: (int){ 1 }
   176      }
   177      B: (struct){
   178        a: (int){ 1 }
   179        b: (int){ 2 }
   180      }
   181    }
   182    T: (struct){
   183      A: (struct){
   184        a: (int){ 1 }
   185        c: (int){ 3 }
   186      }
   187      B: (struct){
   188        a: (int){ 1 }
   189        c: (int){ 3 }
   190        b: (int){ 2 }
   191        d: (int){ 4 }
   192      }
   193    }
   194  }