-- in.cue --
t1: {
	a
	a: a: 2 | 1
}
t2: {
	d: d.a
	d: a: a: 2 | 1
}
t3: {
	b: a
	b: (1 | 2) | 2
	a: 1 | 2
}
-- issue3437.cue --
// Panic with a structurally recursive disjunction where a field aliases to
// itself via a self-referential disjunction path.
// https://cuelang.org/issue/3437
issue3437: {
	r: L=L.a
	d: a: a: a: {b: 4} | d
	out: r & d
}
-- out/compile --
--- in.cue
{
  t1: {
    〈0;a〉
    a: {
      a: (2|1)
    }
  }
  t2: {
    d: 〈0;d〉.a
    d: {
      a: {
        a: (2|1)
      }
    }
  }
  t3: {
    b: 〈0;a〉
    b: ((1|2)|2)
    a: (1|2)
  }
}
--- issue3437.cue
{
  issue3437: {
    r: 〈0〉.a
    d: {
      a: {
        a: {
          a: ({
            b: 4
          }|〈3;d〉)
        }
      }
    }
    out: (〈0;r〉 & 〈0;d〉)
  }
}
