cuelang.org/go@v0.13.0/cue/testdata/eval/issue3919.txtar (about)

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