Put record construction in a less odd place (#30)

This commit is contained in:
Patrick Stevens
2025-04-13 19:02:33 +01:00
committed by GitHub
parent f691337adb
commit 75b063ba39
9 changed files with 20 additions and 19 deletions

View File

@@ -413,3 +413,15 @@ module SynExpr =
/// `{lhs}.[{index}] <- {rhs}`
let assignIndex (lhs : SynExpr) (index : SynExpr) (rhs : SynExpr) : SynExpr =
SynExpr.DotIndexedSet (lhs, index, rhs, range0, range0, range0)
/// { x = 3 ; y = 4 }, or { foo with x = 3 }, for example.
let createRecord (updateFrom : SynExpr option) (fields : (SynLongIdent * SynExpr) list) : SynExpr =
let updateFrom =
updateFrom
|> Option.map (fun updateFrom -> updateFrom, (range0, Some Fantomas.FCS.Text.Position.pos0))
let fields =
fields
|> List.map (fun (rfn, synExpr) -> SynExprRecordField ((rfn, true), Some range0, Some synExpr, None))
SynExpr.Record (None, updateFrom, fields, range0)