cuelang.org/go@v0.10.1/cue/testdata/eval/issue599.txtar (about)

     1  -- in.cue --
     2  package deps
     3  
     4  a: {
     5  	#A: {
     6  		n: string
     7  		depends_on: [...#AnyA]
     8  	}
     9  
    10  	#AnyA: {
    11  		n: string
    12  		depends_on: [...#AnyA]
    13  		...
    14  	}
    15  
    16  	#A1: {
    17  		#A
    18  		x: int
    19  		y: z: string // Comment to avoid error
    20  	}
    21  
    22  	#A2: {
    23  		#A
    24  		i: string
    25  	}
    26  
    27  	s: [Name=string]: #AnyA & {n: Name}
    28  
    29  	s: foo: #A1 & {
    30  		x: 10
    31  		y: z: "z" // Comment to avoid error
    32  	}
    33  
    34  	s: bar: #A2 & {
    35  		i: "hello bar"
    36  		depends_on: [s.foo]
    37  	}
    38  }
    39  
    40  b: {
    41  	#A: {
    42  		f: {...}
    43  	}
    44  
    45  	#A1: {
    46  		#A
    47  		// f: {...} // Uncomment to fix
    48  	}
    49  
    50  	#C: {
    51  		d: {...}
    52  	}
    53  
    54  	s: [string]: #A1
    55  
    56  	s: foo: {
    57  		f: #C & {
    58  			d: foo: "bar"
    59  		}
    60  	}
    61  }
    62  -- out/eval/stats --
    63  Leaks:  0
    64  Freed:  47
    65  Reused: 39
    66  Allocs: 8
    67  Retain: 0
    68  
    69  Unifications: 47
    70  Conjuncts:    122
    71  Disjuncts:    47
    72  -- out/evalalpha --
    73  (struct){
    74    a: (struct){
    75      #A: (#struct){
    76        n: (string){ string }
    77        depends_on: (list){
    78        }
    79      }
    80      #AnyA: (#struct){
    81        n: (string){ string }
    82        depends_on: (list){
    83        }
    84      }
    85      #A1: (#struct){
    86        x: (int){ int }
    87        y: (#struct){
    88          z: (string){ string }
    89        }
    90        n: (string){ string }
    91        depends_on: (list){
    92        }
    93      }
    94      #A2: (#struct){
    95        i: (string){ string }
    96        n: (string){ string }
    97        depends_on: (list){
    98        }
    99      }
   100      s: (struct){
   101        foo: (#struct){
   102          x: (int){ 10 }
   103          y: (#struct){
   104            z: (string){ "z" }
   105          }
   106          n: (string){ "foo" }
   107          depends_on: (list){
   108          }
   109        }
   110        bar: (#struct){
   111          i: (string){ "hello bar" }
   112          depends_on: (#list){
   113            0: (#struct){
   114              x: (int){ 10 }
   115              y: (#struct){
   116                z: (string){ "z" }
   117              }
   118              n: (string){ "foo" }
   119              depends_on: (list){
   120              }
   121            }
   122          }
   123          n: (string){ "bar" }
   124        }
   125      }
   126    }
   127    b: (struct){
   128      #A: (#struct){
   129        f: (#struct){
   130        }
   131      }
   132      #A1: (#struct){
   133        f: (#struct){
   134        }
   135      }
   136      #C: (#struct){
   137        d: (#struct){
   138        }
   139      }
   140      s: (struct){
   141        foo: (#struct){
   142          f: (#struct){
   143            d: (#struct){
   144              foo: (string){ "bar" }
   145            }
   146          }
   147        }
   148      }
   149    }
   150  }
   151  -- diff/-out/evalalpha<==>+out/eval --
   152  diff old new
   153  --- old
   154  +++ new
   155  @@ -11,44 +11,44 @@
   156         }
   157       }
   158       #A1: (#struct){
   159  -      n: (string){ string }
   160  -      depends_on: (list){
   161  -      }
   162         x: (int){ int }
   163         y: (#struct){
   164           z: (string){ string }
   165         }
   166  +      n: (string){ string }
   167  +      depends_on: (list){
   168  +      }
   169       }
   170       #A2: (#struct){
   171  -      n: (string){ string }
   172  -      depends_on: (list){
   173  -      }
   174         i: (string){ string }
   175  -    }
   176  -    s: (struct){
   177  -      foo: (#struct){
   178  -        n: (string){ "foo" }
   179  -        depends_on: (list){
   180  -        }
   181  +      n: (string){ string }
   182  +      depends_on: (list){
   183  +      }
   184  +    }
   185  +    s: (struct){
   186  +      foo: (#struct){
   187           x: (int){ 10 }
   188           y: (#struct){
   189             z: (string){ "z" }
   190           }
   191  +        n: (string){ "foo" }
   192  +        depends_on: (list){
   193  +        }
   194         }
   195         bar: (#struct){
   196  -        n: (string){ "bar" }
   197  +        i: (string){ "hello bar" }
   198           depends_on: (#list){
   199             0: (#struct){
   200  -            n: (string){ "foo" }
   201  -            depends_on: (list){
   202  -            }
   203               x: (int){ 10 }
   204               y: (#struct){
   205                 z: (string){ "z" }
   206               }
   207  -          }
   208  -        }
   209  -        i: (string){ "hello bar" }
   210  +            n: (string){ "foo" }
   211  +            depends_on: (list){
   212  +            }
   213  +          }
   214  +        }
   215  +        n: (string){ "bar" }
   216         }
   217       }
   218     }
   219  -- diff/todo/p3 --
   220  Reordering
   221  -- out/eval --
   222  (struct){
   223    a: (struct){
   224      #A: (#struct){
   225        n: (string){ string }
   226        depends_on: (list){
   227        }
   228      }
   229      #AnyA: (#struct){
   230        n: (string){ string }
   231        depends_on: (list){
   232        }
   233      }
   234      #A1: (#struct){
   235        n: (string){ string }
   236        depends_on: (list){
   237        }
   238        x: (int){ int }
   239        y: (#struct){
   240          z: (string){ string }
   241        }
   242      }
   243      #A2: (#struct){
   244        n: (string){ string }
   245        depends_on: (list){
   246        }
   247        i: (string){ string }
   248      }
   249      s: (struct){
   250        foo: (#struct){
   251          n: (string){ "foo" }
   252          depends_on: (list){
   253          }
   254          x: (int){ 10 }
   255          y: (#struct){
   256            z: (string){ "z" }
   257          }
   258        }
   259        bar: (#struct){
   260          n: (string){ "bar" }
   261          depends_on: (#list){
   262            0: (#struct){
   263              n: (string){ "foo" }
   264              depends_on: (list){
   265              }
   266              x: (int){ 10 }
   267              y: (#struct){
   268                z: (string){ "z" }
   269              }
   270            }
   271          }
   272          i: (string){ "hello bar" }
   273        }
   274      }
   275    }
   276    b: (struct){
   277      #A: (#struct){
   278        f: (#struct){
   279        }
   280      }
   281      #A1: (#struct){
   282        f: (#struct){
   283        }
   284      }
   285      #C: (#struct){
   286        d: (#struct){
   287        }
   288      }
   289      s: (struct){
   290        foo: (#struct){
   291          f: (#struct){
   292            d: (#struct){
   293              foo: (string){ "bar" }
   294            }
   295          }
   296        }
   297      }
   298    }
   299  }
   300  -- out/compile --
   301  --- in.cue
   302  {
   303    a: {
   304      #A: {
   305        n: string
   306        depends_on: [
   307          ...〈2;#AnyA〉,
   308        ]
   309      }
   310      #AnyA: {
   311        n: string
   312        depends_on: [
   313          ...〈2;#AnyA〉,
   314        ]
   315        ...
   316      }
   317      #A1: {
   318        〈1;#A〉
   319        x: int
   320        y: {
   321          z: string
   322        }
   323      }
   324      #A2: {
   325        〈1;#A〉
   326        i: string
   327      }
   328      s: {
   329        [string]: (〈1;#AnyA〉 & {
   330          n: 〈1;-〉
   331        })
   332      }
   333      s: {
   334        foo: (〈1;#A1〉 & {
   335          x: 10
   336          y: {
   337            z: "z"
   338          }
   339        })
   340      }
   341      s: {
   342        bar: (〈1;#A2〉 & {
   343          i: "hello bar"
   344          depends_on: [
   345            〈3;s〉.foo,
   346          ]
   347        })
   348      }
   349    }
   350    b: {
   351      #A: {
   352        f: {
   353          ...
   354        }
   355      }
   356      #A1: {
   357        〈1;#A〉
   358      }
   359      #C: {
   360        d: {
   361          ...
   362        }
   363      }
   364      s: {
   365        [string]: 〈1;#A1〉
   366      }
   367      s: {
   368        foo: {
   369          f: (〈2;#C〉 & {
   370            d: {
   371              foo: "bar"
   372            }
   373          })
   374        }
   375      }
   376    }
   377  }