25 lines
561 B
Text
25 lines
561 B
Text
/-! Check for bug accidentally marking `m` as owned. -/
|
||
|
||
class MyClass (α : Type u) where
|
||
|
||
instance : MyClass Nat where
|
||
|
||
inductive MyOption (α : Type u) where
|
||
| none
|
||
| some (key : α)
|
||
|
||
namespace MyOption
|
||
|
||
def isSomeWithInstance [MyClass α] : MyOption α → Bool
|
||
| none => false
|
||
| some _ => true
|
||
|
||
def isSome : MyOption α → Bool
|
||
| none => false
|
||
| some _ => true
|
||
|
||
end MyOption
|
||
|
||
set_option trace.compiler.ir.result true in
|
||
def isSomeWithInstanceNat (m : { m : Array (MyOption Nat) // 0 < m.size }) : Bool :=
|
||
(m.1.uget 0 m.2).isSomeWithInstance
|