summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-01-22 18:11:44 +0100
committerPéter Diviánszky <divipp@gmail.com>2016-01-22 18:11:44 +0100
commit7f0ed623fc674108eb387ac8aa49afdd4d727942 (patch)
treec0dff995a6bce2f78e9d49cf3039ef5a143b9351
parentbb5e59001f892245c3d8b5110c4f897005a85b4e (diff)
better redefine error messages; move another wip test
-rw-r--r--src/LambdaCube/Compiler/Infer.hs2
-rw-r--r--testdata/language-features/adt/adt02.reject.out5
-rw-r--r--testdata/language-features/adt/gadt04.reject.lc (renamed from testdata/language-features/adt/gadt04.wip.reject.lc)1
-rw-r--r--testdata/language-features/adt/gadt04.reject.out6
-rw-r--r--testdata/language-features/adt/gadt04.wip.reject.out3
-rw-r--r--testdata/language-features/basic-values/def07.reject.out5
-rw-r--r--testdata/language-features/basic-values/redefine01.reject.out5
-rw-r--r--testdata/language-features/basic-values/typesyn03.reject.wip.out5
-rw-r--r--testdata/language-features/basic-values/typesyn04.reject.wip.out5
-rw-r--r--testdata/language-features/module/import04.reject.wip.out5
-rw-r--r--testdata/language-features/module/import10.reject.wip.out5
-rw-r--r--testdata/language-features/module/import11.reject.wip.out5
12 files changed, 39 insertions, 13 deletions
diff --git a/src/LambdaCube/Compiler/Infer.hs b/src/LambdaCube/Compiler/Infer.hs
index 82ed66f6..d97c66cb 100644
--- a/src/LambdaCube/Compiler/Infer.hs
+++ b/src/LambdaCube/Compiler/Infer.hs
@@ -1312,7 +1312,7 @@ addToEnv exs (si, s) (x, t) = do
1312 v <- gets $ Map.lookup s 1312 v <- gets $ Map.lookup s
1313 case v of 1313 case v of
1314 Nothing -> modify $ Map.insert s (closedExp x, closedExp t, si) 1314 Nothing -> modify $ Map.insert s (closedExp x, closedExp t, si)
1315 Just (_, _, si) -> getGEnv exs $ \ge -> throwError $ "already defined " ++ s ++ " at " ++ showSI ge si 1315 Just (_, _, si') -> getGEnv exs $ \ge -> throwError $ "already defined " ++ s ++ " at " ++ showSI ge si ++ "\n and at " ++ showSI ge si'
1316 1316
1317-- Ambiguous: (Int ~ F a) => Int 1317-- Ambiguous: (Int ~ F a) => Int
1318-- Not ambiguous: (Show a, a ~ F b) => b 1318-- Not ambiguous: (Show a, a ~ F b) => b
diff --git a/testdata/language-features/adt/adt02.reject.out b/testdata/language-features/adt/adt02.reject.out
index 6f8e3489..4be74985 100644
--- a/testdata/language-features/adt/adt02.reject.out
+++ b/testdata/language-features/adt/adt02.reject.out
@@ -1,3 +1,6 @@
1already defined thr3 at "testdata/language-features/adt/adt02.reject.lc" (line 5, column 13): 1already defined thr3 at "testdata/language-features/adt/adt02.reject.lc" (line 10, column 9):
2 , thr3 :: Int
3 ^^^^
4 and at "testdata/language-features/adt/adt02.reject.lc" (line 5, column 13):
2 , thr3 :: Bool 5 , thr3 :: Bool
3 ^^^^ \ No newline at end of file 6 ^^^^ \ No newline at end of file
diff --git a/testdata/language-features/adt/gadt04.wip.reject.lc b/testdata/language-features/adt/gadt04.reject.lc
index 97fb734e..0290da53 100644
--- a/testdata/language-features/adt/gadt04.wip.reject.lc
+++ b/testdata/language-features/adt/gadt04.reject.lc
@@ -5,4 +5,3 @@ data M :: Type -> String -> Type where
5data M2 :: Type -> String -> Type where 5data M2 :: Type -> String -> Type where
6 Value :: a -> forall m . M2 a m 6 Value :: a -> forall m . M2 a m
7 7
8-- NOTE: The compiler crashes, instead of compilation error
diff --git a/testdata/language-features/adt/gadt04.reject.out b/testdata/language-features/adt/gadt04.reject.out
new file mode 100644
index 00000000..d02a455c
--- /dev/null
+++ b/testdata/language-features/adt/gadt04.reject.out
@@ -0,0 +1,6 @@
1already defined Value at "testdata/language-features/adt/gadt04.reject.lc" (line 6, column 3):
2 Value :: a -> forall m . M2 a m
3 ^^^^^
4 and at "testdata/language-features/adt/gadt04.reject.lc" (line 3, column 3):
5 Value :: a -> forall m . M a m
6 ^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/adt/gadt04.wip.reject.out b/testdata/language-features/adt/gadt04.wip.reject.out
deleted file mode 100644
index 20d44855..00000000
--- a/testdata/language-features/adt/gadt04.wip.reject.out
+++ /dev/null
@@ -1,3 +0,0 @@
1already defined Value at "testdata/language-features/adt/gadt04.wip.reject.lc" (line 3, column 3):
2 Value :: a -> forall m . M a m
3 ^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/basic-values/def07.reject.out b/testdata/language-features/basic-values/def07.reject.out
index eaa94222..9684e72e 100644
--- a/testdata/language-features/basic-values/def07.reject.out
+++ b/testdata/language-features/basic-values/def07.reject.out
@@ -1,3 +1,6 @@
1already defined fun at "testdata/language-features/basic-values/def07.reject.lc" (line 1, column 1): 1already defined fun at "testdata/language-features/basic-values/def07.reject.lc" (line 4, column 1):
2fun _ = '_'
3^^^
4 and at "testdata/language-features/basic-values/def07.reject.lc" (line 1, column 1):
2fun 1 = '1' 5fun 1 = '1'
3^^^ \ No newline at end of file 6^^^ \ No newline at end of file
diff --git a/testdata/language-features/basic-values/redefine01.reject.out b/testdata/language-features/basic-values/redefine01.reject.out
index f1aa1f4b..d327df62 100644
--- a/testdata/language-features/basic-values/redefine01.reject.out
+++ b/testdata/language-features/basic-values/redefine01.reject.out
@@ -1,3 +1,6 @@
1already defined unit at "testdata/language-features/basic-values/redefine01.reject.lc" (line 1, column 1): 1already defined unit at "testdata/language-features/basic-values/redefine01.reject.lc" (line 3, column 1):
2unit = ()
3^^^^
4 and at "testdata/language-features/basic-values/redefine01.reject.lc" (line 1, column 1):
2unit = () 5unit = ()
3^^^^ \ No newline at end of file 6^^^^ \ No newline at end of file
diff --git a/testdata/language-features/basic-values/typesyn03.reject.wip.out b/testdata/language-features/basic-values/typesyn03.reject.wip.out
index 5af3b32d..1603c448 100644
--- a/testdata/language-features/basic-values/typesyn03.reject.wip.out
+++ b/testdata/language-features/basic-values/typesyn03.reject.wip.out
@@ -1,3 +1,6 @@
1already defined 'MyUnit at "testdata/language-features/basic-values/typesyn03.reject.wip.lc" (line 1, column 6): 1already defined 'MyUnit at "testdata/language-features/basic-values/typesyn03.reject.wip.lc" (line 2, column 6):
2type MyUnit = ()
3 ^^^^^^
4 and at "testdata/language-features/basic-values/typesyn03.reject.wip.lc" (line 1, column 6):
2type MyUnit = () 5type MyUnit = ()
3 ^^^^^^ \ No newline at end of file 6 ^^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/basic-values/typesyn04.reject.wip.out b/testdata/language-features/basic-values/typesyn04.reject.wip.out
index 62d05d81..249d56b1 100644
--- a/testdata/language-features/basic-values/typesyn04.reject.wip.out
+++ b/testdata/language-features/basic-values/typesyn04.reject.wip.out
@@ -1,3 +1,6 @@
1already defined 'MyUnit at "testdata/language-features/basic-values/typesyn04.reject.wip.lc" (line 1, column 6): 1already defined 'MyUnit at "testdata/language-features/basic-values/typesyn04.reject.wip.lc" (line 2, column 6):
2type MyUnit = ()
3 ^^^^^^
4 and at "testdata/language-features/basic-values/typesyn04.reject.wip.lc" (line 1, column 6):
2type MyUnit = () 5type MyUnit = ()
3 ^^^^^^ \ No newline at end of file 6 ^^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/module/import04.reject.wip.out b/testdata/language-features/module/import04.reject.wip.out
index 62aa6e38..fbe94452 100644
--- a/testdata/language-features/module/import04.reject.wip.out
+++ b/testdata/language-features/module/import04.reject.wip.out
@@ -1,3 +1,6 @@
1already defined hello at "testdata/language-features/module/Hello01.lc" (line 3, column 1): 1already defined hello at "testdata/language-features/module/import04.reject.wip.lc" (line 4, column 1):
2hello = "hello"
3^^^^^
4 and at "testdata/language-features/module/Hello01.lc" (line 3, column 1):
2-- redefine hello 5-- redefine hello
3^^^^^ \ No newline at end of file 6^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/module/import10.reject.wip.out b/testdata/language-features/module/import10.reject.wip.out
index a1fb7551..b05b6201 100644
--- a/testdata/language-features/module/import10.reject.wip.out
+++ b/testdata/language-features/module/import10.reject.wip.out
@@ -1,3 +1,6 @@
1already defined 'MyUnit at "testdata/language-features/module/TypeSyn01.lc" (line 2, column 6): 1already defined 'MyUnit at "testdata/language-features/module/import10.reject.wip.lc" (line 3, column 6):
2type MyUnit = ()
3 ^^^^^^
4 and at "testdata/language-features/module/TypeSyn01.lc" (line 2, column 6):
2 5
3 ^^^^^^ \ No newline at end of file 6 ^^^^^^ \ No newline at end of file
diff --git a/testdata/language-features/module/import11.reject.wip.out b/testdata/language-features/module/import11.reject.wip.out
index a1fb7551..efa5bd07 100644
--- a/testdata/language-features/module/import11.reject.wip.out
+++ b/testdata/language-features/module/import11.reject.wip.out
@@ -1,3 +1,6 @@
1already defined 'MyUnit at "testdata/language-features/module/TypeSyn01.lc" (line 2, column 6): 1already defined 'MyUnit at "testdata/language-features/module/import11.reject.wip.lc" (line 3, column 6):
2type MyUnit = ()
3 ^^^^^^
4 and at "testdata/language-features/module/TypeSyn01.lc" (line 2, column 6):
2 5
3 ^^^^^^ \ No newline at end of file 6 ^^^^^^ \ No newline at end of file