Open
Description
In some cases, I can't use the with
keyword to copy and update a record with the F# 7 nested records shortcut syntax, when the source record comes from a function call (but in some situations it compiles fine).
It seems the compiler gets somehow confused... (?)
Repro steps
The following code doesn't compile:
type MyCustomer =
{ FirstName: string
LastName: string
Comment: string option }
type MyBooking =
{ Reference: string
Customer: MyCustomer }
type MyParentObject = { Booking: MyBooking }
module MyParentObject =
let Sample =
{ Booking =
{ Reference = "reference"
Customer =
{ FirstName = "firstname"
LastName = "lastname"
Comment = Some "comment" } } }
let okTest =
let value = MyParentObject.Sample
{ value with
MyParentObject.Booking.Customer.Comment = None }
let failingTest =
let func () = MyParentObject.Sample
{ func () with
MyParentObject.Booking.Customer.Comment = None }
More precisely, the okTest
compiles ok, but the failingTest
does not.
Expected behavior
I would expect the failingTest
to work.
Related information
Provide any related information (optional):
I'm using Visual Studio 17.12 on Windows, with .NET 9 installed.
I reproduced the issue when targeting .NET 8 and .NET 6 too, and also from VS Code.
Did I stumble on a real issue, or am I misunderstanding something?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
New