...

Text file src/cuelang.org/go/cue/testdata/eval/issue599.txtar

Documentation: cuelang.org/go/cue/testdata/eval

     1-- in.cue --
     2package deps
     3
     4a: {
     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
    40b: {
    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 --
    63Leaks:  0
    64Freed:  47
    65Reused: 39
    66Allocs: 8
    67Retain: 0
    68
    69Unifications: 47
    70Conjuncts:    122
    71Disjuncts:    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 --
   152diff 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 --
   220Reordering
   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}

View as plain text