From a40f40f230e6312ae432f06e7f73aa5945d8fa49 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 18 Jul 2021 23:10:18 -0400 Subject: New JVM compiler can now compile JVM interfaces. --- .../luxc/lang/translation/jvm/extension/host.lux | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux') diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux index 441a415ee..a9727fc9a 100644 --- a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux +++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux @@ -536,7 +536,7 @@ (do phase.monad [] (wrap (|>> (_.string class) - (_.INVOKESTATIC $Class "forName" (type.method [(list (type.class "java.lang.String" (list))) $Class (list)]))))) + (_.INVOKESTATIC $Class "forName" (type.method [(list) (list (type.class "java.lang.String" (list))) $Class (list)]))))) _ (phase.throw extension.invalid_syntax [extension_name %synthesis inputs]))) @@ -725,7 +725,7 @@ (do {@ phase.monad} [inputsTI (monad.map @ (generate_input generate archive) inputsTS)] (wrap (|>> (_.fuse (list@map product.right inputsTI)) - (_.INVOKESTATIC class method (type.method [(list@map product.left inputsTI) outputT (list)])) + (_.INVOKESTATIC class method (type.method [(list) (list@map product.left inputsTI) outputT (list)])) (prepare_output outputT)))))])) (template [ ] @@ -741,7 +741,8 @@ (_.CHECKCAST class) (_.fuse (list@map product.right inputsTI)) ( class method - (type.method [(list@map product.left inputsTI) + (type.method [(list) + (list@map product.left inputsTI) outputT (list)])) (prepare_output outputT)))))]))] @@ -761,7 +762,7 @@ (wrap (|>> (_.NEW class) _.DUP (_.fuse (list@map product.right inputsTI)) - (_.INVOKESPECIAL class "" (type.method [(list@map product.left inputsTI) type.void (list)]))))))])) + (_.INVOKESPECIAL class "" (type.method [(list) (list@map product.left inputsTI) type.void (list)]))))))])) (def: member Bundle @@ -919,7 +920,8 @@ (def: (anonymous_init_method env) (-> (Environment Synthesis) (Type Method)) - (type.method [(list.repeat (list.size env) $Object) + (type.method [(list) + (list.repeat (list.size env) $Object) type.void (list)])) @@ -936,7 +938,7 @@ (_def.method #$.Public $.noneM "" (anonymous_init_method env) (|>> (_.ALOAD 0) ((_.fuse (list@map product.right inputsTI))) - (_.INVOKESPECIAL super_class "" (type.method [(list@map product.left inputsTI) type.void (list)])) + (_.INVOKESPECIAL super_class "" (type.method [(list) (list@map product.left inputsTI) type.void (list)])) store_capturedI _.RETURN)))) @@ -986,7 +988,8 @@ (.tuple (<>.some ..class)) (.tuple (<>.some ..input)) (.tuple (<>.some ..overriden_method_definition))) - (function (_ extension_name generate archive [super_class super_interfaces + (function (_ extension_name generate archive [super_class + super_interfaces inputsTS overriden_methods]) (do {@ phase.monad} @@ -1040,7 +1043,8 @@ ($_ $.++M $.finalM $.strictM) $.finalM) name - (type.method [(list@map product.right arguments) + (type.method [(list) + (list@map product.right arguments) returnT exceptionsT]) (|>> bodyG (returnI returnT))))))) -- cgit v1.2.3