/-! Basic incremental reuse in top-level tactic block -/ -- set_option trace.Elab.reuse true def basic : True := by dbg_trace "b 0" apply id dbg_trace "b 1" apply id dbg_trace "b 2" --^ sync --^ insert: ".5" -- RESET def trailingWhitespace : True := by dbg_trace "t 0" dbg_trace "t 1" dbg_trace "t 2" --^ sync --^ insert: "\n " -- RESET -- this used to restore the wrong elab state because of input context mis-tracking def haveBug : True := by have (a : Nat) : Nat → True := by intro n m --^ sync --^ delete: "intro n m" --^ sync --^ insert: "intro n m" --^ collectDiagnostics exact m /-! incremental reporting should obey `showPartialSyntaxErrors` -/ -- RESET def partialSyntax : True := by apply ( --^ collectDiagnostics /-! A tactic block not supported by incrementality should not accidentally swallow messages. -/ -- RESET def otherMessage : Nat × Nat where fst := no snd := by skip --^ collectDiagnostics /-! Starting to type a comment should not invalidate the state above it. -/ -- RESET def strayToken : True := by dbg_trace "s" unfold f --^ sync --^ insert: " -"