fix: jump to definition inside of a mutually inductive declaration
This commit is contained in:
parent
1107705525
commit
0bfcf434ac
2 changed files with 6 additions and 8 deletions
|
|
@ -127,18 +127,14 @@ private def inductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : Comm
|
|||
let (binders, type?) := expandOptDeclSig ctor[4]
|
||||
addDocString' ctorName ctorModifiers.docString?
|
||||
addAuxDeclarationRanges ctorName ctor ctor[2]
|
||||
pure { ref := ctor, modifiers := ctorModifiers, declName := ctorName, inferMod := inferMod, binders := binders, type? := type? : CtorView }
|
||||
return { ref := ctor, modifiers := ctorModifiers, declName := ctorName, inferMod := inferMod, binders := binders, type? := type? : CtorView }
|
||||
let classes ← getOptDerivingClasses decl[5]
|
||||
pure {
|
||||
return {
|
||||
ref := decl
|
||||
modifiers := modifiers
|
||||
shortDeclName := name
|
||||
declName := declName
|
||||
levelNames := levelNames
|
||||
binders := binders
|
||||
type? := type?
|
||||
ctors := ctors
|
||||
derivingClasses := classes
|
||||
declId, modifiers, declName, levelNames
|
||||
binders, type?, ctors
|
||||
}
|
||||
|
||||
private def classInductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : CommandElabM InductiveView :=
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ structure CtorView where
|
|||
|
||||
structure InductiveView where
|
||||
ref : Syntax
|
||||
declId : Syntax
|
||||
modifiers : Modifiers
|
||||
shortDeclName : Name
|
||||
declName : Name
|
||||
|
|
@ -676,6 +677,7 @@ private def mkInductiveDecl (vars : Array Expr) (views : Array InductiveView) :
|
|||
let mut indTypesArray := #[]
|
||||
for i in [:views.size] do
|
||||
let indFVar := indFVars[i]
|
||||
Term.addTermInfo (isBinder := true) views[i].declId indFVar
|
||||
let r := rs[i]
|
||||
let type ← mkForallFVars params r.type
|
||||
let ctors ← elabCtors indFVars indFVar params r
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue