diff options
author | Eduardo Julian | 2017-11-13 23:26:06 -0400 |
---|---|---|
committer | Eduardo Julian | 2017-11-13 23:26:06 -0400 |
commit | 70005a6dee1eba3e3f5694aa4903e95988dcaa3d (patch) | |
tree | 19141f900847092c3aa5032a62b6b97eb1ea9a33 /new-luxc/source/luxc/lang/translation/statement.jvm.lux | |
parent | b08f7d83a591be770af64b4c9ccd59f3306689e8 (diff) |
- Refactoring.
- Now giving type checking/inference a higher priority.
- Better error messages.
Diffstat (limited to '')
-rw-r--r-- | new-luxc/source/luxc/lang/translation/statement.jvm.lux | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/new-luxc/source/luxc/lang/translation/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/statement.jvm.lux index feb64c293..2a2173fa9 100644 --- a/new-luxc/source/luxc/lang/translation/statement.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/statement.jvm.lux @@ -21,6 +21,7 @@ [";T" common])))) (exception: #export Invalid-Definition-Value) +(exception: #export Cannot-Evaluate-Definition) (host;import java.lang.Object (toString [] String)) @@ -56,13 +57,16 @@ [field (Class.getField [commonT;value-field] class)] (Field.get [#;None] field)) (#e;Success #;None) - (&;throw Invalid-Definition-Value (format current-module ";" def-name)) + (&;throw Invalid-Definition-Value (%ident [current-module def-name])) (#e;Success (#;Some valueV)) (wrap valueV) (#e;Error error) - (&;fail error))) + (&;throw Cannot-Evaluate-Definition + (format "Definition: " (%ident [current-module def-name]) "\n" + "Error:\n" + error)))) _ (&module;define [current-module def-name] [valueT metaV valueV]) _ (if (meta;type? metaV) (case (meta;declared-tags metaV) @@ -77,6 +81,4 @@ (def: #export (translate-program program-args programI) (-> Text $;Inst (Meta Unit)) - (do meta;Monad<Meta> - [] - (&;fail "'lux program' is unimplemented."))) + (&;fail "\"lux program\" is unimplemented.")) |