-- in.cue --
#A: {
	a:      "foo"
	"\(a)": 3

	@test(eq, {
		a:   "foo"
		foo: 3
	})
}
#B: a: b: {
	c: string
	d: 2
} @test(eq, {
	c: string
	d: 2
})

#C: a: b: {
	c: *"d" | string
	(c): 2
} @test(eq, {
	c: *"d" | string
	d: 2
})

x: #B & #C @test(eq, {
	a: b: {
		c: *"d" | string
		d: 2
	}
})

-- evalv3regress.cue --
chained: x: {
	// TODO: add this once the todo is fixed.
	// @test(permute)
	(a.b): "foo"
	(x.hello): "true"
	a: b: "hello"

	@test(eq, {a: b: "hello", hello: "foo"}, incorrect, hint="shouldn't foo be in here?")
	@test(eq:todo, {a: b: "hello", hello: "foo", foo: "true"})
}
-- out/eval/stats --
Leaks:  0
Freed:  28
Reused: 16
Allocs: 12
Retain: 0

Unifications: 24
Conjuncts:    36
Disjuncts:    4

NumCloseIDs: 2
-- out/diff-v2-v3.txt --
Disjunctions with defaults: needs @test(final) for x.a.b.c field.
