11local types = require (" moonscript.types" )
22local ntype , mtype , is_value , NOOP
33ntype , mtype , is_value , NOOP = types .ntype , types .mtype , types .is_value , types .NOOP
4+ local comprehension_has_value
5+ comprehension_has_value = require (" moonscript.transform.comprehension" ).comprehension_has_value
46local Run
57do
68 local _class_0
@@ -92,7 +94,7 @@ implicitly_return = function(scope)
9294 return stm
9395 end
9496 else
95- if t == " comprehension" and not types . comprehension_has_value (stm ) then
97+ if t == " comprehension" and not comprehension_has_value (stm ) then
9698 return stm
9799 else
98100 return {
@@ -104,56 +106,10 @@ implicitly_return = function(scope)
104106 end
105107 return fn
106108end
107- local reversed
108- reversed = require (" moonscript.util" ).reversed
109- local construct_comprehension
110- construct_comprehension = function (inner , clauses )
111- local current_stms = inner
112- for _ , clause in reversed (clauses ) do
113- local t = clause [1 ]
114- local _exp_0 = t
115- if " for" == _exp_0 then
116- local name , bounds
117- _ , name , bounds = clause [1 ], clause [2 ], clause [3 ]
118- current_stms = {
119- " for" ,
120- name ,
121- bounds ,
122- current_stms
123- }
124- elseif " foreach" == _exp_0 then
125- local names , iter
126- _ , names , iter = clause [1 ], clause [2 ], clause [3 ]
127- current_stms = {
128- " foreach" ,
129- names ,
130- {
131- iter
132- },
133- current_stms
134- }
135- elseif " when" == _exp_0 then
136- local cond
137- _ , cond = clause [1 ], clause [2 ]
138- current_stms = {
139- " if" ,
140- cond ,
141- current_stms
142- }
143- else
144- current_stms = error (" Unknown comprehension clause: " .. t )
145- end
146- current_stms = {
147- current_stms
148- }
149- end
150- return current_stms [1 ]
151- end
152109return {
153110 Run = Run ,
154111 last_stm = last_stm ,
155112 transform_last_stm = transform_last_stm ,
156113 chain_is_stub = chain_is_stub ,
157- implicitly_return = implicitly_return ,
158- construct_comprehension = construct_comprehension
114+ implicitly_return = implicitly_return
159115}
0 commit comments