diff options
author | Eduardo Julian | 2019-05-17 20:03:39 -0400 |
---|---|---|
committer | Eduardo Julian | 2019-05-17 20:03:39 -0400 |
commit | 6916a864871247a2f6aa60d5c69814cd2ba8ae4b (patch) | |
tree | b3c522d9d41c0f51a5abb25d338540c7f0ebd917 /new-luxc/source/luxc/lang/translation | |
parent | 6c5a33ea07732fdd415712af49784653266682b3 (diff) |
Forgot to actually compile the methods. Now doing so.
Diffstat (limited to 'new-luxc/source/luxc/lang/translation')
-rw-r--r-- | new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux b/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux index cf68663a5..ae54dccc7 100644 --- a/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux +++ b/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux @@ -1055,12 +1055,31 @@ self-name arguments returnT exceptionsT (normalize-method-body local-mapping body)])) overriden-methods)] + method-definitions (|> normalized-methods + (monad.map @ (function (_ [ownerT name + strict-fp? annotations vars + self-name arguments returnT exceptionsT + bodyS]) + (do @ + [bodyG (generate bodyS)] + (wrap (_def.method #$.Public + (if strict-fp? + ($_ $.++M $.finalM $.strictM) + $.finalM) + name + (jvm.method (list@map product.right arguments) + returnT + (list@map (|>> #jvm.Class) + exceptionsT)) + bodyG))))) + (:: @ map _def.fuse)) _ (generation.save! true ["" class-name] [class-name (_def.class #$.V1_6 #$.Public $.finalC class-name (list) super-class super-interfaces - (|>> (///function.with-environment total-environment)))])] + (|>> (///function.with-environment total-environment) + method-definitions))])] (anonymous-instance class-name total-environment)))])) (def: bundle::class |