@@ -4917,11 +4917,12 @@ braceBarExprCore:
49174917 flds |> List.choose (function
49184918 | SynExprRecordField((SynLongIdent([id], _, _), _), mEquals, Some e, _) -> Some (id, mEquals, e)
49194919 | SynExprRecordField((SynLongIdent([id], _, _), _), mEquals, None, _) -> Some (id, mEquals, arbExpr("anonField", id.idRange))
4920- | _ -> reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsInvalidAnonRecdType()); None)
4921- let m = rhs2 parseState 1 3
4920+ | _ -> reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsInvalidAnonRecdType()); None)
4921+ let mLeftBrace = rhs parseState 1
4922+ let mRightBrace = rhs parseState 3
49224923 (fun (mStruct: range option) ->
4923- let m = match mStruct with | None -> m | Some mStruct -> unionRanges mStruct m
4924- SynExpr.AnonRecd (mStruct.IsSome, orig, flds, m)) }
4924+ let m = match mStruct with | None -> unionRanges mLeftBrace mRightBrace | Some mStruct -> unionRanges mStruct mRightBrace
4925+ SynExpr.AnonRecd (mStruct.IsSome, orig, flds, m, { OpeningBraceRange = mLeftBrace } )) }
49254926
49264927 | LBRACE_BAR recdExprCore recover
49274928 { reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBraceBar())
@@ -4931,30 +4932,33 @@ braceBarExprCore:
49314932 | SynExprRecordField((SynLongIdent([id], _, _), _), mEquals, Some e, _) -> Some (id, mEquals, e)
49324933 | SynExprRecordField((SynLongIdent([id], _, _), _), mEquals, None, _) -> Some (id, mEquals, arbExpr("anonField", id.idRange))
49334934 | _ -> reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsInvalidAnonRecdType()); None)
4934- let m = rhs2 parseState 1 2
4935+ let mLeftBrace = rhs parseState 1
4936+ let mExpr = rhs parseState 2
49354937 (fun (mStruct: range option) ->
4936- let m = match mStruct with | None -> m | Some mStruct -> unionRanges mStruct m
4937- SynExpr.AnonRecd (mStruct.IsSome, orig, flds, m)) }
4938+ let m = match mStruct with | None -> unionRanges mLeftBrace mExpr | Some mStruct -> unionRanges mStruct mExpr
4939+ SynExpr.AnonRecd (mStruct.IsSome, orig, flds, m, { OpeningBraceRange = mLeftBrace } )) }
49384940
49394941 | LBRACE_BAR error bar_rbrace
49404942 { // silent recovery
4941- let m = rhs2 parseState 1 3
4943+ let mLeftBrace = rhs parseState 1
4944+ let mRightBrace = rhs parseState 3
49424945 (fun (mStruct: range option) ->
4943- let m = match mStruct with | None -> m | Some mStruct -> unionRanges mStruct m
4946+ let m = match mStruct with | None -> unionRanges mLeftBrace mRightBrace | Some mStruct -> unionRanges mStruct mRightBrace
49444947 arbExpr("braceBarExpr", m)) }
49454948
49464949 | LBRACE_BAR recover
49474950 { reportParseErrorAt (rhs parseState 1) (FSComp.SR.parsUnmatchedBraceBar())
4948- let m = rhs2 parseState 1 1
4951+ let mLeftBrace = rhs parseState 1
49494952 (fun (mStruct: range option) ->
4950- let m = match mStruct with | None -> m | Some mStruct -> unionRanges mStruct m
4951- SynExpr.AnonRecd (mStruct.IsSome, None, [], m)) }
4953+ let m = match mStruct with | None -> mLeftBrace | Some mStruct -> unionRanges mStruct mLeftBrace
4954+ SynExpr.AnonRecd (mStruct.IsSome, None, [], m, { OpeningBraceRange = mLeftBrace } )) }
49524955
49534956 | LBRACE_BAR bar_rbrace
4954- { let m = rhs2 parseState 1 2
4957+ { let mLeftBrace = rhs parseState 1
4958+ let mRightBrace = rhs parseState 2
49554959 (fun (mStruct: range option) ->
4956- let m = match mStruct with | None -> m | Some mStruct -> unionRanges mStruct m
4957- SynExpr.AnonRecd (mStruct.IsSome, None, [], m)) }
4960+ let m = match mStruct with | None -> unionRanges mLeftBrace mRightBrace | Some mStruct -> unionRanges mStruct mRightBrace
4961+ SynExpr.AnonRecd (mStruct.IsSome, None, [], m, { OpeningBraceRange = mLeftBrace } )) }
49584962
49594963anonLambdaExpr:
49604964 | FUN atomicPatterns RARROW typedSequentialExprBlock
0 commit comments