summaryrefslogtreecommitdiff
path: root/doc/errors
diff options
context:
space:
mode:
Diffstat (limited to 'doc/errors')
-rw-r--r--doc/errors/gluing.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/errors/gluing.md b/doc/errors/gluing.md
new file mode 100644
index 000000000..111f8406c
--- /dev/null
+++ b/doc/errors/gluing.md
@@ -0,0 +1,27 @@
+## unsupported token gluing `foo + bar`
+
+There was a problem in an expression using +, e.g. `foo + bar`.
+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
+`foo + bar` 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 `foo + bar` 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 to your problem, submit a bug report and we
+will update the error message and this documentation.
+
+ https://github.com/GrammaticalFramework/gf-core/issues