Skip to content

Debug-mode compilation error when mixing resumable and standard computation expressions #19625

@majocha

Description

@majocha

This is a regression. It seems dotnet sdks above 10.0.202 are affected, so probably introduced by #19297

Repro steps

compile the following in Debug configuration:

module ReproMixedBuilders
open System.Threading.Tasks

type TaskMaybeBuilder() =

    member inline _.Zero() = Task.FromResult None

    member inline _.Delay([<InlineIfLambda>] f) = task { return! f () }
    
    member inline _.Bind(value, [<InlineIfLambda>] f) =
        task {
            match value with
            | None -> return None
            | Some result -> return! f result
        }

let taskMaybe = TaskMaybeBuilder()

let trigger() =
    taskMaybe {
        do! None
    }

Actual behavior

❯ dotnet build -c Debug
Restore complete (0.3s)
    info NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy
  BuilderRepro net472 failed with 5 error(s) (1.3s)
    E:\repos\BuilderRepro\Library.fs(20,5): error FS0971: Undefined value 'builder@'
    E:\repos\BuilderRepro\Library.fs(20,5): error FS0971: Undefined value 'builder@'
    E:\repos\BuilderRepro\Library.fs(20,5): error FS0971: Undefined value 'builder@'
    E:\repos\BuilderRepro\Library.fs(20,5): error FS0971: Undefined value 'builder@'
    E:\repos\BuilderRepro\Library.fs(20,5): error FS0971: Undefined value 'builder@'

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Bug.

    Projects

    Status

    New

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions