This PR makes `#guard_msgs` to treat `trace` messages separate from `info`, `warning` and `error`. It also introduce the ability to say `#guard_msgs (pass info`, like `(drop info)` so far, and also adds `(check info)` as the explicit form of `(info)`, for completeness. Fixes #8266
39 lines
894 B
Text
39 lines
894 B
Text
import Lean
|
|
|
|
/-!
|
|
# `withSetOptionIn`
|
|
|
|
This test checks that `withSetOptionIn` recurses into the command syntax (`stx[2]`) in
|
|
`set_option ... in <cmd>`.
|
|
|
|
Prior to #3806, `withSetOptionIn` erroneously recursed into the syntax `in` (`stx[1]`).
|
|
-/
|
|
|
|
open Lean Elab Command
|
|
|
|
/-- Trace `foo` when `set_option trace.debug true`. -/
|
|
elab "#trace_debug_foo" : command => do trace[debug] "foo"
|
|
|
|
/-- Elab `cmd` using `withSetOptionIn`. -/
|
|
elab "#test " cmd:command : command => withSetOptionIn elabCommand cmd
|
|
|
|
/-! ## Controls
|
|
|
|
Ensure that `#trace_debug_foo` works as expected.
|
|
-/
|
|
|
|
#guard_msgs in
|
|
#trace_debug_foo
|
|
|
|
/-- info: [debug] foo -/
|
|
#guard_msgs(trace) in
|
|
set_option trace.debug true in #trace_debug_foo
|
|
|
|
/-! ## Test
|
|
|
|
Should trace `[debug] foo`, and not log the error "unexpected command 'in'".
|
|
-/
|
|
|
|
/-- info: [debug] foo -/
|
|
#guard_msgs(trace) in
|
|
#test set_option trace.debug true in #trace_debug_foo
|