aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux46
1 files changed, 0 insertions, 46 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
deleted file mode 100644
index 49fbd0385..000000000
--- a/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
+++ /dev/null
@@ -1,46 +0,0 @@
-(.module:
- lux
- (lux (control monad)
- (data [text]
- text/format)
- [macro]
- [host #+ do-to])
- (luxc ["&" lang]
- (lang (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["_" inst]))
- ["la" analysis]
- ["ls" synthesis]))
- (// [".T" common]))
-
-(host.import: java/lang/reflect/Field
- (get [Object] Object))
-
-(host.import: (java/lang/Class a)
- (getField [String] Field))
-
-(def: #export (eval valueI)
- (-> $.Inst (Meta Any))
- (do macro.Monad<Meta>
- [current-module macro.current-module-name
- class-name (:: @ map %code (macro.gensym (format current-module "/eval")))
- #let [store-name (text.replace-all "/" "." class-name)
- bytecode ($d.class #$.V1_6
- #$.Public $.noneC
- class-name
- (list) ["java.lang.Object" (list)]
- (list)
- (|>> ($d.field #$.Public ($_ $.++F $.finalF $.staticF)
- commonT.value-field commonT.$Object)
- ($d.method #$.Public ($_ $.++M $.staticM $.strictM)
- "<clinit>"
- ($t.method (list) #.None (list))
- (|>> valueI
- (_.PUTSTATIC store-name commonT.value-field commonT.$Object)
- _.RETURN))))]
- _ (commonT.store-class store-name bytecode)
- class (commonT.load-class store-name)]
- (wrap (|> class
- (Class::getField [commonT.value-field])
- (Field::get (host.null))))))