#name: non-structural direct cycles
#evalFull
-- in.cue --
c1: {bar: baz: 2} & c1.bar
c2: {bar:      1} & c2.bar
-- out/def --
c1: {
	bar: {
		baz: 2
	}
} & c1.bar
c2: _|_ // conflicting values {bar: 1} and 1 (mismatched types struct and int)
-- out/legacy-debug --
<0>{c1: <1>{bar: <2>{baz: 2}, baz: 2}, c2: _|_(conflicting values {bar: 1} and 1 (mismatched types struct and int))}
-- out/compile --
--- in.cue
{
  c1: ({
    bar: {
      baz: 2
    }
  } & 〈0;c1〉.bar)
  c2: ({
    bar: 1
  } & 〈0;c2〉.bar)
}
-- out/eval/stats --
Leaks:  0
Freed:  7
Reused: 3
Allocs: 4
Retain: 2

Unifications: 7
Conjuncts:    10
Disjuncts:    8
-- out/evalalpha --
Errors:
c2: conflicting values 1 and {bar:1} (mismatched types int and struct):
    ./in.cue:2:5
    ./in.cue:2:16

Result:
(_|_){
  // [eval]
  c1: (struct){
    bar: (struct){
      baz: (int){ 2 }
    }
    baz: (int){ 2 }
  }
  c2: (_|_){
    // [eval] c2: conflicting values 1 and {bar:1} (mismatched types int and struct):
    //     ./in.cue:2:5
    //     ./in.cue:2:16
    bar: (_|_){// 1
    }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -16,6 +16,7 @@
     // [eval] c2: conflicting values 1 and {bar:1} (mismatched types int and struct):
     //     ./in.cue:2:5
     //     ./in.cue:2:16
-    bar: (int){ 1 }
+    bar: (_|_){// 1
+    }
   }
 }
-- diff/todo/p3 --
Additional error message. Seems okay.
-- out/eval --
Errors:
c2: conflicting values 1 and {bar:1} (mismatched types int and struct):
    ./in.cue:2:5
    ./in.cue:2:16

Result:
(_|_){
  // [eval]
  c1: (struct){
    bar: (struct){
      baz: (int){ 2 }
    }
    baz: (int){ 2 }
  }
  c2: (_|_){
    // [eval] c2: conflicting values 1 and {bar:1} (mismatched types int and struct):
    //     ./in.cue:2:5
    //     ./in.cue:2:16
    bar: (int){ 1 }
  }
}
