aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/host.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/host.jvm.lux')
-rw-r--r--stdlib/source/lux/host.jvm.lux16
1 files changed, 9 insertions, 7 deletions
diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux
index 1fb112a48..6fb29097f 100644
--- a/stdlib/source/lux/host.jvm.lux
+++ b/stdlib/source/lux/host.jvm.lux
@@ -1220,7 +1220,8 @@
(type.class "java.lang.Object" (list)))
(syntax: #export (class:
- {#let [imports (..context *compiler*)]}
+ {#let [@ macro.monad
+ imports (..context *compiler*)]}
{im inheritance-modifier^}
{[full-class-name class-vars] (:: @ map parser.declaration (declaration^ imports))}
{#let [imports (add-import [(short-class-name full-class-name) full-class-name]
@@ -1262,7 +1263,7 @@
"(::new! []) for calling the class's constructor."
"(::resolve! container [value]) for calling the 'resolve' method."
)}
- (do @
+ (do macro.monad
[current-module macro.current-module-name
#let [fully-qualified-class-name (name.qualify current-module full-class-name)
field-parsers (list@map (field->parser fully-qualified-class-name) fields)
@@ -1280,7 +1281,8 @@
[(~+ (list@map (method-def$ replacer super) methods))]))))))
(syntax: #export (interface:
- {#let [imports (..context *compiler*)]}
+ {#let [@ macro.monad
+ imports (..context *compiler*)]}
{[full-class-name class-vars] (:: @ map parser.declaration (declaration^ imports))}
{#let [imports (add-import [(short-class-name full-class-name) full-class-name]
(..context *compiler*))]}
@@ -1291,7 +1293,7 @@
{#.doc (doc "Allows defining JVM interfaces."
(interface: TestInterface
([] foo [boolean String] void #throws [Exception])))}
- (do @
+ (do macro.monad
[current-module macro.current-module-name]
(wrap (list (` ("jvm class interface"
(~ (declaration$ (type.declaration (name.qualify current-module full-class-name) class-vars)))
@@ -1458,7 +1460,7 @@
(case member
(^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
(let [(^slots [#import-member-tvars #import-member-args]) commons]
- (do macro.monad
+ (do {@ macro.monad}
[arg-inputs (monad.map @
(: (-> [Bit (Type Value)] (Meta [Bit Code]))
(function (_ [maybe? _])
@@ -1639,7 +1641,7 @@
(#MethodDecl [commons method])
(with-gensyms [g!obj]
- (do @
+ (do macro.monad
[#let [def-name (code.identifier ["" (format method-prefix member-separator (get@ #import-member-alias commons))])
(^slots [#import-member-kind]) commons
(^slots [#import-method-name]) method
@@ -1827,7 +1829,7 @@
(java/util/List::size [] my-list)
Character$UnicodeScript::LATIN
)}
- (do macro.monad
+ (do {@ macro.monad}
[kind (class-kind declaration)
=members (monad.map @ (member-import$ class-type-vars long-name? kind declaration) members)]
(wrap (list& (class-import$ long-name? declaration) (list@join =members)))))