aboutsummaryrefslogtreecommitdiff
path: root/new-luxc
diff options
context:
space:
mode:
authorEduardo Julian2019-10-14 00:58:36 -0400
committerEduardo Julian2019-10-14 00:58:36 -0400
commit7d2607a34183662bb640644888fb52281a2d3ab4 (patch)
treeb76cd067f80443232811e8dbcc5ba71f40ae5571 /new-luxc
parent4f939136769d9a3f64088115e3b48f0e491c7c37 (diff)
The new compiler can compile & run the stdlib's test suite.
Diffstat (limited to '')
-rw-r--r--new-luxc/project.clj4
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/extension/host.lux8
2 files changed, 8 insertions, 4 deletions
diff --git a/new-luxc/project.clj b/new-luxc/project.clj
index 2b0bbe90c..90ddecf12 100644
--- a/new-luxc/project.clj
+++ b/new-luxc/project.clj
@@ -22,7 +22,9 @@
:scm {:name "git"
:url ~(str repo ".git")}
- :dependencies [;; JVM Bytecode
+ :dependencies [[com.github.luxlang/luxc-jvm ~version]
+ [com.github.luxlang/stdlib ~version]
+ ;; JVM Bytecode
[org.ow2.asm/asm-all "5.0.3"]]
:manifest {"lux" ~version}
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 ca6e31bfd..ea7ba6d33 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/extension/host.lux
@@ -11,9 +11,9 @@
[data
["." product]
["." maybe]
+ ["." text ("#@." equivalence)]
[number
["." nat]]
- ["." text ("#@." equivalence)]
[collection
["." list ("#@." monad)]
["." dictionary (#+ Dictionary)]
@@ -921,7 +921,8 @@
(#.Left returnT)
(case (type.primitive? returnT)
(#.Left returnT)
- _.ARETURN
+ (|>> (_.CHECKCAST returnT)
+ _.ARETURN)
(#.Right returnT)
(cond (or (:: type.equivalence = type.boolean returnT)
@@ -994,7 +995,8 @@
self-name arguments returnT exceptionsT
bodyS])
(do @
- [bodyG (generate bodyS)]
+ [bodyG (generation.with-specific-context class-name
+ (generate bodyS))]
(wrap (_def.method #$.Public
(if strict-fp?
($_ $.++M $.finalM $.strictM)