This PR sets up the new integrated test/bench suite. It then migrates all benchmarks and some related tests to the new suite. There's also some documentation and some linting. For now, a lot of the old tests are left alone so this PR doesn't become even larger than it already is. Eventually, all tests should be migrated to the new suite though so there isn't a confusing mix of two systems.
62 lines
954 B
Text
62 lines
954 B
Text
namespace Foo
|
|
|
|
scoped macro "foo!" x:term:max : term => `($x + 1)
|
|
|
|
#check foo! 10
|
|
|
|
theorem ex1 : foo! 10 = 11 := rfl
|
|
|
|
end Foo
|
|
|
|
#check foo! 10 -- Error
|
|
|
|
open Foo
|
|
|
|
#check foo! 10 -- works
|
|
|
|
theorem ex2 : foo! 10 = 11 := rfl
|
|
|
|
scoped macro "bla!" x:term:max : term => `($x * 2) -- Error scoped macros must be used inside namespaces
|
|
|
|
section
|
|
|
|
local macro "bla!" x:term:max : term => `($x * 2)
|
|
|
|
theorem ex3 : bla! 10 = 20 := rfl
|
|
|
|
end
|
|
|
|
#check bla! 10 -- Error unknown identifier `bla!`
|
|
|
|
def bla! := 20 -- bla! is still a valid identifier
|
|
|
|
syntax "bar!" term:max : term
|
|
|
|
-- Error scoped attributes must be used inside namespaces
|
|
scoped macro_rules | `(bar! $x) => `($x + 10)
|
|
|
|
section
|
|
|
|
local macro_rules | `(bar! $x) => `($x + 20)
|
|
|
|
#check bar! 10
|
|
|
|
end
|
|
|
|
-- Error no elaboration function
|
|
#check bar! 10
|
|
|
|
namespace Bar
|
|
|
|
scoped macro_rules | `(bar! $x) => `($x + 10)
|
|
|
|
#check bar! 10
|
|
|
|
end Bar
|
|
|
|
-- Error no elaboration function
|
|
#check bar! 10
|
|
|
|
open Bar
|
|
|
|
#check bar! 10
|