Open Jand42 opened 7 months ago
I don't think while!
needs new proxies actually: it is desugared into a combination of existing methods Bind
, While
, and mutable variables. Ie an expression like
while! cond do
action
is desugared as if it was written
let! x = cond
let mutable x' = x
while x' do
action
let! x = cond
x' <- x
@Tarmil Thanks! Indeed, TDD would have discovered this, I skipped testing while!
for some reason while I checked what try-with
within seq{}
does. I have seen comparing methods in RuntimeHelpers
that we also miss EnumerateFromFunctions
, but I can't see in dotnet/fsharp where it's actually used yet... maybe deprecated?
New language/FSharp.Core features: (See Announcing F# 8)
FSharp.Compiler.Service 43.8.100
_.Property
shorthand (should be handled by FCS without AST change)while!
- syntax sugar handled by FCS, uses already existingBind
+While
methodsfixed
bindings - WS has no support forfixed
, it's just ignored[<Extension>]
method definition - syntax upgrade to testtry-with
withinseq{}
,[]
and[||]
collection expressions - needs proxy forRuntimeHelpers.EnumerateTryWith
andEnumerateFromFunctions