internal/core/export: fix export of disjunction with eliminated defaults

This was a remnant of old semantics of defaults.

Fixes #950

Change-Id: I282192320c6dd327ace8dbca1cce0f81e88f0534
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/9725
Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
diff --git a/internal/core/adt/default.go b/internal/core/adt/default.go
index 31e137f..e239a26 100644
--- a/internal/core/adt/default.go
+++ b/internal/core/adt/default.go
@@ -29,10 +29,6 @@
 func (d *Disjunction) Default() Value {
 	switch d.NumDefaults {
 	case 0:
-		if d.HasDefaults {
-			// empty disjunction
-			return &Bottom{}
-		}
 		return d
 	case 1:
 		return d.Values[0]
diff --git a/internal/core/export/testdata/disjunction.txtar b/internal/core/export/testdata/disjunction.txtar
new file mode 100644
index 0000000..7b14767
--- /dev/null
+++ b/internal/core/export/testdata/disjunction.txtar
@@ -0,0 +1,53 @@
+-- in.cue --
+// Issue #950
+a: *1 | int
+b: *2 | int
+c: *(a & b) | 3
+-- out/definition --
+	// Issue #950
+a: *1 | int
+b: *2 | int
+c: *(a & b) | 3
+-- out/doc --
+[]
+- Issue #950
+
+[a]
+- Issue #950
+
+[b]
+[c]
+-- out/value --
+== Simplified
+{
+	// Issue #950
+	a: *1 | int
+	b: *2 | int
+	c: 1 | 2 | int | 3
+}
+== Raw
+{
+	// Issue #950
+	a: *1 | int
+	b: *2 | int
+	c: 1 | 2 | int | 3
+}
+== Final
+{
+	a: 1
+	b: 2
+	c: 1 | 2 | int | 3
+}
+== All
+{
+	// Issue #950
+	a: *1 | int
+	b: *2 | int
+	c: 1 | 2 | int | 3
+}
+== Eval
+{
+	a: 1
+	b: 2
+	c: 1 | 2 | int | 3
+}