summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/GF/Compile/GeneratePMCFG.hs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/compiler/GF/Compile/GeneratePMCFG.hs b/src/compiler/GF/Compile/GeneratePMCFG.hs
index f0c256775..0558715c6 100644
--- a/src/compiler/GF/Compile/GeneratePMCFG.hs
+++ b/src/compiler/GF/Compile/GeneratePMCFG.hs
@@ -614,6 +614,20 @@ mkArray lst = listArray (0,length lst-1) lst
mkSetArray map = array (0,Map.size map-1) [(v,k) | (k,v) <- Map.toList map]
bug msg = ppbug msg
-ppbug msg = error . render $ hang "Internal error in GeneratePMCFG:" 4 msg
+ppbug msg = error completeMsg
+ where
+ originalMsg = render $ hang "Internal error in GeneratePMCFG:" 4 msg
+ completeMsg =
+ unlines [originalMsg
+ ,""
+ ,"1) Check that you are not trying to pattern match a /runtime string/."
+ ," These are illegal:"
+ ," lin Test foo = case foo.s of {"
+ ," \"str\" => … } ; <- explicit matching argument of a lin"
+ ," lin Test foo = opThatMatches foo <- calling an oper that pattern matches"
+ ,""
+ ,"2) Not about pattern matching? Submit a bug report and we update the error message."
+ ," https://github.com/GrammaticalFramework/gf-core/issues"
+ ]
ppU = ppTerm Unqualified