cuelang.org/go@v0.10.1/cue/testdata/references/letcycle.txtar (about)

     1  -- in.cue --
     2  import "list"
     3  
     4  cycles: {
     5  	a: {
     6  		let A = {c: B}
     7  		let B = A
     8  		out: A
     9  	}
    10  
    11  	b: {
    12  		let A = {c: B}
    13  		let B = {A.c}
    14  		out: A
    15  	}
    16  
    17  	issue1042: {
    18  		#FullAdder: {
    19  			// IN
    20  			a: bool
    21  			b: bool
    22  			c: bool
    23  			// OUT
    24  			sum:   bool
    25  			carry: bool
    26  		}
    27  
    28  		#Add16: {
    29  			a:   [bool] * 16
    30  			b:   [bool] * 16
    31  			out: [bool] * 16
    32  
    33  			let fulladders = [
    34  				for i in list.Range(0, 4, 1) {
    35  					#FullAdder & {"a": a[i], "b": b[i], c: carries[i]}
    36  				},
    37  			]
    38  			let carries = [
    39  				false,
    40  				for i in list.Range(0, 4, 1) {fulladders[i].carry},
    41  			]
    42  			out: [
    43  				for i in list.Range(0, 4, 1) {fulladders[i].sum},
    44  			]
    45  		}
    46  	}
    47  }
    48  -- out/compile --
    49  cycles.a.let[].c.c: cyclic references in let clause or alias:
    50      ./in.cue:5:15
    51  cycles.b.let[].c.c: cyclic references in let clause or alias:
    52      ./in.cue:11:15
    53  cycles.issue1042.#Add16.let[].for[].c.for[].for[].c: cyclic references in let clause or alias:
    54      ./in.cue:34:45
    55  --- in.cue
    56  {
    57    cycles: {
    58      a: {
    59        let A#1 = {
    60          c: 〈1;let B#2〉
    61        }
    62        let B#2 = 〈0;let A#1〉
    63        out: 〈0;let A#1〉
    64      }
    65      b: {
    66        let A#3 = {
    67          c: 〈1;let B#4〉
    68        }
    69        let B#4 = {
    70          〈1;let A#3〉.c
    71        }
    72        out: 〈0;let A#3〉
    73      }
    74      issue1042: {
    75        #FullAdder: {
    76          a: bool
    77          b: bool
    78          c: bool
    79          sum: bool
    80          carry: bool
    81        }
    82        #Add16: {
    83          a: ([
    84            bool,
    85          ] * 16)
    86          b: ([
    87            bool,
    88          ] * 16)
    89          out: ([
    90            bool,
    91          ] * 16)
    92          let fulladders#5 = [
    93            for _, i in 〈import;list〉.Range(0, 4, 1) {
    94              (〈4;#FullAdder〉 & {
    95                a: 〈4;a〉[〈2;i〉]
    96                b: 〈4;b〉[〈2;i〉]
    97                c: 〈4;let carries#6〉[〈2;i〉]
    98              })
    99            },
   100          ]
   101          let carries#6 = [
   102            false,
   103            for _, i in 〈import;list〉.Range(0, 4, 1) {
   104              〈3;let fulladders#5〉[〈1;i〉].carry
   105            },
   106          ]
   107          out: [
   108            for _, i in 〈import;list〉.Range(0, 4, 1) {
   109              〈3;let fulladders#5〉[〈1;i〉].sum
   110            },
   111          ]
   112        }
   113      }
   114    }
   115  }
   116  -- out/eval --
   117  cycles.a.let[].c.c: cyclic references in let clause or alias:
   118      ./in.cue:5:15
   119  cycles.b.let[].c.c: cyclic references in let clause or alias:
   120      ./in.cue:11:15
   121  cycles.issue1042.#Add16.let[].for[].c.for[].for[].c: cyclic references in let clause or alias:
   122      ./in.cue:34:45