@@ -695,7 +695,7 @@ moduleSpfn:
695695valSpfn:
696696 | opt_attributes opt_access VAL opt_attributes opt_inline opt_mutable opt_access nameop opt_explicitValTyparDecls COLON topTypeWithTypeConstraints optLiteralValueSpfn
697697 { if Option.isSome $2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(), rhs parseState 2))
698- let attr1, attr2, isInline, isMutable, vis2, id, doc, explicitValTyparDecls, (ty, arity), (mEquals, konst: SynExpr option) = ($1), ($4), ($5), ($6), ($7), ($8), grabXmlDoc(parseState, $1, 1), ($9), ($11), ($12)
698+ let attr1, attr2, isInline, isMutable, vis2, id, doc, explicitValTyparDecls, (ty, arity), (mEquals, konst: SynExpr option) = ($1), ($4), (Option.isSome $5), ($6), ($7), ($8), grabXmlDoc(parseState, $1, 1), ($9), ($11), ($12)
699699 if not (isNil attr2) then errorR(Deprecated(FSComp.SR.parsAttributesMustComeBeforeVal(), rhs parseState 4))
700700 let m =
701701 rhs2 parseState 1 11
@@ -705,7 +705,7 @@ valSpfn:
705705 | None -> m
706706 | Some e -> unionRanges m e.Range
707707 let mVal = rhs parseState 3
708- let trivia: SynValSigTrivia = { LeadingKeyword = SynLeadingKeyword.Val mVal; WithKeyword = None; EqualsRange = mEquals }
708+ let trivia: SynValSigTrivia = { LeadingKeyword = SynLeadingKeyword.Val mVal; InlineKeyword = $5; WithKeyword = None; EqualsRange = mEquals }
709709 let valSpfn = SynValSig((attr1@attr2), id, explicitValTyparDecls, ty, arity, isInline, isMutable, doc, vis2, konst, m, trivia)
710710 SynModuleSigDecl.Val(valSpfn, m)
711711 }
@@ -913,7 +913,7 @@ classSpfnMembersAtLeastOne:
913913classMemberSpfn:
914914 | opt_attributes opt_access memberSpecFlags opt_inline opt_access nameop opt_explicitValTyparDecls COLON topTypeWithTypeConstraints classMemberSpfnGetSet optLiteralValueSpfn
915915 { if Option.isSome $2 then errorR(Error(FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier(), rhs parseState 2))
916- let isInline, doc, vis2, id, explicitValTyparDecls, (ty, arity), (mEquals, optLiteralValue) = $4 , grabXmlDoc(parseState, $1, 1), $5, $6, $7, $9, $11
916+ let isInline, doc, vis2, id, explicitValTyparDecls, (ty, arity), (mEquals, optLiteralValue) = (Option.isSome $4) , grabXmlDoc(parseState, $1, 1), $5, $6, $7, $9, $11
917917 let mWith, (getSet, getSetRangeOpt) = $10
918918 let getSetAdjuster arity = match arity, getSet with SynValInfo([], _), SynMemberKind.Member -> SynMemberKind.PropertyGet | _ -> getSet
919919 let mWhole =
@@ -930,7 +930,7 @@ classMemberSpfn:
930930
931931 let flags, leadingKeyword = $3
932932 let flags = flags (getSetAdjuster arity)
933- let trivia = { LeadingKeyword = leadingKeyword; WithKeyword = mWith; EqualsRange = mEquals }
933+ let trivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $4; WithKeyword = mWith; EqualsRange = mEquals }
934934 let valSpfn = SynValSig($1, id, explicitValTyparDecls, ty, arity, isInline, false, doc, vis2, optLiteralValue, mWhole, trivia)
935935 let trivia: SynMemberSigMemberTrivia = { GetSetKeywords = getSetRangeOpt }
936936 SynMemberSig.Member(valSpfn, flags, mWhole, trivia) }
@@ -970,7 +970,7 @@ classMemberSpfn:
970970 let mNew = rhs parseState 3
971971 let m = unionRanges (rhs parseState 1) ty.Range |> unionRangeWithXmlDoc doc
972972 let isInline = false
973- let trivia: SynValSigTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; WithKeyword = None; EqualsRange = None }
973+ let trivia: SynValSigTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; InlineKeyword = None; WithKeyword = None; EqualsRange = None }
974974 let valSpfn = SynValSig ($1, (SynIdent(mkSynId (rhs parseState 3) "new", None)), noInferredTypars, ty, valSynInfo, isInline, false, doc, vis, None, m, trivia)
975975 SynMemberSig.Member(valSpfn, CtorMemberFlags, m, SynMemberSigMemberTrivia.Zero) }
976976
@@ -1740,8 +1740,8 @@ memberCore:
17401740 let memFlagsBuilder, leadingKeyword = flagsBuilderAndLeadingKeyword
17411741 let memberFlags = memFlagsBuilder SynMemberKind.Member
17421742 let mWholeBindLhs = (mBindLhs, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range)
1743- let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; EqualsRange = Some mEquals }
1744- let binding = mkSynBinding (xmlDoc, bindingPat) (vis, $1 , false, mWholeBindLhs, DebugPointAtBinding.NoneAtInvisible, optReturnType, $5, mRhs, [], attrs, Some memberFlags, trivia)
1743+ let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $1; EqualsRange = Some mEquals }
1744+ let binding = mkSynBinding (xmlDoc, bindingPat) (vis, (Option.isSome $1) , false, mWholeBindLhs, DebugPointAtBinding.NoneAtInvisible, optReturnType, $5, mRhs, [], attrs, Some memberFlags, trivia)
17451745 let memberRange = unionRanges rangeStart mRhs |> unionRangeWithXmlDoc xmlDoc
17461746 [ SynMemberDefn.Member (binding, memberRange) ]) }
17471747
@@ -1819,7 +1819,7 @@ classDefnMember:
18191819
18201820 | opt_attributes opt_access abstractMemberFlags opt_inline nameop opt_explicitValTyparDecls COLON topTypeWithTypeConstraints classMemberSpfnGetSet opt_ODECLEND
18211821 { let ty, arity = $8
1822- let isInline, doc, id, explicitValTyparDecls = $4 , grabXmlDoc(parseState, $1, 1), $5, $6
1822+ let isInline, doc, id, explicitValTyparDecls = (Option.isSome $4) , grabXmlDoc(parseState, $1, 1), $5, $6
18231823 let mWith, (getSet, getSetRangeOpt) = $9
18241824 let getSetAdjuster arity = match arity, getSet with SynValInfo([], _), SynMemberKind.Member -> SynMemberKind.PropertyGet | _ -> getSet
18251825 let mWhole =
@@ -1830,7 +1830,7 @@ classDefnMember:
18301830 |> unionRangeWithXmlDoc doc
18311831 if Option.isSome $2 then errorR(Error(FSComp.SR.parsAccessibilityModsIllegalForAbstract(), mWhole))
18321832 let mkFlags, leadingKeyword = $3
1833- let trivia = { LeadingKeyword = leadingKeyword; WithKeyword = mWith; EqualsRange = None }
1833+ let trivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $4; WithKeyword = mWith; EqualsRange = None }
18341834 let valSpfn = SynValSig($1, id, explicitValTyparDecls, ty, arity, isInline, false, doc, None, None, mWhole, trivia)
18351835 let trivia: SynMemberDefnAbstractSlotTrivia = { GetSetKeywords = getSetRangeOpt }
18361836 [ SynMemberDefn.AbstractSlot(valSpfn, mkFlags (getSetAdjuster arity), mWhole, trivia) ] }
@@ -1870,7 +1870,7 @@ classDefnMember:
18701870 let declPat = SynPat.LongIdent (SynLongIdent([mkSynId (rhs parseState 3) "new"], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [$4], vis, rhs parseState 3)
18711871 // Check that 'SynPatForConstructorDecl' matches this correctly
18721872 assert (match declPat with SynPatForConstructorDecl _ -> true | _ -> false)
1873- let synBindingTrivia: SynBindingTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; EqualsRange = Some mEquals }
1873+ let synBindingTrivia: SynBindingTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; InlineKeyword = None; EqualsRange = Some mEquals }
18741874 [ SynMemberDefn.Member(SynBinding (None, SynBindingKind.Normal, false, false, $1, xmlDoc, valSynData, declPat, None, expr, mWholeBindLhs, DebugPointAtBinding.NoneAtInvisible, synBindingTrivia), m) ] }
18751875
18761876 | opt_attributes opt_access STATIC typeKeyword tyconDefn
@@ -2669,7 +2669,7 @@ cPrototype:
26692669 let bindingPat = SynPat.LongIdent (SynLongIdent([nm], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [SynPat.Tuple(false, args, argsm)], vis, nmm)
26702670 let mWholeBindLhs = (mBindLhs, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range)
26712671 let xmlDoc = grabXmlDoc(parseState, attrs, 1)
2672- let trivia = { LeadingKeyword = SynLeadingKeyword.Extern mExtern; EqualsRange = None }
2672+ let trivia = { LeadingKeyword = SynLeadingKeyword.Extern mExtern; InlineKeyword = None; EqualsRange = None }
26732673 let binding =
26742674 mkSynBinding
26752675 (xmlDoc, bindingPat)
@@ -2792,8 +2792,8 @@ localBinding:
27922792 let mWhole = (unionRanges leadingKeyword.Range mRhs, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range)
27932793 let spBind = if IsDebugPointBinding bindingPat expr then DebugPointAtBinding.Yes mWhole else DebugPointAtBinding.NoneAtLet
27942794 let mWholeBindLhs = (mBindLhs, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range)
2795- let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; EqualsRange = Some mEquals }
2796- mkSynBinding (xmlDoc, bindingPat) (vis, $1, $2, mWholeBindLhs, spBind, optReturnType, expr, mRhs, opts, attrs, None, trivia))
2795+ let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $1; EqualsRange = Some mEquals }
2796+ mkSynBinding (xmlDoc, bindingPat) (vis, Option.isSome $1, $2, mWholeBindLhs, spBind, optReturnType, expr, mRhs, opts, attrs, None, trivia))
27972797 localBindingRange, localBindingBuilder }
27982798
27992799 | opt_inline opt_mutable bindingPattern opt_topReturnTypeWithTypeConstraints EQUALS error
@@ -2807,8 +2807,8 @@ localBinding:
28072807 let zeroWidthAtEnd = mEquals.EndRange
28082808 let rhsExpr = arbExpr("localBinding1", zeroWidthAtEnd)
28092809 let spBind = if IsDebugPointBinding bindingPat rhsExpr then DebugPointAtBinding.Yes mWhole else DebugPointAtBinding.NoneAtLet
2810- let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; EqualsRange = Some mEquals }
2811- mkSynBinding (xmlDoc, bindingPat) (vis, $1, $2, mBindLhs, spBind, optReturnType, rhsExpr, mRhs, [], attrs, None, trivia))
2810+ let trivia: SynBindingTrivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $1; EqualsRange = Some mEquals }
2811+ mkSynBinding (xmlDoc, bindingPat) (vis, Option.isSome $1, $2, mBindLhs, spBind, optReturnType, rhsExpr, mRhs, [], attrs, None, trivia))
28122812 mWhole, localBindingBuilder }
28132813
28142814 | opt_inline opt_mutable bindingPattern opt_topReturnTypeWithTypeConstraints recover
@@ -2820,9 +2820,9 @@ localBinding:
28202820 let localBindingBuilder =
28212821 (fun xmlDoc attrs vis (leadingKeyword: SynLeadingKeyword) ->
28222822 let spBind = DebugPointAtBinding.Yes (unionRanges leadingKeyword.Range mRhs)
2823- let trivia = { LeadingKeyword = leadingKeyword; EqualsRange = None }
2823+ let trivia = { LeadingKeyword = leadingKeyword; InlineKeyword = $1; EqualsRange = None }
28242824 let rhsExpr = arbExpr("localBinding2", mRhs)
2825- mkSynBinding (xmlDoc, bindingPat) (vis, $1, $2, mBindLhs, spBind, optReturnType, rhsExpr, mRhs, [], attrs, None, trivia))
2825+ mkSynBinding (xmlDoc, bindingPat) (vis, Option.isSome $1, $2, mBindLhs, spBind, optReturnType, rhsExpr, mRhs, [], attrs, None, trivia))
28262826 mWhole, localBindingBuilder }
28272827
28282828/* A single expression with an optional type annotation, and an optional static optimization block */
@@ -5816,8 +5816,8 @@ opt_bar:
58165816 | /* EMPTY */ { }
58175817
58185818opt_inline:
5819- | INLINE { true }
5820- | /* EMPTY */ { false }
5819+ | INLINE { Some (rhs parseState 1) }
5820+ | /* EMPTY */ { None }
58215821
58225822opt_mutable:
58235823 | MUTABLE { true }
0 commit comments