@@ -3668,14 +3668,13 @@ namePatPairs:
36683668 { let (id: Ident), mEq, (pat: SynPat) = $1
36693669 let m = unionRanges id.idRange pat.Range
36703670 let lid = SynLongIdent([id], [], [None])
3671- NamePatPairField(lid, mEq, m, pat, Some $2) :: $3 }
3671+ NamePatPairField(lid, mEq, m, pat, $2) :: $3 }
36723672
36733673 | namePatPair seps_block seps_block namePatPairs
3674- { reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsExpectingPattern ())
3675- let (id: Ident), mEq, (pat: SynPat) = $1
3674+ { let (id: Ident), mEq, (pat: SynPat) = $1
36763675 let m = unionRanges id.idRange pat.Range
36773676 let lid = SynLongIdent([id], [], [None])
3678- NamePatPairField(lid, mEq, m, pat, Some $2) :: $4 }
3677+ NamePatPairField(lid, mEq, m, pat, $2) :: $4 }
36793678
36803679namePatPair:
36813680 | ident EQUALS parenPattern
@@ -4016,13 +4015,13 @@ recordPatternElementsAux:
40164015 | recordPatternElement seps_block recordPatternElementsAux
40174016 { let (lid: SynLongIdent), mEq, (pat: SynPat) = $1
40184017 let m = unionRanges lid.Range pat.Range
4019- NamePatPairField(lid, mEq, m, pat, Some $2) :: $3 }
4018+ NamePatPairField(lid, mEq, m, pat, $2) :: $3 }
40204019
40214020 | recordPatternElement seps_block seps_block recordPatternElementsAux
40224021 { reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsExpectingPattern ())
40234022 let (lid: SynLongIdent), mEq, (pat: SynPat) = $1
40244023 let m = unionRanges lid.Range pat.Range
4025- NamePatPairField(lid, mEq, m, pat, Some $2) :: $4 }
4024+ NamePatPairField(lid, mEq, m, pat, $2) :: $4 }
40264025
40274026recordPatternElement:
40284027 | path EQUALS parenPattern
@@ -5709,7 +5708,7 @@ recdExprCore:
57095708 | appExpr
57105709 { let mExpr = rhs parseState 1
57115710 reportParseErrorAt mExpr (FSComp.SR.parsFieldBinding ())
5712- Some($1, BlockSeparator.Offside(mExpr.EndRange, None)) , [] }
5711+ ( Some($1, None), []) }
57135712
57145713/*
57155714 handles cases when identifier can start from the underscore
@@ -5743,36 +5742,40 @@ recdExprCore:
57435742 | appExpr WITH recdBinding recdExprBindings opt_seps_block
57445743 { let l = List.rev $4
57455744 let l = rebindRanges $3 l $5
5746- (Some($1, BlockSeparator.Offside(rhs parseState 2, None) ), l) }
5745+ (Some($1, $5 ), l) }
57475746
57485747 | appExpr OWITH opt_seps_block OEND
5749- { (Some($1, BlockSeparator.Offside(rhs parseState 2, None) ), []) }
5748+ { (Some($1, $3 ), []) }
57505749
57515750 | appExpr OWITH recdBinding recdExprBindings opt_seps_block OEND
57525751 { let l = List.rev $4
57535752 let l = rebindRanges $3 l $5
5754- (Some($1, BlockSeparator.Offside(rhs parseState 2, None) ), l) }
5753+ (Some($1, $5 ), l) }
57555754
57565755opt_seps_block:
57575756 | seps_block
5758- { Some $1 }
5757+ { $1 }
57595758
57605759 | /* EMPTY */
57615760 { None }
57625761
57635762seps_block:
57645763 | OBLOCKSEP
5765- { BlockSeparator.Offside((rhs parseState 1), None) }
5764+ {
5765+ // OBLOCKSEP is purely syntactic: do not produce a BlockSeparator value
5766+ // Treat it as absence of an explicit separator
5767+ None
5768+ }
57665769
57675770 | SEMICOLON
57685771 { let m = (rhs parseState 1)
5769- BlockSeparator.Semicolon(m, Some m.End) }
5772+ Some ( BlockSeparator.Semicolon(m, m.End) ) }
57705773
57715774 | SEMICOLON OBLOCKSEP
5772- { BlockSeparator.Semicolon((rhs2 parseState 1 2), Some (rhs parseState 1).End) }
5775+ { Some ( BlockSeparator.Semicolon((rhs2 parseState 1 2), (rhs parseState 1).End) ) }
57735776
57745777 | OBLOCKSEP SEMICOLON
5775- { BlockSeparator.Semicolon((rhs2 parseState 1 2), Some (rhs parseState 2).End) }
5778+ { Some ( BlockSeparator.Semicolon((rhs2 parseState 1 2), (rhs parseState 2).End) ) }
57765779
57775780
57785781/* identifier can start from the underscore */
@@ -5787,7 +5790,7 @@ pathOrUnderscore :
57875790
57885791recdExprBindings:
57895792 | recdExprBindings seps_block recdBinding
5790- { ($3, Some $2) :: $1 }
5793+ { ($3, $2) :: $1 }
57915794
57925795 | /* EMPTY */
57935796 { [] }
0 commit comments