summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/Compute/AppPredefined.hs
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-10-20 14:36:30 +0000
committerhallgren <hallgren@chalmers.se>2011-10-20 14:36:30 +0000
commited451653bd9fa4d835cb263c06d0ecb9133b9935 (patch)
treecf6cc1e56c5cac76d4c9fb6c09a6bad456e3c151 /src/compiler/GF/Compile/Compute/AppPredefined.hs
parente5accc0d8d3c6d9cace9d4aff482ab285bf7e01b (diff)
Introduce an explicit error value in the Term type
This makes it easier to treat run-time errors (e.g. caused by calls to Predef.error) in a way that is more typical for a lazy functional language.
Diffstat (limited to 'src/compiler/GF/Compile/Compute/AppPredefined.hs')
-rw-r--r--src/compiler/GF/Compile/Compute/AppPredefined.hs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compiler/GF/Compile/Compute/AppPredefined.hs b/src/compiler/GF/Compile/Compute/AppPredefined.hs
index 42d53c3c2..d15d57001 100644
--- a/src/compiler/GF/Compile/Compute/AppPredefined.hs
+++ b/src/compiler/GF/Compile/Compute/AppPredefined.hs
@@ -107,6 +107,7 @@ appPredefined t = case t of
(K s) | f == cIsUpper -> retb $ if (all isUpper s) then predefTrue else predefFalse
(K s) | f == cToUpper -> retb $ K $ map toUpper s
(K s) | f == cToLower -> retb $ K $ map toLower s
+ (K s) | f == cError -> retb $ Error s
_ -> retb t