diff options
author | Eduardo Julian | 2022-03-05 04:30:09 -0400 |
---|---|---|
committer | Eduardo Julian | 2022-03-05 04:30:09 -0400 |
commit | a7fc50b1906fa97fb56d5ebe3d3fff7baee276da (patch) | |
tree | c62e695c6dc264533abe4003a6338d4a39e958c0 /stdlib/source/library/lux/tool/compiler | |
parent | ab9dc5fd656ef42dbb0192f96d34e1c7b451a430 (diff) |
Optimizations for the pure-Lux JVM compiler. [Part 5]
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler')
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux index 26e21c065..1e285ebb2 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux @@ -25,8 +25,9 @@ [synthesis ["[0]" case]] ["/[1]" // "_" - ["[1][0]" synthesis {"+" Member Synthesis Path}] ["[1][0]" generation] + ["[1][0]" synthesis {"+" Synthesis Path} + ["[0]" member {"+" Member}]] ["//[1]" /// "_" [reference ["[1][0]" variable {"+" Register}]] @@ -108,13 +109,11 @@ (do ///////phase.monad [valueO (expression archive valueS)] (in (list#mix (function (_ side source) - (.let [method (.case side - (^template [<side> <accessor>] - [{<side> lefts} - (<accessor> (_.int (.int lefts)))]) - ([.#Left //runtime.tuple::left] - [.#Right //runtime.tuple::right]))] - (method source))) + (.let [method (.if (value@ member.#right? side) + //runtime.tuple::right + //runtime.tuple::left)] + (method (_.int (.int (value@ member.#lefts side))) + source))) valueO (list.reversed pathP))))) |