This PR allows the dot ident notation to resolve to the current definition, or to any of the other definitions in the same mutual block. Existing code that uses dot ident notation may need to have `nonrec` added if the ident has the same name as the definition. Closes #6601
26 lines
374 B
Text
26 lines
374 B
Text
/-! Dot ident notation should resolve mutual definitions -/
|
|
|
|
mutual
|
|
|
|
inductive Even
|
|
| zero
|
|
| succ (n : Odd)
|
|
deriving Inhabited
|
|
|
|
inductive Odd
|
|
| succ (n : Even)
|
|
deriving Inhabited
|
|
|
|
end
|
|
|
|
mutual
|
|
|
|
def Even.ofNat : Nat → Even
|
|
| 0 => .zero
|
|
| n + 1 => .succ (.ofNat n)
|
|
|
|
def Odd.ofNat : Nat → Odd
|
|
| 0 => panic! "invalid input"
|
|
| n + 1 => .succ (.ofNat n)
|
|
|
|
end
|