lean4-htt/tests/lean/mkProjStx.lean
2021-08-12 05:41:00 -07:00

25 lines
482 B
Text

import Lean
structure A where
x : Nat := 0
structure B extends A where
y : Nat := 0
structure C extends B where
z : Nat := 0
def c : C := {}
open Lean
open Lean.Elab
def tst (varName structName fieldName : Name) : TermElabM Unit := do
let c := mkIdent varName
let some p ← Lean.Elab.Term.StructInst.mkProjStx? c structName fieldName | throwError "failed"
let p ← Term.elabTerm p none
logInfo s!"{p}"
#eval tst `c `C `x
#eval tst `c `C `y
#eval tst `c `C `z