This fixes an issue where the completion would use info nodes before the cursor for computing completions. Fixes https://github.com/leanprover/lean4/issues/3462. ToDo: - [x] Fix test failures for completions that previously worked by accident (cc: @Kha) - [x] stage0 update --------- Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
76 lines
4.7 KiB
Text
76 lines
4.7 KiB
Text
[Elab.info] • command @ ⟨3, 0⟩-⟨3, 31⟩ @ Lean.Elab.Command.elabSetOption
|
|
• [.] (Command.set_option "set_option" `trace.Elab.info []) @ ⟨3, 0⟩-⟨3, 26⟩
|
|
• option trace.Elab.info @ ⟨3, 11⟩-⟨3, 26⟩
|
|
1 + 2 + 3 : Nat
|
|
[Elab.info] • command @ ⟨5, 0⟩-⟨5, 16⟩ @ Lean.Elab.Command.elabCheck
|
|
• 1 + 2 + 3 : Nat @ ⟨5, 7⟩-⟨5, 16⟩ @ «_aux_Init_Notation___macroRules_term_+__2»
|
|
• Macro expansion
|
|
1 + 2 +
|
|
3
|
|
-- should propagate through multiple macro expansions
|
|
===>
|
|
binop% HAdd.hAdd✝ (1 + 2)
|
|
3
|
|
-- should propagate through multiple macro expansions
|
|
• 1 + 2 + 3 : Nat @ ⟨5, 7⟩†-⟨5, 16⟩† @ Lean.Elab.Term.Op.elabBinOp
|
|
• 1 + 2 + 3 : Nat @ ⟨5, 7⟩†-⟨5, 16⟩†
|
|
• 1 + 2 : Nat @ ⟨5, 7⟩-⟨5, 12⟩ @ «_aux_Init_Notation___macroRules_term_+__2»
|
|
• Macro expansion
|
|
1 + 2
|
|
===>
|
|
binop% HAdd.hAdd✝ 1 2
|
|
• 1 + 2 : Nat @ ⟨5, 7⟩†-⟨5, 12⟩†
|
|
• [.] HAdd.hAdd✝ : none @ ⟨5, 7⟩†-⟨5, 16⟩†
|
|
• [.] HAdd.hAdd✝ : none @ ⟨5, 7⟩†-⟨5, 12⟩†
|
|
• 1 : Nat @ ⟨5, 7⟩-⟨5, 8⟩ @ Lean.Elab.Term.elabNumLit
|
|
• 2 : Nat @ ⟨5, 11⟩-⟨5, 12⟩ @ Lean.Elab.Term.elabNumLit
|
|
• 3 : Nat @ ⟨5, 15⟩-⟨5, 16⟩ @ Lean.Elab.Term.elabNumLit
|
|
fun n m l => ↑n + (↑m + ↑l) : Nat → Nat → Nat → Int
|
|
[Elab.info] • command @ ⟨7, 0⟩-⟨7, 48⟩ @ Lean.Elab.Command.elabCheck
|
|
• fun n m l => ↑n + (↑m + ↑l) : Nat → Nat → Nat → Int @ ⟨7, 7⟩-⟨7, 48⟩ @ Lean.Elab.Term.elabFun
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] Nat : some Sort.{?_uniq} @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• n (isBinder := true) : Nat @ ⟨7, 12⟩-⟨7, 13⟩
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] Nat : some Sort.{?_uniq} @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• m (isBinder := true) : Nat @ ⟨7, 14⟩-⟨7, 15⟩
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] Nat : some Sort.{?_uniq} @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• Nat : Type @ ⟨7, 20⟩-⟨7, 23⟩
|
|
• l (isBinder := true) : Nat @ ⟨7, 16⟩-⟨7, 17⟩
|
|
• ↑n + (↑m + ↑l) : Int @ ⟨7, 28⟩-⟨7, 48⟩ @ Lean.Elab.Term.elabTypeAscription
|
|
• Int : Type @ ⟨7, 44⟩-⟨7, 47⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] Int : some Sort.{?_uniq} @ ⟨7, 44⟩-⟨7, 47⟩
|
|
• Int : Type @ ⟨7, 44⟩-⟨7, 47⟩
|
|
• ↑n + (↑m + ↑l) : Int @ ⟨7, 29⟩-⟨7, 41⟩ @ «_aux_Init_Notation___macroRules_term_+__2»
|
|
• Macro expansion
|
|
n + (m +' l)
|
|
===>
|
|
binop% HAdd.hAdd✝ n (m +' l)
|
|
• ↑n + (↑m + ↑l) : Int @ ⟨7, 29⟩†-⟨7, 41⟩† @ Lean.Elab.Term.Op.elabBinOp
|
|
• ↑n + (↑m + ↑l) : Int @ ⟨7, 29⟩†-⟨7, 41⟩†
|
|
• [.] HAdd.hAdd✝ : none @ ⟨7, 29⟩†-⟨7, 41⟩†
|
|
• n : Nat @ ⟨7, 29⟩-⟨7, 30⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] n : none @ ⟨7, 29⟩-⟨7, 30⟩
|
|
• n : Nat @ ⟨7, 29⟩-⟨7, 30⟩
|
|
• ↑m + ↑l : Int @ ⟨7, 34⟩-⟨7, 40⟩ @ «_aux_binopInfoTree___macroRules_term_+'__1»
|
|
• Macro expansion
|
|
m +' l
|
|
===>
|
|
m + l
|
|
• ↑m + ↑l : Int @ ⟨7, 34⟩†-⟨7, 40⟩† @ «_aux_Init_Notation___macroRules_term_+__2»
|
|
• Macro expansion
|
|
m + l
|
|
===>
|
|
binop% HAdd.hAdd✝ m l
|
|
• ↑m + ↑l : Int @ ⟨7, 34⟩†-⟨7, 40⟩†
|
|
• [.] HAdd.hAdd✝ : none @ ⟨7, 34⟩†-⟨7, 40⟩†
|
|
• m : Nat @ ⟨7, 34⟩-⟨7, 35⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] m : none @ ⟨7, 34⟩-⟨7, 35⟩
|
|
• m : Nat @ ⟨7, 34⟩-⟨7, 35⟩
|
|
• l : Nat @ ⟨7, 39⟩-⟨7, 40⟩ @ Lean.Elab.Term.elabIdent
|
|
• [.] l : none @ ⟨7, 39⟩-⟨7, 40⟩
|
|
• l : Nat @ ⟨7, 39⟩-⟨7, 40⟩
|
|
[Elab.info] • command @ ⟨8, 0⟩-⟨8, 0⟩ @ Lean.Elab.Command.elabEoi
|