diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/library/lux/ffi.jvm.lux | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux index 881c3f79d..b265e3e42 100644 --- a/stdlib/source/library/lux/ffi.jvm.lux +++ b/stdlib/source/library/lux/ffi.jvm.lux @@ -720,11 +720,12 @@ (-> (List (Type Var)) (Parser [Member_Declaration MethodDecl])) (<code>.form (do <>.monad [tvars (<>.default (list) ..vars^) + #let [total_vars (list\compose tvars type_vars)] name <code>.local_identifier anns ..annotations^ - inputs (<code>.tuple (<>.some (..type^ type_vars))) - output (..return^ type_vars) - exs (throws_decl^ type_vars)] + inputs (<code>.tuple (<>.some (..type^ total_vars))) + output (..return^ total_vars) + exs (throws_decl^ total_vars)] (wrap [[name #PublicP anns] {#method_tvars tvars #method_inputs inputs #method_output output @@ -1203,7 +1204,8 @@ (#private baz java/lang/Object) ## Methods (#public [] (new [value A]) [] - (exec (:= ::foo #1) + (exec + (:= ::foo #1) (:= ::bar value) (:= ::baz "") [])) @@ -1225,15 +1227,14 @@ "(::resolve! container [value]) for calling the 'resolve' method." )} (do meta.monad - [current_module meta.current_module_name - #let [fully_qualified_class_name (name.qualify current_module full_class_name) + [#let [fully_qualified_class_name full_class_name field_parsers (list\map (field->parser fully_qualified_class_name) fields) method_parsers (list\map (method->parser fully_qualified_class_name) methods) replacer (parser->replacer (list\fold <>.either (<>.fail "") (list\compose field_parsers method_parsers)))]] (wrap (list (` ("jvm class" - (~ (declaration$ (type.declaration (name.qualify current_module full_class_name) class_vars))) + (~ (declaration$ (type.declaration full_class_name class_vars))) (~ (class$ super)) [(~+ (list\map class$ interfaces))] (~ (inheritance_modifier$ im)) @@ -1251,13 +1252,11 @@ {#.doc (doc "Allows defining JVM interfaces." (interface: TestInterface ([] foo [boolean String] void #throws [Exception])))} - (do meta.monad - [current_module meta.current_module_name] - (wrap (list (` ("jvm class interface" - (~ (declaration$ (type.declaration (name.qualify current_module full_class_name) class_vars))) - [(~+ (list\map class$ supers))] - [(~+ (list\map annotation$ annotations))] - (~+ (list\map method_decl$ members)))))))) + (wrap (list (` ("jvm class interface" + (~ (declaration$ (type.declaration full_class_name class_vars))) + [(~+ (list\map class$ supers))] + [(~+ (list\map annotation$ annotations))] + (~+ (list\map method_decl$ members))))))) (syntax: #export (object {class_vars ..vars^} |