aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/meta/target/jvm/type/category.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/meta/target/jvm/type/category.lux')
-rw-r--r--stdlib/source/library/lux/meta/target/jvm/type/category.lux38
1 files changed, 38 insertions, 0 deletions
diff --git a/stdlib/source/library/lux/meta/target/jvm/type/category.lux b/stdlib/source/library/lux/meta/target/jvm/type/category.lux
new file mode 100644
index 000000000..7cae42458
--- /dev/null
+++ b/stdlib/source/library/lux/meta/target/jvm/type/category.lux
@@ -0,0 +1,38 @@
+(.require
+ [library
+ [lux (.except Primitive)
+ [meta
+ [macro
+ ["[0]" template]]
+ [type
+ [primitive (.except)]]]]])
+
+(primitive Void' Any)
+(primitive .public (Value' kind) Any)
+(primitive .public (Return' kind) Any)
+(primitive .public Method Any)
+
+(type .public Return (<| Return' Any))
+(type .public Value (<| Return' Value' Any))
+(type .public Void (<| Return' Void'))
+
+(primitive (Object' brand) Any)
+(type .public Object (<| Return' Value' Object' Any))
+
+(primitive (Parameter' brand) Any)
+(type .public Parameter (<| Return' Value' Object' Parameter' Any))
+
+(with_template [<parents> <child>]
+ [(with_expansions [<raw> (template.symbol [<child> "'"])]
+ (primitive <raw> Any)
+ (type .public <child>
+ (`` (<| Return' Value' (,, (template.spliced <parents>)) <raw>))))]
+
+ [[] Primitive]
+ [[Object' Parameter'] Var]
+ [[Object' Parameter'] Class]
+ [[Object' Parameter'] Array]
+ )
+
+(primitive .public Declaration Any)
+(primitive .public Inheritance Any)