You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
isTailCall// is this sequence in tailcall position?
@@ -220,6 +253,7 @@ let LowerSeqExpr g amap overallExpr =
220
253
| SeqDelay(e,_elemTy)->
221
254
// printfn "found Seq.delay"
222
255
Lower isWholeExpr isTailCall noDisposeContinuationLabel currentDisposeContinuationLabel e// note, using 'isWholeExpr' here prevents 'seq { yield! e }' and 'seq { 0 .. 1000 }' from being compiled
256
+
223
257
| SeqAppend(e1,e2,m)->
224
258
// printfn "found Seq.append"
225
259
match Lowerfalsefalse noDisposeContinuationLabel currentDisposeContinuationLabel e1,
@@ -239,6 +273,7 @@ let LowerSeqExpr g amap overallExpr =
match Lowerfalsefalse noDisposeContinuationLabel currentDisposeContinuationLabel e2with
@@ -254,9 +289,11 @@ let LowerSeqExpr g amap overallExpr =
254
289
significantClose= res2.significantClose}
255
290
|_->
256
291
None
292
+
257
293
| SeqUsing(resource,v,body,elemTy,m)->
258
294
// printfn "found Seq.using"
259
295
Lowerfalse isTailCall noDisposeContinuationLabel currentDisposeContinuationLabel(mkLet(SequencePointAtBinding body.Range) m v resource(mkCallSeqFinally g m elemTy body(mkUnitDelayLambda g m(mkCallDispose g m v.Type(exprForVal m v)))))
296
+
260
297
| SeqFor(inp,v,body,genElemTy,m)->
261
298
// printfn "found Seq.for"
262
299
letinpElemTy= v.Type
@@ -272,6 +309,7 @@ let LowerSeqExpr g amap overallExpr =
272
309
(mkCallSeqGenerated g m genElemTy(mkUnitDelayLambda g m(callNonOverloadedMethod g amap m"MoveNext" inpEnumTy[enume]))
273
310
(mkInvisibleLet m v(callNonOverloadedMethod g amap m"get_Current" inpEnumTy[enume])