aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation
diff options
context:
space:
mode:
authorEduardo Julian2019-10-16 02:19:52 -0400
committerEduardo Julian2019-10-16 02:19:52 -0400
commit3028cc4f45d2d7d66456467de506341800df14d8 (patch)
tree184a517a4b0634fd50d834b4b16753fd11c691a2 /new-luxc/source/luxc/lang/translation
parent688870c71829e1bee89c9f827cc2032507cc507b (diff)
Now allowing types for methods.
Diffstat (limited to 'new-luxc/source/luxc/lang/translation')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/extension/host.lux5
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/function.lux8
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/runtime.lux11
3 files changed, 11 insertions, 13 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux b/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux
index ea7ba6d33..7b03bc451 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux
@@ -24,8 +24,7 @@
["." category (#+ Void Value Return Primitive Object Class Array Var Parameter Method)]
["." box]
["." reflection]
- ["." descriptor (#+ Descriptor)]
- ["." signature (#+ Signature)]
+ ["." signature]
["." parser]]]]
[tool
[compiler
@@ -881,7 +880,7 @@
(def: $Object (type.class "java.lang.Object" (list)))
(def: (anonymous-init-method env)
- (-> Environment [(Signature Method) (Descriptor Method)])
+ (-> Environment (Type Method))
(type.method [(list.repeat (list.size env) $Object)
type.void
(list)]))
diff --git a/new-luxc/source/luxc/lang/translation/jvm/function.lux b/new-luxc/source/luxc/lang/translation/jvm/function.lux
index bd651f786..34a4c890e 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/function.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/function.lux
@@ -14,9 +14,7 @@
[target
[jvm
["." type (#+ Type)
- ["." category (#+ Void Value Return Primitive Object Class Array Var Parameter Method)]
- ["." descriptor (#+ Descriptor)]
- ["." signature (#+ Signature)]]]]
+ ["." category (#+ Void Value Return Primitive Object Class Array Var Parameter Method)]]]]
[tool
[compiler
[arity (#+ Arity)]
@@ -46,7 +44,7 @@
(list.repeat (list.size env) //.$Value))
(def: (init-method env arity)
- (-> Environment Arity [(Signature Method) (Descriptor Method)])
+ (-> Environment Arity (Type Method))
(if (poly-arg? arity)
(type.method [(list.concat (list (captured-args env)
(list type.int)
@@ -112,7 +110,7 @@
(_.INVOKESPECIAL class "<init>" (init-method env arity))))))
(def: (reset-method return)
- (-> (Type Class) [(Signature Method) (Descriptor Method)])
+ (-> (Type Class) (Type Method))
(type.method [(list) return (list)]))
(def: (with-reset class arity env)
diff --git a/new-luxc/source/luxc/lang/translation/jvm/runtime.lux b/new-luxc/source/luxc/lang/translation/jvm/runtime.lux
index f97831ac5..c0e48f30d 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/runtime.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/runtime.lux
@@ -9,9 +9,7 @@
[target
[jvm
["." type (#+ Type)
- ["." category (#+ Void Value Return Primitive Object Class Array Var Parameter Method)]
- ["." descriptor (#+ Descriptor)]
- ["." signature (#+ Signature)]
+ ["." category (#+ Void Value' Value Return' Return Primitive Object Class Array Var Parameter Method)]
["." reflection]]]]
[tool
[compiler
@@ -106,7 +104,7 @@
(def: #export num-apply-variants Nat 8)
(def: #export (apply-signature arity)
- (-> Arity [(Signature Method) (Descriptor Method)])
+ (-> Arity (Type Method))
(type.method [(list.repeat arity $Value) $Value (list)]))
(def: adt-methods
@@ -319,7 +317,10 @@
_.ARETURN)))
)))
-(def: reflection (|>> type.reflection reflection.reflection))
+(def: reflection
+ (All [category]
+ (-> (Type (<| Return' Value' category)) Text))
+ (|>> type.reflection reflection.reflection))
(def: translate-runtime
(Operation Any)