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.
68 lines
1,006 B
Text
68 lines
1,006 B
Text
set_option pp.fullNames true
|
|
|
|
-- Issue 1
|
|
def foo := 10
|
|
|
|
def f (x : Nat) := x + x
|
|
|
|
namespace Bla
|
|
|
|
private def foo := "hello"
|
|
|
|
#check foo == "world" -- `foo` resolves to private `Bla.foo`
|
|
|
|
private def foo : Float := 1.0 -- should produce error like in other programming languages
|
|
|
|
end Bla
|
|
|
|
#check foo == 0
|
|
|
|
#check Bla.foo
|
|
|
|
-- Issue 2
|
|
namespace Boo
|
|
|
|
def boo := 100
|
|
|
|
namespace Bla
|
|
|
|
private def boo := "hello"
|
|
|
|
#check boo == "world" -- resolving to `Boo.Bla.boo` as expected
|
|
#check boo ++ "world" -- should work
|
|
|
|
end Bla
|
|
|
|
#check Bla.boo == "world"
|
|
#check boo == 100
|
|
|
|
end Boo
|
|
|
|
#check Boo.Bla.boo == "world"
|
|
#check Boo.boo == 100
|
|
|
|
/-
|
|
Should the following work?
|
|
```
|
|
namespace N
|
|
private def b := 10
|
|
end N
|
|
open N
|
|
#check b
|
|
```
|
|
-/
|
|
|
|
-- Issue 3
|
|
private def Nat.mul10 (x : Nat) := x * 10
|
|
def x := 10
|
|
|
|
#check x.mul10 -- dot-notation should work with local private declarations
|
|
|
|
|
|
-- Issue 4
|
|
|
|
def y := 10
|
|
private def y := "hello" -- produce error
|
|
|
|
private def z := 10
|
|
def z := "hello" -- produce error
|