diff --git a/docs/release-notes/.FSharp.Compiler.Service/10.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/10.0.100.md index f51a8d052ee..c9a4b1ff4c1 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/10.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/10.0.100.md @@ -27,3 +27,4 @@ * Simplify creation of `FSharpDiagnostics`. In a few cases, errors without ranges were assigned to the currently checked file, while in other cases they carried an empty range. The latter is now true in all cases. In a few cases, ranges at eof were corrected, while in others they were not. They are now always left uncorrected. This is a prerequisit for [#18553](https://github.com/dotnet/fsharp/issues/18553). ([PR #18610](https://github.com/dotnet/fsharp/pull/18610)). * `SynExprRecordField` now includes a `range` field ([PR #18617](https://github.com/dotnet/fsharp/pull/18617)) * Mark `Range.Zero` as obsolete in favor of `Range.range0` ([PR #18664](https://github.com/dotnet/fsharp/pull/18664)) +* Use `Synbinding` to model `and!` ([PR #18805](https://github.com/dotnet/fsharp/pull/18805)) diff --git a/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs b/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs index 3258dbbb9a5..7f1be3d7bc9 100644 --- a/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs @@ -1860,7 +1860,7 @@ let rec TryTranslateComputationExpression let m = match andBangs with | [] -> comp.Range - | h :: _ -> h.Trivia.AndBangKeyword + | h :: _ -> h.Trivia.LeadingKeyword.Range error (Error(FSComp.SR.tcInvalidUseBangBindingNoAndBangs (), m)) @@ -1912,7 +1912,7 @@ let rec TryTranslateComputationExpression let andBangRange = match andBangBindings with | [] -> comp.Range - | h :: _ -> h.Trivia.AndBangKeyword + | h :: _ -> h.Trivia.LeadingKeyword.Range error (Error(FSComp.SR.tcAndBangNotSupported (), andBangRange)) @@ -1920,12 +1920,11 @@ let rec TryTranslateComputationExpression error (Error(FSComp.SR.tcBindMayNotBeUsedInQueries (), mBind)) let sources = - (letRhsExpr - :: [ for SynExprAndBang(body = andExpr) in andBangBindings -> andExpr ]) + (letRhsExpr :: [ for SynBinding(expr = andExpr) in andBangBindings -> andExpr ]) |> List.map (fun expr -> mkSourceExprConditional isFromSource expr ceenv.sourceMethInfo ceenv.builderValName) let pats = - letPat :: [ for SynExprAndBang(pat = andPat) in andBangBindings -> andPat ] + letPat :: [ for SynBinding(headPat = andPat) in andBangBindings -> andPat ] let sourcesRange = sources |> List.map (fun e -> e.Range) |> List.reduce unionRanges diff --git a/src/Compiler/Driver/GraphChecking/FileContentMapping.fs b/src/Compiler/Driver/GraphChecking/FileContentMapping.fs index 7be965522f6..bfcc2600ec0 100644 --- a/src/Compiler/Driver/GraphChecking/FileContentMapping.fs +++ b/src/Compiler/Driver/GraphChecking/FileContentMapping.fs @@ -507,14 +507,14 @@ let visitSynExpr (e: SynExpr) : FileContentEntry list = | SynExpr.YieldOrReturnFrom(expr = expr) -> visit expr continuation | SynExpr.LetOrUseBang(pat = pat; rhs = rhs; andBangs = andBangs; body = body) -> let continuations = - let andBangExprs = List.map (fun (SynExprAndBang(body = body)) -> body) andBangs + let andBangExprs = List.map (fun (SynBinding(expr = body)) -> body) andBangs List.map visit (body :: rhs :: andBangExprs) let finalContinuation nodes = [ yield! List.concat nodes yield! visitPat pat - for SynExprAndBang(pat = pat) in andBangs do + for SynBinding(headPat = pat) in andBangs do yield! visitPat pat ] |> continuation diff --git a/src/Compiler/Service/FSharpParseFileResults.fs b/src/Compiler/Service/FSharpParseFileResults.fs index 612057578f7..d9f2df83d30 100644 --- a/src/Compiler/Service/FSharpParseFileResults.fs +++ b/src/Compiler/Service/FSharpParseFileResults.fs @@ -766,7 +766,7 @@ type FSharpParseFileResults(diagnostics: FSharpDiagnostic[], input: ParsedInput, yield! walkBindSeqPt spBind yield! walkExpr true rhsExpr - for SynExprAndBang(debugPoint = andBangSpBind; body = eAndBang) in andBangs do + for SynBinding(debugPoint = andBangSpBind; expr = eAndBang) in andBangs do yield! walkBindSeqPt andBangSpBind yield! walkExpr true eAndBang diff --git a/src/Compiler/Service/ServiceInterfaceStubGenerator.fs b/src/Compiler/Service/ServiceInterfaceStubGenerator.fs index 94051957876..fa13224a927 100644 --- a/src/Compiler/Service/ServiceInterfaceStubGenerator.fs +++ b/src/Compiler/Service/ServiceInterfaceStubGenerator.fs @@ -959,7 +959,7 @@ module InterfaceStubGenerator = | SynExpr.LetOrUseBang(rhs = synExpr1; andBangs = synExprAndBangs; body = synExpr2) -> [ yield synExpr1 - for SynExprAndBang(body = eAndBang) in synExprAndBangs do + for SynBinding(expr = eAndBang) in synExprAndBangs do yield eAndBang yield synExpr2 ] diff --git a/src/Compiler/Service/ServiceParseTreeWalk.fs b/src/Compiler/Service/ServiceParseTreeWalk.fs index 33734db9a62..ce689f8f5d6 100644 --- a/src/Compiler/Service/ServiceParseTreeWalk.fs +++ b/src/Compiler/Service/ServiceParseTreeWalk.fs @@ -751,7 +751,7 @@ module SyntaxTraversal = yield dive synExpr synExpr.Range traverseSynExpr yield! [ - for SynExprAndBang(pat = andBangSynPat; body = andBangSynExpr) in andBangSynExprs do + for SynBinding(headPat = andBangSynPat; expr = andBangSynExpr) in andBangSynExprs do yield (dive andBangSynPat andBangSynPat.Range traversePat) yield (dive andBangSynExpr andBangSynExpr.Range traverseSynExpr) ] diff --git a/src/Compiler/Service/ServiceParsedInputOps.fs b/src/Compiler/Service/ServiceParsedInputOps.fs index b8ffe0d030f..585d29787fc 100644 --- a/src/Compiler/Service/ServiceParsedInputOps.fs +++ b/src/Compiler/Service/ServiceParsedInputOps.fs @@ -851,7 +851,7 @@ module ParsedInput = | SynExpr.LetOrUseBang(rhs = e1; andBangs = es; body = e2) -> [ yield e1 - for SynExprAndBang(body = eAndBang) in es do + for SynBinding(expr = eAndBang) in es do yield eAndBang yield e2 ] @@ -2159,7 +2159,7 @@ module ParsedInput = walkPat pat walkExpr e1 - for SynExprAndBang(pat = patAndBang; body = eAndBang) in es do + for SynBinding(headPat = patAndBang; expr = eAndBang) in es do walkPat patAndBang walkExpr eAndBang diff --git a/src/Compiler/Service/ServiceStructure.fs b/src/Compiler/Service/ServiceStructure.fs index 5fab5ef9eb5..8025a7f1b0d 100644 --- a/src/Compiler/Service/ServiceStructure.fs +++ b/src/Compiler/Service/ServiceStructure.fs @@ -262,7 +262,7 @@ module Structure = let exprs = [ eLet - for SynExprAndBang(body = eAndBang) in es do + for SynBinding(expr = eAndBang) in es do eAndBang ] diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs index 64b525e1afd..35b8a3d46db 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fs +++ b/src/Compiler/SyntaxTree/ParseHelpers.fs @@ -871,15 +871,28 @@ let mkClassMemberLocalBindings let mkAndBang (mKeyword: range, pat: SynPat, rhs: SynExpr, mWhole: range, mEquals: range, mIn: range option) = let spBind = DebugPointAtBinding.Yes(unionRanges mKeyword rhs.Range) - let trivia: SynExprAndBangTrivia = + let trivia: SynBindingTrivia = { - AndBangKeyword = mKeyword - EqualsRange = mEquals - InKeyword = mIn + LeadingKeyword = SynLeadingKeyword.And mKeyword + InlineKeyword = mIn + EqualsRange = Some mEquals } - // For and!, isUse is always true, isFromSource is always true - SynExprAndBang(spBind, false, true, pat, rhs, mWhole, trivia) + SynBinding( + accessibility = None, + kind = SynBindingKind.Normal, + isInline = false, + isMutable = false, + attributes = [], + xmlDoc = PreXmlDoc.Empty, + valData = SynInfo.emptySynValData, + headPat = pat, + returnInfo = None, + expr = rhs, + range = mWhole, + debugPoint = spBind, + trivia = trivia + ) let mkDefnBindings (mWhole, BindingSetPreAttrs(_, isRec, isUse, declsPreAttrs, _bindingSetRange), attrs, vis, attrsm) = if isUse then @@ -1063,7 +1076,7 @@ let mkLetExpression mWhole: range, body: SynExpr, bindingInfo: (bool * BindingSet) option, - bangInfo: (SynPat * SynExpr * SynExprAndBang list * range option * bool) option + bangInfo: (SynPat * SynExpr * SynBinding list * range option * bool) option ) = if isBang then match bangInfo with diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fsi b/src/Compiler/SyntaxTree/ParseHelpers.fsi index 190545286a4..03e9e37f274 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fsi +++ b/src/Compiler/SyntaxTree/ParseHelpers.fsi @@ -205,11 +205,11 @@ val mkLetExpression: mWhole: range * body: SynExpr * bindingInfo: (bool * BindingSet) option * - bangInfo: (SynPat * SynExpr * SynExprAndBang list * range option * bool) option -> + bangInfo: (SynPat * SynExpr * SynBinding list * range option * bool) option -> SynExpr val mkAndBang: - mKeyword: range * pat: SynPat * rhs: SynExpr * mWhole: range * mEquals: range * mIn: range option -> SynExprAndBang + mKeyword: range * pat: SynPat * rhs: SynExpr * mWhole: range * mEquals: range * mIn: range option -> SynBinding val mkDefnBindings: mWhole: range * BindingSet * attrs: SynAttributes * vis: SynAccess option * attrsm: range -> SynModuleDecl list diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index acbb6d0a26e..04d3c30d2f8 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -627,8 +627,6 @@ type SynExpr = typeArgsRange: range * range: range - | LetOrUse of isRecursive: bool * isUse: bool * bindings: SynBinding list * body: SynExpr * range: range * trivia: SynExprLetOrUseTrivia - | TryWith of tryExpr: SynExpr * withCases: SynMatchClause list * @@ -720,13 +718,15 @@ type SynExpr = | YieldOrReturnFrom of flags: (bool * bool) * expr: SynExpr * range: range * trivia: SynExprYieldOrReturnFromTrivia + | LetOrUse of isRecursive: bool * isUse: bool * bindings: SynBinding list * body: SynExpr * range: range * trivia: SynExprLetOrUseTrivia + | LetOrUseBang of bindDebugPoint: DebugPointAtBinding * isUse: bool * isFromSource: bool * pat: SynPat * rhs: SynExpr * - andBangs: SynExprAndBang list * + andBangs: SynBinding list * body: SynExpr * range: range * trivia: SynExprLetOrUseTrivia @@ -871,25 +871,6 @@ type SynExpr = | SynExpr.ArbitraryAfterError _ -> true | _ -> false -[] -type SynExprAndBang = - | SynExprAndBang of - debugPoint: DebugPointAtBinding * - isUse: bool * - isFromSource: bool * - pat: SynPat * - body: SynExpr * - range: range * - trivia: SynExprAndBangTrivia - - member x.Range = - match x with - | SynExprAndBang(range = range) -> range - - member this.Trivia = - match this with - | SynExprAndBang(trivia = trivia) -> trivia - [] type SynExprRecordField = | SynExprRecordField of @@ -1126,6 +1107,8 @@ type SynBinding = member x.RangeOfHeadPattern = let (SynBinding(headPat = headPat)) = x in headPat.Range + member x.Trivia = let (SynBinding(trivia = trivia)) = x in trivia + [] type SynBindingReturnInfo = | SynBindingReturnInfo of typeName: SynType * range: range * attributes: SynAttributes * trivia: SynBindingReturnInfoTrivia diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fsi b/src/Compiler/SyntaxTree/SyntaxTree.fsi index 2dd3bb35aae..d6a01186807 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTree.fsi @@ -726,18 +726,6 @@ type SynExpr = typeArgsRange: range * range: range - /// F# syntax: let pat = expr in expr - /// F# syntax: let f pat1 .. patN = expr in expr - /// F# syntax: let rec f pat1 .. patN = expr in expr - /// F# syntax: use pat = expr in expr - | LetOrUse of - isRecursive: bool * - isUse: bool * - bindings: SynBinding list * - body: SynExpr * - range: range * - trivia: SynExprLetOrUseTrivia - /// F# syntax: try expr with pat -> expr | TryWith of tryExpr: SynExpr * @@ -886,6 +874,18 @@ type SynExpr = /// Computation expressions only | YieldOrReturnFrom of flags: (bool * bool) * expr: SynExpr * range: range * trivia: SynExprYieldOrReturnFromTrivia + /// F# syntax: let pat = expr in expr + /// F# syntax: let f pat1 .. patN = expr in expr + /// F# syntax: let rec f pat1 .. patN = expr in expr + /// F# syntax: use pat = expr in expr + | LetOrUse of + isRecursive: bool * + isUse: bool * + bindings: SynBinding list * + body: SynExpr * + range: range * + trivia: SynExprLetOrUseTrivia + /// F# syntax: let! pat = expr in expr /// F# syntax: use! pat = expr in expr /// F# syntax: let! pat = expr and! ... and! ... and! pat = expr in expr @@ -896,7 +896,7 @@ type SynExpr = isFromSource: bool * pat: SynPat * rhs: SynExpr * - andBangs: SynExprAndBang list * + andBangs: SynBinding list * body: SynExpr * range: range * trivia: SynExprLetOrUseTrivia @@ -976,23 +976,6 @@ type SynExpr = /// Indicates if this expression arises from error recovery member IsArbExprAndThusAlreadyReportedError: bool -[] -type SynExprAndBang = - | SynExprAndBang of - debugPoint: DebugPointAtBinding * - isUse: bool * - isFromSource: bool * - pat: SynPat * - body: SynExpr * - range: range * - trivia: SynExprAndBangTrivia - - /// Gets the syntax range of this construct - member Range: range - - /// Gets the trivia associated with this construct - member Trivia: SynExprAndBangTrivia - [] type SynExprRecordField = | SynExprRecordField of @@ -1254,6 +1237,8 @@ type SynBinding = member RangeOfHeadPattern: range + member Trivia: SynBindingTrivia + /// Represents the return information in a binding for a 'let' or 'member' declaration [] type SynBindingReturnInfo = diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index 616191c9b5a..349c8e8002c 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -985,7 +985,7 @@ let rec synExprContainsError inpExpr = walkExpr e1 || walkExprs [ - for SynExprAndBang(body = e) in es do + for SynBinding(expr = e) in es do yield e ] || walkExpr e2 diff --git a/src/Compiler/SyntaxTree/SyntaxTrivia.fs b/src/Compiler/SyntaxTree/SyntaxTrivia.fs index 7befe5e4a01..53ac39d5365 100644 --- a/src/Compiler/SyntaxTree/SyntaxTrivia.fs +++ b/src/Compiler/SyntaxTree/SyntaxTrivia.fs @@ -292,14 +292,6 @@ type SynBindingTrivia = EqualsRange = None } -[] -type SynExprAndBangTrivia = - { - AndBangKeyword: range - EqualsRange: range - InKeyword: range option - } - [] type SynModuleDeclNestedModuleTrivia = { diff --git a/src/Compiler/SyntaxTree/SyntaxTrivia.fsi b/src/Compiler/SyntaxTree/SyntaxTrivia.fsi index 9a0b8d6b363..ee139be061e 100644 --- a/src/Compiler/SyntaxTree/SyntaxTrivia.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTrivia.fsi @@ -349,18 +349,6 @@ type SynBindingTrivia = static member Zero: SynBindingTrivia -/// Represents additional information for SynExprAndBang -[] -type SynExprAndBangTrivia = - { - /// The syntax range of the `and!` keyword - AndBangKeyword: range - /// The syntax range of the `=` token. - EqualsRange: range - /// The syntax range of the `in` keyword. - InKeyword: range option - } - /// Represents additional information for SynModuleDecl.NestedModule [] type SynModuleDeclNestedModuleTrivia = diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl index 4275cefb8be..08fdef6f111 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl @@ -6598,6 +6598,8 @@ FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynPat get_headPat() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynPat headPat FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynValData get_valData() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynValData valData +FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia Trivia +FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia get_Trivia() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia get_trivia() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia trivia FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Text.Range RangeOfBindingWithRhs @@ -7233,8 +7235,8 @@ FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.SyntaxTrivia.SynExp FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia trivia FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.Text.Range get_range() FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.Text.Range range -FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang] andBangs -FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang] get_andBangs() +FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding] andBangs +FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding] get_andBangs() FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: FSharp.Compiler.Text.Range get_range() FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: FSharp.Compiler.Text.Range range FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr] args @@ -7760,7 +7762,7 @@ FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewJoinIn(FSharp. FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLambda(Boolean, Boolean, FSharp.Compiler.Syntax.SynSimplePats, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Syntax.SynExpr]], FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLambdaTrivia) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLazy(FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUse(Boolean, Boolean, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) -FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUseBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) +FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUseBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyILAssembly(System.Object, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynType], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynType], FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyStaticOptimization(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynStaticOptimizationConstraint], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyUnionCaseFieldGet(FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident], Int32, FSharp.Compiler.Text.Range) @@ -7873,28 +7875,6 @@ FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Text.Range get_RangeWithoutAnyEx FSharp.Compiler.Syntax.SynExpr: Int32 Tag FSharp.Compiler.Syntax.SynExpr: Int32 get_Tag() FSharp.Compiler.Syntax.SynExpr: System.String ToString() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean get_isFromSource() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean get_isUse() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean isFromSource -FSharp.Compiler.Syntax.SynExprAndBang: Boolean isUse -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.DebugPointAtBinding debugPoint -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.DebugPointAtBinding get_debugPoint() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExpr body -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExpr get_body() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExprAndBang NewSynExprAndBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia) -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynPat get_pat() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynPat pat -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia Trivia -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia get_Trivia() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia get_trivia() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia trivia -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range Range -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range get_Range() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range get_range() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range range -FSharp.Compiler.Syntax.SynExprAndBang: Int32 Tag -FSharp.Compiler.Syntax.SynExprAndBang: Int32 get_Tag() -FSharp.Compiler.Syntax.SynExprAndBang: System.String ToString() FSharp.Compiler.Syntax.SynExprModule: Boolean shouldBeParenthesizedInContext(Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,System.String], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynExpr) FSharp.Compiler.Syntax.SynExprRecordField: FSharp.Compiler.Syntax.SynExprRecordField NewSynExprRecordField(System.Tuple`2[FSharp.Compiler.Syntax.SynLongIdent,System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynExpr], FSharp.Compiler.Text.Range, Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.Text.Range,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Position]]]) FSharp.Compiler.Syntax.SynExprRecordField: FSharp.Compiler.Text.Range get_range() @@ -10297,14 +10277,6 @@ FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Microsoft.FSharp.Core.FSharpOpti FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_BarRange() FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: System.String ToString() FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Void .ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], FSharp.Compiler.Text.Range) -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range AndBangKeyword -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range EqualsRange -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range get_AndBangKeyword() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range get_EqualsRange() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] InKeyword -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_InKeyword() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: System.String ToString() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Void .ctor(FSharp.Compiler.Text.Range, FSharp.Compiler.Text.Range, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]) FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: FSharp.Compiler.Text.Range OpeningBraceRange FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: FSharp.Compiler.Text.Range get_OpeningBraceRange() FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: System.String ToString() diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl index 4275cefb8be..08fdef6f111 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl @@ -6598,6 +6598,8 @@ FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynPat get_headPat() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynPat headPat FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynValData get_valData() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Syntax.SynValData valData +FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia Trivia +FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia get_Trivia() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia get_trivia() FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.SyntaxTrivia.SynBindingTrivia trivia FSharp.Compiler.Syntax.SynBinding: FSharp.Compiler.Text.Range RangeOfBindingWithRhs @@ -7233,8 +7235,8 @@ FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.SyntaxTrivia.SynExp FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia trivia FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.Text.Range get_range() FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: FSharp.Compiler.Text.Range range -FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang] andBangs -FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang] get_andBangs() +FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding] andBangs +FSharp.Compiler.Syntax.SynExpr+LetOrUseBang: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding] get_andBangs() FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: FSharp.Compiler.Text.Range get_range() FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: FSharp.Compiler.Text.Range range FSharp.Compiler.Syntax.SynExpr+LibraryOnlyILAssembly: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr] args @@ -7760,7 +7762,7 @@ FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewJoinIn(FSharp. FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLambda(Boolean, Boolean, FSharp.Compiler.Syntax.SynSimplePats, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Syntax.SynExpr]], FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLambdaTrivia) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLazy(FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUse(Boolean, Boolean, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) -FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUseBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExprAndBang], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) +FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLetOrUseBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynBinding], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprLetOrUseTrivia) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyILAssembly(System.Object, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynType], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynType], FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyStaticOptimization(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynStaticOptimizationConstraint], FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range) FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Syntax.SynExpr NewLibraryOnlyUnionCaseFieldGet(FSharp.Compiler.Syntax.SynExpr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident], Int32, FSharp.Compiler.Text.Range) @@ -7873,28 +7875,6 @@ FSharp.Compiler.Syntax.SynExpr: FSharp.Compiler.Text.Range get_RangeWithoutAnyEx FSharp.Compiler.Syntax.SynExpr: Int32 Tag FSharp.Compiler.Syntax.SynExpr: Int32 get_Tag() FSharp.Compiler.Syntax.SynExpr: System.String ToString() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean get_isFromSource() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean get_isUse() -FSharp.Compiler.Syntax.SynExprAndBang: Boolean isFromSource -FSharp.Compiler.Syntax.SynExprAndBang: Boolean isUse -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.DebugPointAtBinding debugPoint -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.DebugPointAtBinding get_debugPoint() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExpr body -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExpr get_body() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynExprAndBang NewSynExprAndBang(FSharp.Compiler.Syntax.DebugPointAtBinding, Boolean, Boolean, FSharp.Compiler.Syntax.SynPat, FSharp.Compiler.Syntax.SynExpr, FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia) -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynPat get_pat() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Syntax.SynPat pat -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia Trivia -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia get_Trivia() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia get_trivia() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia trivia -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range Range -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range get_Range() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range get_range() -FSharp.Compiler.Syntax.SynExprAndBang: FSharp.Compiler.Text.Range range -FSharp.Compiler.Syntax.SynExprAndBang: Int32 Tag -FSharp.Compiler.Syntax.SynExprAndBang: Int32 get_Tag() -FSharp.Compiler.Syntax.SynExprAndBang: System.String ToString() FSharp.Compiler.Syntax.SynExprModule: Boolean shouldBeParenthesizedInContext(Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,System.String], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynExpr) FSharp.Compiler.Syntax.SynExprRecordField: FSharp.Compiler.Syntax.SynExprRecordField NewSynExprRecordField(System.Tuple`2[FSharp.Compiler.Syntax.SynLongIdent,System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynExpr], FSharp.Compiler.Text.Range, Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.Text.Range,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Position]]]) FSharp.Compiler.Syntax.SynExprRecordField: FSharp.Compiler.Text.Range get_range() @@ -10297,14 +10277,6 @@ FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Microsoft.FSharp.Core.FSharpOpti FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_BarRange() FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: System.String ToString() FSharp.Compiler.SyntaxTrivia.SynEnumCaseTrivia: Void .ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], FSharp.Compiler.Text.Range) -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range AndBangKeyword -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range EqualsRange -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range get_AndBangKeyword() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: FSharp.Compiler.Text.Range get_EqualsRange() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] InKeyword -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_InKeyword() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: System.String ToString() -FSharp.Compiler.SyntaxTrivia.SynExprAndBangTrivia: Void .ctor(FSharp.Compiler.Text.Range, FSharp.Compiler.Text.Range, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]) FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: FSharp.Compiler.Text.Range OpeningBraceRange FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: FSharp.Compiler.Text.Range get_OpeningBraceRange() FSharp.Compiler.SyntaxTrivia.SynExprAnonRecdTrivia: System.String ToString() diff --git a/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl index bdee1f621ed..a865a94772e 100644 --- a/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl +++ b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl @@ -18,26 +18,38 @@ ImplFile App (NonAtomic, false, Ident getBar, Const (Unit, (3,22--3,24)), (3,15--3,24)), - [SynExprAndBang - (Yes (4,4--4,24), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Named (SynIdent (foo, None), false, None, (4,9--4,12)), + None, App (NonAtomic, false, Ident getFoo, Const (Unit, (4,22--4,24)), (4,15--4,24)), - (4,4--4,24), { AndBangKeyword = (4,4--4,8) - EqualsRange = (4,13--4,14) - InKeyword = Some (4,25--4,27) }); - SynExprAndBang - (Yes (5,4--5,24), false, true, + (4,4--4,24), Yes (4,4--4,24), + { LeadingKeyword = And (4,4--4,8) + InlineKeyword = Some (4,25--4,27) + EqualsRange = Some (4,13--4,14) }); + SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Named (SynIdent (meh, None), false, None, (5,9--5,12)), + None, App (NonAtomic, false, Ident getMeh, Const (Unit, (5,22--5,24)), (5,15--5,24)), - (5,4--5,24), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,13--5,14) - InKeyword = None })], + (5,4--5,24), Yes (5,4--5,24), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,13--5,14) })], YieldOrReturn ((false, true), Ident bar, (6,4--6,14), { YieldOrReturnKeyword = (6,4--6,10) }), (3,4--6,14), diff --git a/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl index 58d455dacb1..c08f43cc9f2 100644 --- a/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl +++ b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl @@ -18,16 +18,22 @@ ImplFile App (NonAtomic, false, Ident getBar, Const (Unit, (3,22--3,24)), (3,15--3,24)), - [SynExprAndBang - (Yes (5,4--5,24), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Named (SynIdent (foo, None), false, None, (5,9--5,12)), + None, App (NonAtomic, false, Ident getFoo, Const (Unit, (5,22--5,24)), (5,15--5,24)), - (5,4--5,24), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,13--5,14) - InKeyword = None })], + (5,4--5,24), Yes (5,4--5,24), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,13--5,14) })], YieldOrReturn ((false, true), Ident bar, (7,4--7,14), { YieldOrReturnKeyword = (7,4--7,10) }), (3,4--7,14), diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl index 05609fbca45..1155c145819 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl @@ -15,15 +15,21 @@ ImplFile (Yes (3,4--3,14), false, true, Named (SynIdent (x, None), false, None, (3,9--3,10)), Ident y, - [SynExprAndBang - (Yes (4,4--4,28), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Named (SynIdent (z, None), false, None, (4,9--4,10)), + None, App (NonAtomic, false, Ident someFunction, Const (Unit, (4,26--4,28)), (4,13--4,28)), - (4,4--4,28), { AndBangKeyword = (4,4--4,8) - EqualsRange = (4,11--4,12) - InKeyword = None })], + (4,4--4,28), Yes (4,4--4,28), + { LeadingKeyword = And (4,4--4,8) + InlineKeyword = None + EqualsRange = Some (4,11--4,12) })], YieldOrReturn ((false, true), Const (Unit, (5,11--5,13)), (5,4--5,13), { YieldOrReturnKeyword = (5,4--5,10) }), (3,4--5,13), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang 14.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang 14.fs.bsl index 93a922eddab..cbb7adec174 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang 14.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang 14.fs.bsl @@ -22,8 +22,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,29--4,31)), (4,21--4,31)), - [SynExprAndBang - (Yes (5,4--5,41), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Paren (As @@ -34,13 +38,14 @@ ImplFile (SynIdent (b, None), false, None, (5,15--5,16)), (5,10--5,16)), (5,9--5,17)), LongIdent (SynLongIdent ([string], [], [None])), - (5,9--5,25)), + (5,9--5,25)), None, App (Atomic, false, Ident asyncString, Const (Unit, (5,39--5,41)), (5,28--5,41)), - (5,4--5,41), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,26--5,27) - InKeyword = None })], + (5,4--5,41), Yes (5,4--5,41), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,26--5,27) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 01.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 01.fs.bsl index 865c5a7883d..91fadaaff2b 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 01.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 01.fs.bsl @@ -24,13 +24,17 @@ ImplFile (4,28--4,36), { YieldOrReturnKeyword = (4,28--4,34) }), (4,26--4,38)), (4,20--4,38)), - [SynExprAndBang - (Yes (5,4--5,39), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Named (SynIdent (res2, None), false, None, (5,9--5,13)), LongIdent (SynLongIdent ([int], [], [None])), - (5,9--5,18)), + (5,9--5,18)), None, App (NonAtomic, false, Ident async, ComputationExpr @@ -40,9 +44,9 @@ ImplFile (5,29--5,37), { YieldOrReturnKeyword = (5,29--5,35) }), (5,27--5,39)), (5,21--5,39)), (5,4--5,39), - { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,19--5,20) - InKeyword = None })], + Yes (5,4--5,39), { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,19--5,20) })], YieldOrReturn ((false, true), Ident res, (6,4--6,14), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,14), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 02.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 02.fs.bsl index ed100564aef..f8f8e2aa771 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 02.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 02.fs.bsl @@ -26,15 +26,19 @@ ImplFile (4,30--4,38), { YieldOrReturnKeyword = (4,30--4,36) }), (4,28--4,40)), (4,22--4,40)), - [SynExprAndBang - (Yes (5,4--5,41), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Paren (Typed (Named (SynIdent (res2, None), false, None, (5,10--5,14)), LongIdent (SynLongIdent ([int], [], [None])), - (5,10--5,19)), (5,9--5,20)), + (5,10--5,19)), (5,9--5,20)), None, App (NonAtomic, false, Ident async, ComputationExpr @@ -44,9 +48,9 @@ ImplFile (5,31--5,39), { YieldOrReturnKeyword = (5,31--5,37) }), (5,29--5,41)), (5,23--5,41)), (5,4--5,41), - { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,21--5,22) - InKeyword = None })], + Yes (5,4--5,41), { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,21--5,22) })], YieldOrReturn ((false, true), Ident res, (6,4--6,14), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,14), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 03.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 03.fs.bsl index 8c41c87de16..d9f62d1ca24 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 03.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 03.fs.bsl @@ -27,8 +27,12 @@ ImplFile App (Atomic, false, Ident asyncPerson, Const (Unit, (4,59--4,61)), (4,48--4,61)), - [SynExprAndBang - (Yes (5,4--5,42), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Paren (Typed (Record @@ -37,13 +41,14 @@ ImplFile (SynIdent (id, None), false, None, (5,17--5,19)))], (5,10--5,21)), LongIdent (SynLongIdent ([User], [], [None])), - (5,10--5,27)), (5,9--5,28)), + (5,10--5,27)), (5,9--5,28)), None, App (Atomic, false, Ident asyncUser, Const (Unit, (5,40--5,42)), (5,31--5,42)), - (5,4--5,42), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,29--5,30) - InKeyword = None })], + (5,4--5,42), Yes (5,4--5,42), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,29--5,30) })], YieldOrReturn ((false, true), Ident name, (6,4--6,15), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,15), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 04.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 04.fs.bsl index 1ad08e47ec6..17269172956 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 04.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 04.fs.bsl @@ -26,8 +26,12 @@ ImplFile App (Atomic, false, Ident asyncPerson, Const (Unit, (4,57--4,59)), (4,46--4,59)), - [SynExprAndBang - (Yes (5,4--5,40), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Record ([(([], Id), Some (5,14--5,15), @@ -35,13 +39,14 @@ ImplFile (SynIdent (id, None), false, None, (5,16--5,18)))], (5,9--5,20)), LongIdent (SynLongIdent ([User], [], [None])), - (5,9--5,26)), + (5,9--5,26)), None, App (Atomic, false, Ident asyncUser, Const (Unit, (5,38--5,40)), (5,29--5,40)), - (5,4--5,40), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,27--5,28) - InKeyword = None })], + (5,4--5,40), Yes (5,4--5,40), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,27--5,28) })], YieldOrReturn ((false, true), Ident name, (6,4--6,15), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,15), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 05.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 05.fs.bsl index 5fb229546c6..e6d00ed2168 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 05.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 05.fs.bsl @@ -27,8 +27,12 @@ ImplFile App (Atomic, false, Ident asyncPerson, Const (Unit, (4,59--4,61)), (4,48--4,61)), - [SynExprAndBang - (Yes (5,4--5,40), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Record ([(([], Id), Some (5,14--5,15), @@ -36,13 +40,14 @@ ImplFile (SynIdent (id, None), false, None, (5,16--5,18)))], (5,9--5,20)), LongIdent (SynLongIdent ([User], [], [None])), - (5,9--5,26)), + (5,9--5,26)), None, App (Atomic, false, Ident asyncUser, Const (Unit, (5,38--5,40)), (5,29--5,40)), - (5,4--5,40), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,27--5,28) - InKeyword = None })], + (5,4--5,40), Yes (5,4--5,40), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,27--5,28) })], YieldOrReturn ((false, true), Ident name, (6,4--6,15), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,15), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 06.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 06.fs.bsl index 5354fd61d49..739587c36e9 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 06.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 06.fs.bsl @@ -22,8 +22,12 @@ ImplFile App (Atomic, false, Ident asyncOption, Const (Unit, (4,36--4,38)), (4,25--4,38)), - [SynExprAndBang - (Yes (5,4--5,39), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Paren (LongIdent (SynLongIdent ([Union], [], [None]), None, None, @@ -31,13 +35,14 @@ ImplFile [Named (SynIdent (value2, None), false, None, (5,16--5,22))], None, (5,10--5,22)), - (5,9--5,23)), + (5,9--5,23)), None, App (Atomic, false, Ident asyncOption, Const (Unit, (5,37--5,39)), (5,26--5,39)), - (5,4--5,39), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,24--5,25) - InKeyword = None })], + (5,4--5,39), Yes (5,4--5,39), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,24--5,25) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 07.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 07.fs.bsl index 31b4888fba6..6af2b1f92b1 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 07.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 07.fs.bsl @@ -20,20 +20,25 @@ ImplFile App (Atomic, false, Ident asyncOption, Const (Unit, (4,34--4,36)), (4,23--4,36)), - [SynExprAndBang - (Yes (5,4--5,37), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), LongIdent (SynLongIdent ([Union], [], [None]), None, None, Pats [Named (SynIdent (value2, None), false, None, - (5,15--5,21))], None, (5,9--5,21)), + (5,15--5,21))], None, (5,9--5,21)), None, App (Atomic, false, Ident asyncOption, Const (Unit, (5,35--5,37)), (5,24--5,37)), - (5,4--5,37), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,22--5,23) - InKeyword = None })], + (5,4--5,37), Yes (5,4--5,37), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,22--5,23) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 08.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 08.fs.bsl index f04efe243af..e583ae5852b 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 08.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 08.fs.bsl @@ -28,8 +28,12 @@ ImplFile App (Atomic, false, Ident asyncOption, Const (Unit, (4,48--4,50)), (4,37--4,50)), - [SynExprAndBang - (Yes (5,4--5,51), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Paren (LongIdent @@ -45,12 +49,14 @@ ImplFile None, [LongIdent (SynLongIdent ([int], [], [None]))], [], None, true, (5,25--5,35)), (5,9--5,35)), + None, App (Atomic, false, Ident asyncOption, Const (Unit, (5,49--5,51)), (5,38--5,51)), - (5,4--5,51), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,36--5,37) - InKeyword = None })], + (5,4--5,51), Yes (5,4--5,51), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,36--5,37) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 09.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 09.fs.bsl index 1da61fcb395..2ab23d5029c 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 09.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 09.fs.bsl @@ -26,8 +26,12 @@ ImplFile App (Atomic, false, Ident asyncOption, Const (Unit, (4,46--4,48)), (4,35--4,48)), - [SynExprAndBang - (Yes (5,4--5,49), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (LongIdent (SynLongIdent ([Union], [], [None]), None, None, @@ -40,12 +44,14 @@ ImplFile None, [LongIdent (SynLongIdent ([int], [], [None]))], [], None, true, (5,23--5,33)), (5,9--5,33)), + None, App (Atomic, false, Ident asyncOption, Const (Unit, (5,47--5,49)), (5,36--5,49)), - (5,4--5,49), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,34--5,35) - InKeyword = None })], + (5,4--5,49), Yes (5,4--5,49), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,34--5,35) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 10.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 10.fs.bsl index 49476bb21ad..299837318cf 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 10.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 10.fs.bsl @@ -24,8 +24,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,33--4,35)), (4,25--4,35)), - [SynExprAndBang - (Yes (5,4--5,41), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Paren (As @@ -36,13 +40,14 @@ ImplFile (SynIdent (b, None), false, None, (5,15--5,16)), (5,10--5,16)), (5,9--5,17)), LongIdent (SynLongIdent ([string], [], [None])), - (5,9--5,25)), + (5,9--5,25)), None, App (Atomic, false, Ident asyncString, Const (Unit, (5,39--5,41)), (5,28--5,41)), - (5,4--5,41), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,26--5,27) - InKeyword = None })], + (5,4--5,41), Yes (5,4--5,41), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,26--5,27) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 11.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 11.fs.bsl index 7305918522c..9ee8fe531ed 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 11.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 11.fs.bsl @@ -23,8 +23,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,31--4,33)), (4,23--4,33)), - [SynExprAndBang - (Yes (5,4--5,39), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (As (Named @@ -33,13 +37,14 @@ ImplFile (SynIdent (b, None), false, None, (5,14--5,15)), (5,9--5,15)), LongIdent (SynLongIdent ([string], [], [None])), - (5,9--5,23)), + (5,9--5,23)), None, App (Atomic, false, Ident asyncString, Const (Unit, (5,37--5,39)), (5,26--5,39)), - (5,4--5,39), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,24--5,25) - InKeyword = None })], + (5,4--5,39), Yes (5,4--5,39), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,24--5,25) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 12.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 12.fs.bsl index db63b5cdd31..33159e69b1e 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 12.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 12.fs.bsl @@ -18,20 +18,25 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,26--4,28)), (4,18--4,28)), - [SynExprAndBang - (Yes (5,4--5,31), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), As (Named (SynIdent (a, None), false, None, (5,9--5,10)), Named (SynIdent (b, None), false, None, (5,14--5,15)), - (5,9--5,15)), + (5,9--5,15)), None, App (Atomic, false, Ident asyncString, Const (Unit, (5,29--5,31)), (5,18--5,31)), - (5,4--5,31), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,16--5,17) - InKeyword = None })], + (5,4--5,31), Yes (5,4--5,31), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,16--5,17) })], YieldOrReturn ((false, true), App diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 13.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 13.fs.bsl index 8d94b1d4d5c..2f10c2e1db3 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 13.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 13.fs.bsl @@ -30,8 +30,12 @@ ImplFile App (Atomic, false, Ident asyncArray, Const (Unit, (4,54--4,56)), (4,44--4,56)), - [SynExprAndBang - (Yes (5,4--5,50), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Paren (ListCons (Named @@ -50,13 +54,14 @@ ImplFile [], None, true, (5,24--5,35)), (5,18--5,35)), (5,10--5,35), { ColonColonRange = (5,15--5,17) }), - (5,9--5,36)), + (5,9--5,36)), None, App (Atomic, false, Ident asyncList, Const (Unit, (5,48--5,50)), (5,39--5,50)), - (5,4--5,50), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,37--5,38) - InKeyword = None })], + (5,4--5,50), Yes (5,4--5,50), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,37--5,38) })], YieldOrReturn ((false, true), Ident first, (6,4--6,16), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,16), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 14.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 14.fs.bsl index 795342f5742..5260a9c576c 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 14.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 14.fs.bsl @@ -28,8 +28,12 @@ ImplFile App (Atomic, false, Ident asyncArray, Const (Unit, (4,52--4,54)), (4,42--4,54)), - [SynExprAndBang - (Yes (5,4--5,48), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (ListCons (Named @@ -44,13 +48,14 @@ ImplFile None, [LongIdent (SynLongIdent ([string], [], [None]))], [], - None, true, (5,23--5,34)), (5,9--5,34)), + None, true, (5,23--5,34)), (5,9--5,34)), None, App (Atomic, false, Ident asyncList, Const (Unit, (5,46--5,48)), (5,37--5,48)), - (5,4--5,48), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,35--5,36) - InKeyword = None })], + (5,4--5,48), Yes (5,4--5,48), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,35--5,36) })], YieldOrReturn ((false, true), Ident first, (6,4--6,16), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,16), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 16.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 16.fs.bsl index 65d6bfa4f5d..91acf209739 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 16.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 16.fs.bsl @@ -33,8 +33,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,37--4,39)), (4,29--4,39)), - [SynExprAndBang - (Yes (5,4--5,38), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Paren (Tuple (false, @@ -52,13 +56,14 @@ ImplFile LongIdent (SynLongIdent ([int], [], [None])), (5,18--5,24))], [(5,16--5,17)], - (5,10--5,24)), (5,9--5,25)), + (5,10--5,24)), (5,9--5,25)), None, App (Atomic, false, Ident asyncInt, Const (Unit, (5,36--5,38)), (5,28--5,38)), - (5,4--5,38), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,26--5,27) - InKeyword = None })], + (5,4--5,38), Yes (5,4--5,38), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,26--5,27) })], YieldOrReturn ((false, true), Const (Unit, (6,11--6,13)), (6,4--6,13), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,13), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 17.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 17.fs.bsl index ea88513f59c..f542dca6c09 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 17.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 17.fs.bsl @@ -33,8 +33,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,37--4,39)), (4,29--4,39)), - [SynExprAndBang - (Yes (5,4--5,39), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Paren (Tuple @@ -55,13 +59,14 @@ ImplFile Type (LongIdent (SynLongIdent ([int], [], [None])))], - (5,17--5,26)), (5,9--5,26)), + (5,17--5,26)), (5,9--5,26)), None, App (Atomic, false, Ident asyncInt, Const (Unit, (5,37--5,39)), (5,29--5,39)), - (5,4--5,39), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,27--5,28) - InKeyword = None })], + (5,4--5,39), Yes (5,4--5,39), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,27--5,28) })], YieldOrReturn ((false, true), Const (Unit, (6,11--6,13)), (6,4--6,13), { YieldOrReturnKeyword = (6,4--6,10) }), (4,4--6,13), diff --git a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 18.fs.bsl b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 18.fs.bsl index 2b833c4e6dd..e9e4c26a259 100644 --- a/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 18.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Typed LetBang AndBang 18.fs.bsl @@ -24,8 +24,12 @@ ImplFile App (Atomic, false, Ident asyncInt, Const (Unit, (4,33--4,35)), (4,25--4,35)), - [SynExprAndBang - (Yes (5,4--5,34), false, true, + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), Typed (Paren (As @@ -35,13 +39,14 @@ ImplFile Named (SynIdent (b, None), false, None, (5,15--5,16)), (5,10--5,16)), (5,9--5,17)), - FromParseError (5,18--5,18), (5,9--5,18)), + FromParseError (5,18--5,18), (5,9--5,18)), None, App (Atomic, false, Ident asyncString, Const (Unit, (5,32--5,34)), (5,21--5,34)), - (5,4--5,34), { AndBangKeyword = (5,4--5,8) - EqualsRange = (5,19--5,20) - InKeyword = None })], + (5,4--5,34), Yes (5,4--5,34), + { LeadingKeyword = And (5,4--5,8) + InlineKeyword = None + EqualsRange = Some (5,19--5,20) })], YieldOrReturn ((false, true), App