diff options
Diffstat (limited to 'src/compiler/GF')
| -rw-r--r-- | src/compiler/GF/Compile/Compute/ConcreteNew.hs | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs index 9a8024697..ea55e77cb 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs @@ -297,29 +297,10 @@ glue env (v1,v2) = glu v1 v2 in error $ unlines [originalMsg ,"" - ,"There was a problem in the expression `" ++ term ++ "`" - ,"This can be due to two causes, check which one applies in your case." - ,"" - ,"1) You are trying to use + on runtime arguments. Even if you are using" - ," `"++term++"` in an oper, make sure that the oper isn't called in a" - ," linearization that takes arguments. Both of the following are illegal:" - ,"" - ," lin Test foo bar = foo.s + bar.s <- explicit + in a lin" - ," lin Test foo bar = opWithPlus foo bar <- the oper uses +" - ,"" - ,"2) One of the arguments in `"++term++"` is a bound variable" - ," from pattern matching a string, but the cases are non-exhaustive." - ," Example:" - ," case \"test\" of {" - ," x + \"a\" => x + \"b\" <- no applicable case for \"test\", so x = ???" - ," } ;" - ,"" - ," You can fix this by adding a catch-all case in the end:" - ," { x + \"a\" => x + \"b\" ;" - ," _ => \"default case\" } ;" - ,"" - ,"3) If neither applies, submit a bug report and we update the error message." - ," https://github.com/GrammaticalFramework/gf-core/issues" + ,"There was a problem in the expression `"++term++"`, either:" + ,"1) You are trying to use + on runtime arguments, possibly via an oper." + ,"2) One of the arguments in `"++term++"` is a bound variable from pattern matching a string, but the cases are non-exhaustive." + ,"For more help see https://github.com/GrammaticalFramework/gf-core/tree/master/doc/errors/gluing.md" ] |
