diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj index 0c1d3cf9273..d4d24ac98ec 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -42,96 +42,7 @@ - - SyntaxTree\TypeTests.fs - - - SyntaxTree\ExpressionTests.fs - - - SyntaxTree\StringTests.fs - - - SyntaxTree\ModuleOrNamespaceTests.fs - - - SyntaxTree\ModuleOrNamespaceSigTests.fs - - - SyntaxTree\SignatureTypeTests.fs - - - SyntaxTree\MeasureTests.fs - - - SyntaxTree\MatchClauseTests.fs - - - SyntaxTree\SourceIdentifierTests.fs - - - SyntaxTree\NestedModuleTests.fs - - - SyntaxTree\BindingTests.fs - - - SyntaxTree\ParsedHashDirectiveTests.fs - - - SyntaxTree\LambdaTests.fs - - - SyntaxTree\IfThenElseTests.fs - - - SyntaxTree\UnionCaseTests.fs - - - SyntaxTree\EnumCaseTests.fs - - - SyntaxTree\PatternTests.fs - - - SyntaxTree\ExceptionTests.fs - - - SyntaxTree\MemberFlagTests.fs - - - SyntaxTree\MemberTests.fs - - - SyntaxTree\ComputationExpressionTests.fs - - - SyntaxTree\ConditionalDirectiveTests.fs - - - SyntaxTree\CodeCommentTests.fs - - - SyntaxTree\OperatorNameTests.fs - - - SyntaxTree\SynIdentTests.fs - - - SyntaxTree\SynTypeTests.fs - - - SyntaxTree\AttributeTests.fs - - - SyntaxTree\ExternTests.fs - - - SyntaxTree\LeadingKeywordTests.fs - - - SyntaxTree\ValTests.fs - + FileSystemTests.fs diff --git a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj index f3176edc047..a1b239c1141 100644 --- a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj +++ b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj @@ -36,75 +36,7 @@ CompilerService\Symbols.fs - - SyntaxTree\TypeTests.fs - - - SyntaxTree\ExpressionTests.fs - - - SyntaxTree\StringTests.fs - - - SyntaxTree\ModuleOrNamespaceTests.fs - - - SyntaxTree\ModuleOrNamespaceSigTests.fs - - - SyntaxTree\SignatureTypeTests.fs - - - SyntaxTree\MeasureTests.fs - - - SyntaxTree\MatchClauseTests.fs - - - SyntaxTree\SourceIdentifierTests.fs - - - SyntaxTree\NestedModuleTests.fs - - - SyntaxTree\BindingTests.fs - - - SyntaxTree\ParsedHashDirectiveTests.fs - - - SyntaxTree\LambdaTests.fs - - - SyntaxTree\IfThenElseTests.fs - - - SyntaxTree\UnionCaseTests.fs - - - SyntaxTree\EnumCaseTests.fs - - - SyntaxTree\PatternTests.fs - - - SyntaxTree\ExceptionTests.fs - - - SyntaxTree\MemberFlagTests.fs - - - SyntaxTree\ComputationExpressionTests.fs - - - SyntaxTree\ConditionalDirectiveTests.fs - - - SyntaxTree\CodeCommentTests.fs - - - SyntaxTree\OperatorNameTests.fs - + CompilerService\EditorTests.fs diff --git a/tests/service/SyntaxTreeTests.fs b/tests/service/SyntaxTreeTests.fs new file mode 100644 index 00000000000..89688b3e114 --- /dev/null +++ b/tests/service/SyntaxTreeTests.fs @@ -0,0 +1,170 @@ +module Tests.Service.SyntaxTree + +open System.IO +open FSharp.Compiler.CodeAnalysis +open FSharp.Compiler.Service.Tests.Common +open FSharp.Compiler.Syntax +open FSharp.Compiler.Text +open NUnit.Framework + +let testCasesDir = Path.Combine(__SOURCE_DIRECTORY__, "data", "SyntaxTree") + +let allTestCases = + Directory.EnumerateFiles(testCasesDir, "*.fs?", SearchOption.AllDirectories) + |> Seq.map (fun f -> + let fileInfo = FileInfo(f) + let fileName = Path.Combine(fileInfo.Directory.Name, fileInfo.Name) + [| fileName :> obj |]) + |> Seq.toArray + +[] +let RootDirectory = @"/root" + +/// +/// Everytime `__SOURCE_DIRECTORY__` was used in the code, the ast will contain an invalid value and range for it. +/// This should be cleaned up when the test runs during CI/CD. +/// +/// +/// This function is incomplete and does not clean up the entire ParsedInput. +/// A shortcut was made to only support the existing use-cases. +/// +let private sanitizeAST (sourceDirectoryValue: string) (ast: ParsedInput) : ParsedInput = + let isZero (m: range) = + m.StartLine = 0 && m.StartColumn = 0 && m.EndLine = 0 && m.EndColumn = 0 + + // __SOURCE_DIRECTORY__ will contain the evaluated value, so we want to replace it with a stable value instead. + let mapParsedHashDirective (ParsedHashDirective(ident, args, _) as phd) = + match args with + | [ ParsedHashDirectiveArgument.SourceIdentifier("__SOURCE_DIRECTORY__", _, mSourceDirectory) ] -> + let mZero = + Range.mkRange mSourceDirectory.FileName (Position.mkPos 0 0) (Position.mkPos 0 0) + + ParsedHashDirective( + ident, + [ ParsedHashDirectiveArgument.SourceIdentifier("__SOURCE_DIRECTORY__", sourceDirectoryValue, mZero) ], + mZero + ) + | _ -> phd + + let (|SourceDirectoryConstant|_|) (constant: SynConst) = + match constant with + | SynConst.SourceIdentifier("__SOURCE_DIRECTORY__", _, mSourceDirectory) -> + let mZero = + Range.mkRange mSourceDirectory.FileName (Position.mkPos 0 0) (Position.mkPos 0 0) + + Some(SynConst.SourceIdentifier("__SOURCE_DIRECTORY__", sourceDirectoryValue, mZero), mZero) + | _ -> None + + let (|SourceDirectoryConstantExpr|_|) (expr: SynExpr) = + match expr with + | SynExpr.Const(SourceDirectoryConstant(constant, mZero), _) -> Some(SynExpr.Const(constant, mZero)) + | _ -> None + + let rec mapSynModuleDecl (mdl: SynModuleDecl) = + match mdl with + | SynModuleDecl.HashDirective(ParsedHashDirective(range = mZero) as hd, m) -> + let hd = mapParsedHashDirective hd + // Only update the range of SynModuleSigDecl.HashDirective if the value was updated. + let m = if isZero mZero then mZero else m + SynModuleDecl.HashDirective(hd, m) + | SynModuleDecl.NestedModule(moduleInfo, isRecursive, decls, isContinuing, range, trivia) -> + SynModuleDecl.NestedModule(moduleInfo, isRecursive, List.map mapSynModuleDecl decls, isContinuing, range, trivia) + | SynModuleDecl.Expr(SourceDirectoryConstantExpr(expr), _) -> SynModuleDecl.Expr(expr, expr.Range) + | _ -> mdl + + let mapSynModuleOrNamespace (SynModuleOrNamespace(longId, isRecursive, kind, decls, xmlDoc, attribs, ao, range, trivia)) = + SynModuleOrNamespace(longId, isRecursive, kind, List.map mapSynModuleDecl decls, xmlDoc, attribs, ao, range, trivia) + + let rec mapSynModuleDeclSig (msdl: SynModuleSigDecl) = + match msdl with + | SynModuleSigDecl.HashDirective(ParsedHashDirective(range = mZero) as hd, m) -> + let hd = mapParsedHashDirective hd + // Only update the range of SynModuleSigDecl.HashDirective if the value was updated. + let m = if isZero mZero then mZero else m + SynModuleSigDecl.HashDirective(hd, m) + | SynModuleSigDecl.NestedModule(moduleInfo, isRecursive, decls, range, trivia) -> + SynModuleSigDecl.NestedModule(moduleInfo, isRecursive, List.map mapSynModuleDeclSig decls, range, trivia) + | _ -> msdl + + let mapSynModuleOrNamespaceSig (SynModuleOrNamespaceSig(longId, isRecursive, kind, decls, xmlDoc, attribs, ao, range, trivia)) = + SynModuleOrNamespaceSig(longId, isRecursive, kind, List.map mapSynModuleDeclSig decls, xmlDoc, attribs, ao, range, trivia) + + match ast with + | ParsedInput.ImplFile(ParsedImplFileInput(fileName, + isScript, + qualifiedNameOfFile, + scopedPragmas, + hashDirectives, + contents, + flags, + trivia, + identifiers)) -> + ParsedImplFileInput( + fileName, + isScript, + qualifiedNameOfFile, + scopedPragmas, + List.map mapParsedHashDirective hashDirectives, + List.map mapSynModuleOrNamespace contents, + flags, + trivia, + identifiers + ) + |> ParsedInput.ImplFile + | ParsedInput.SigFile(ParsedSigFileInput(fileName, qualifiedNameOfFile, scopedPragmas, hashDirectives, contents, trivia, identifiers)) -> + ParsedSigFileInput( + fileName, + qualifiedNameOfFile, + scopedPragmas, + List.map mapParsedHashDirective hashDirectives, + List.map mapSynModuleOrNamespaceSig contents, + trivia, + identifiers + ) + |> ParsedInput.SigFile + +let parseSourceCode (name: string, code: string) = + let location = Path.Combine(RootDirectory, name).Replace("\\", "/") + + let parseResults = + checker.ParseFile( + location, + SourceText.ofString code, + { FSharpParsingOptions.Default with + SourceFiles = [| location |] } + ) + |> Async.RunImmediate + + let tree = parseResults.ParseTree + let sourceDirectoryValue = $"{RootDirectory}/{FileInfo(location).Directory.Name}" + sanitizeAST sourceDirectoryValue tree + +/// Asserts the parsed untyped tree matches the expected baseline. +/// +/// To update a baseline: +/// CMD: set TEST_UPDATE_BSL=1 & dotnet test --filter "ParseFile" +/// PowerShell: $env:TEST_UPDATE_BSL = "1" ; dotnet test --filter "ParseFile" +/// Linux/macOS: export TEST_UPDATE_BSL=1 & dotnet test --filter "ParseFile" +/// +/// Assuming your current directory is tests/FSharp.Compiler.Service.Tests +[] +let ParseFile fileName = + let fullPath = Path.Combine(testCasesDir, fileName) + let contents = File.ReadAllText fullPath + let ast = parseSourceCode (fileName, contents) + let normalize (s: string) = s.Replace("\r", "") + let actual = sprintf "%A" ast |> normalize |> sprintf "%s\n" + let bslPath = $"{fullPath}.bsl" + + let expected = + if File.Exists bslPath then + File.ReadAllText bslPath |> normalize + else + "No baseline was found" + + let testUpdateBSLEnv = System.Environment.GetEnvironmentVariable("TEST_UPDATE_BSL") + + if not (isNull testUpdateBSLEnv) && testUpdateBSLEnv.Trim() = "1" then + File.WriteAllText(bslPath, actual) + + Assert.AreEqual(expected, actual) diff --git a/tests/service/SyntaxTreeTests/AttributeTests.fs b/tests/service/SyntaxTreeTests/AttributeTests.fs deleted file mode 100644 index c31aefae85f..00000000000 --- a/tests/service/SyntaxTreeTests/AttributeTests.fs +++ /dev/null @@ -1,50 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.AttributeTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``range of attribute`` () = - let ast = - """ -[] -do () -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = - [ SynModuleDecl.Attributes(attributes = [ { Attributes = [ { Range = mAttribute } ] } ]) ; SynModuleDecl.Expr _ ] ) ])) -> - assertRange (2, 2) (2, 25) mAttribute - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``range of attribute with path`` () = - let ast = - """ -[] -do () -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = - [ SynModuleDecl.Attributes(attributes = [ { Attributes = [ { Range = mAttribute } ] } ]) ; SynModuleDecl.Expr _ ] ) ])) -> - assertRange (2, 2) (2, 32) mAttribute - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``range of attribute with target`` () = - let ast = - """ -[] -do () -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = - [ SynModuleDecl.Attributes(attributes = [ { Attributes = [ { Range = mAttribute } ] } ]) ; SynModuleDecl.Expr _ ] ) ])) -> - assertRange (2, 2) (2, 35) mAttribute - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" diff --git a/tests/service/SyntaxTreeTests/BindingTests.fs b/tests/service/SyntaxTreeTests/BindingTests.fs deleted file mode 100644 index ef6efe22230..00000000000 --- a/tests/service/SyntaxTreeTests/BindingTests.fs +++ /dev/null @@ -1,482 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.BindingTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``Range of attribute should be included in SynModuleDecl.Let`` () = - let parseResults = - getParseResults - """ -[] -let a = 0""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(range = mb)]) as lt - ]) ])) -> - assertRange (2, 0) (3, 5) mb - assertRange (2, 0) (3, 9) lt.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute between let keyword and pattern should be included in SynModuleDecl.Let`` () = - let parseResults = - getParseResults - """ -let [] (A x) = 1""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(range = mb)]) as lt - ]) ])) -> - assertRange (2, 4) (2, 21) mb - assertRange (2, 0) (2, 25) lt.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynMemberDefn.LetBindings`` () = - let parseResults = - getParseResults - """ -type Bar = - [] - let x = 8""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [SynMemberDefn.LetBindings(bindings = [SynBinding(range = mb)]) as m]))]) - ]) ])) -> - assertRange (3, 4) (4, 9) mb - assertRange (3, 4) (4, 13) m.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynMemberDefn.Member`` () = - let parseResults = - getParseResults - """ -type Bar = - [] - member this.Something () = ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [SynMemberDefn.Member(memberDefn = SynBinding(range = mb)) as m]))]) - ]) ])) -> - assertRange (3, 4) (4, 28) mb - assertRange (3, 4) (4, 33) m.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in binding of SynExpr.ObjExpr`` () = - let parseResults = - getParseResults - """ -{ new System.Object() with - [] - member x.ToString() = "F#" }""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.ObjExpr(members = [SynMemberDefn.Member(memberDefn=SynBinding(range = mb))])) - ]) ])) -> - assertRange (3, 4) (4, 23) mb - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in constructor SynMemberDefn.Member`` () = - let parseResults = - getParseResults - """ -type Tiger = - [] - new () = ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [SynMemberDefn.Member(memberDefn = SynBinding(range = mb)) as m]))]) - ]) ])) -> - assertRange (3, 4) (4, 10) mb - assertRange (3, 4) (4, 15) m.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in constructor SynMemberDefn.Member, optAsSpec`` () = - let parseResults = - getParseResults - """ -type Tiger = - [] - new () as tony = ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [SynMemberDefn.Member(memberDefn = SynBinding(range = mb)) as m]))]) - ]) ])) -> - assertRange (3, 4) (4, 18) mb - assertRange (3, 4) (4, 23) m.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in secondary constructor`` () = - let parseResults = - getParseResults - """ -type T() = - new () = - T () - - internal new () = - T () - - [] - new () = - T ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.ImplicitCtor _ - SynMemberDefn.Member(memberDefn = SynBinding(range = mb1)) as m1 - SynMemberDefn.Member(memberDefn = SynBinding(range = mb2)) as m2 - SynMemberDefn.Member(memberDefn = SynBinding(range = mb3)) as m3 - ]))]) - ]) ])) -> - assertRange (3, 4) (3, 10) mb1 - assertRange (3, 4) (4, 12) m1.Range - assertRange (6, 4) (6, 19) mb2 - assertRange (6, 4) (7, 12) m2.Range - assertRange (9, 4) (10, 10) mb3 - assertRange (9, 4) (11, 12) m3.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in write only SynMemberDefn.Member property`` () = - let parseResults = - getParseResults - """ -type Crane = - [] - member this.MyWriteOnlyProperty with set (value) = myInternalValue <- value""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = - [SynMemberDefn.GetSetMember(memberDefnForSet = Some (SynBinding(range = mb))) as m]))]) - ]) ])) -> - assertRange (3, 4) (4, 52) mb - assertRange (3, 4) (4, 79) m.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in full SynMemberDefn.Member property`` () = - let parseResults = - getParseResults - """ -type Bird = - [] - member this.TheWord - with get () = myInternalValue - and set (value) = myInternalValue <- value""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.GetSetMember(Some (SynBinding(range = mb1)), Some (SynBinding(range = mb2)), m, _) - ]))]) - ]) ])) -> - assertRange (3, 4) (5, 19) mb1 - assertRange (3, 4) (6, 23) mb2 - assertRange (3, 4) (6, 50) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in SynModuleDecl.Let binding`` () = - let parseResults = - getParseResults "let v = 12" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(trivia={ EqualsRange = Some mEquals })]) - ]) ])) -> - assertRange (1, 6) (1, 7) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in SynModuleDecl.Let binding, typed`` () = - let parseResults = - getParseResults "let v : int = 12" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(trivia={ EqualsRange = Some mEquals })]) - ]) ])) -> - assertRange (1, 12) (1, 13) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in local Let binding`` () = - let parseResults = - getParseResults - """ -do - let z = 2 - () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Do(expr = SynExpr.LetOrUse(bindings = [SynBinding(trivia={ EqualsRange = Some mEquals })]))) - ]) ])) -> - assertRange (3, 10) (3, 11) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in local Let binding, typed`` () = - let parseResults = - getParseResults - """ -do - let z: int = 2 - () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Do(expr = SynExpr.LetOrUse(bindings = [SynBinding(trivia={ EqualsRange = Some mEquals })]))) - ]) ])) -> - assertRange (3, 15) (3, 16) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in member binding`` () = - let parseResults = - getParseResults - """ -type X() = - member this.Y = z -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ _; SynMemberDefn.Member(memberDefn = SynBinding(trivia={ EqualsRange = Some mEquals }))]))]) - ]) ])) -> - assertRange (3, 18) (3, 19) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in member binding, with parameters`` () = - let parseResults = - getParseResults - """ -type X() = - member this.Y () = z -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ _; SynMemberDefn.Member(memberDefn = SynBinding(trivia={ EqualsRange = Some mEquals }))]))]) - ]) ])) -> - assertRange (3, 21) (3, 22) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in member binding, with return type`` () = - let parseResults = - getParseResults - """ -type X() = - member this.Y () : string = z -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ _; SynMemberDefn.Member(memberDefn = SynBinding(trivia={ EqualsRange = Some mEquals }))]))]) - ]) ])) -> - assertRange (3, 30) (3, 31) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present in property`` () = - let parseResults = - getParseResults - """ -type Y() = - member this.MyReadWriteProperty - with get () = myInternalValue - and set (value) = myInternalValue <- value -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - _ - SynMemberDefn.GetSetMember( - Some(SynBinding(trivia={ EqualsRange = Some eqGetM })), - Some(SynBinding(trivia={ EqualsRange = Some eqSetM })), _, _) - ]))]) - ]) ])) -> - assertRange (4, 20) (4, 21) eqGetM - assertRange (5, 24) (5, 25) eqSetM - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of let keyword should be present in SynModuleDecl.Let binding`` () = - let parseResults = - getParseResults "let v = 12" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(trivia={ LeadingKeyword = SynLeadingKeyword.Let mLet })]) - ]) ])) -> - assertRange (1, 0) (1, 3) mLet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of let keyword should be present in SynModuleDecl.Let binding with attributes`` () = - let parseResults = - getParseResults """ -/// XmlDoc -[] -// some comment -let v = 12 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(trivia={ LeadingKeyword = SynLeadingKeyword.Let mLet })]) - ]) ])) -> - assertRange (5, 0) (5, 3) mLet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of let keyword should be present in SynExpr.LetOrUse binding`` () = - let parseResults = - getParseResults """ -let a = - let b c = d - () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(expr=SynExpr.LetOrUse(bindings=[SynBinding(trivia={ LeadingKeyword = SynLeadingKeyword.Let mLet })]))]) - ]) ])) -> - assertRange (3, 4) (3, 7) mLet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Tuple return type of binding should contain stars`` () = - let parseResults = - getParseResults """ -let a : int * string = failwith "todo" -let b : int * string * bool = 1, "", false -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(returnInfo = - Some (SynBindingReturnInfo(typeName = SynType.Tuple(path = [ - SynTupleTypeSegment.Type _ - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type _ - ])))) - ]) - SynModuleDecl.Let(bindings = [ - SynBinding(returnInfo = - Some (SynBindingReturnInfo(typeName = SynType.Tuple(path = [ - SynTupleTypeSegment.Type _ - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type _ - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type _ - ])))) - ]) - ]) ])) -> - Assert.Pass () - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Colon before return type is part of trivia`` () = - let parseResults = - getParseResults """ -let x y : int = failwith "todo" -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(returnInfo = - Some (SynBindingReturnInfo(trivia = { ColonRange = Some mColon }))) - ]) - ]) ])) -> - assertRange (2,8) (2,9) mColon - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Colon before return type is part of trivia in properties`` () = - let parseResults = - getParseResults """ -type X = - member this.Y with get():int = 1 and set (_:int):unit = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.GetSetMember( - memberDefnForGet = Some(SynBinding(returnInfo = Some (SynBindingReturnInfo(trivia = { ColonRange = Some mColon1 })))) - memberDefnForSet = Some(SynBinding(returnInfo = Some (SynBindingReturnInfo(trivia = { ColonRange = Some mColon2 })))) - ) - ])) - ]) - ]) ])) -> - assertRange (3,28) (3,29) mColon1 - assertRange (3,52) (3,53) mColon2 - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Inline keyword in binding`` () = - let parseResults = - getParseResults """ -let inline x y z = - let inline a b c = () - () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { InlineKeyword = Some mInline1 } - expr = SynExpr.LetOrUse(bindings = [ - SynBinding(trivia = { InlineKeyword = Some mInline2 }) - ])) - ]) - ]) ])) -> - assertRange (2,4) (2,10) mInline1 - assertRange (3,8) (3,14) mInline2 - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Conditional directive around inline keyword`` () = - let parseResults = - getParseResults """ -let -#if !FOO - inline -#endif - map f ar = Async.map (Result.map f) ar -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { InlineKeyword = Some mInline }) ]) - ]) ])) -> - assertRange (4,4) (4,10) mInline - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/CodeCommentTests.fs b/tests/service/SyntaxTreeTests/CodeCommentTests.fs deleted file mode 100644 index ce25783eecf..00000000000 --- a/tests/service/SyntaxTreeTests/CodeCommentTests.fs +++ /dev/null @@ -1,146 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.CodeCommentTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -let private getCommentTrivia isSignatureFile source = - let ast = (if isSignatureFile then getParseResultsOfSignatureFile else getParseResults) source - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(trivia = { CodeComments = trivia })) - | ParsedInput.SigFile(ParsedSigFileInput(trivia = { CodeComments = trivia })) -> trivia - -[] -let ``comment on single line`` () = - let trivia = - getCommentTrivia false """ -// comment! -foo() -""" - - match trivia with - | [ CommentTrivia.LineComment mComment ] -> - assertRange (2, 0) (2, 11) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``comment on single line, signature file`` () = - let trivia = - getCommentTrivia true """ -namespace Meh -// comment! -foo() -""" - - match trivia with - | [ CommentTrivia.LineComment mComment ] -> - assertRange (3, 0) (3, 11) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``comment after source code`` () = - let trivia = - getCommentTrivia false """ -foo() // comment! -""" - - match trivia with - | [ CommentTrivia.LineComment mComment ] -> - assertRange (2, 6) (2, 17) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``comment after source code, signature file`` () = - let trivia = - getCommentTrivia true """ -namespace Meh - -val foo : int // comment! -""" - - match trivia with - | [ CommentTrivia.LineComment mComment ] -> - assertRange (4, 14) (4, 25) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``block comment in source code`` () = - let trivia = - getCommentTrivia false """ -let a (* b *) c = c + 42 -""" - - match trivia with - | [ CommentTrivia.BlockComment mComment ] -> - assertRange (2, 6) (2, 13) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``block comment in source code, signature file`` () = - let trivia = - getCommentTrivia true """ -namespace Meh - -val a (* b *) : int -""" - - match trivia with - | [ CommentTrivia.BlockComment mComment ] -> - assertRange (4, 6) (4, 13) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``comment at end of file`` () = - let trivia = - getCommentTrivia false "x // y" - - match trivia with - | [ CommentTrivia.LineComment mComment ] -> - assertRange (1, 2) (1, 6) mComment - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``triple slash comment should not be captured`` () = - let trivia = - getCommentTrivia false """ -/// Some great documentation comment -let x = 0 -""" - - match trivia with - | [] -> - Assert.Pass() - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``triple slash comment should be captured, if used in an invalid location`` () = - let trivia = - getCommentTrivia false """ -/// Valid xml doc -let x = - /// Some great documentation comment - - /// With a blank line in between - /// but on a while loop - while true do () - a + 1 -""" - - match trivia with - | [ CommentTrivia.LineComment m1 - CommentTrivia.LineComment m2 - CommentTrivia.LineComment m3 ] -> - assertRange (4, 4) (4, 40) m1 - assertRange (6, 4) (6, 36) m2 - assertRange (7, 4) (7, 27) m3 - | _ -> - Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ComputationExpressionTests.fs b/tests/service/SyntaxTreeTests/ComputationExpressionTests.fs deleted file mode 100644 index 243a06165c8..00000000000 --- a/tests/service/SyntaxTreeTests/ComputationExpressionTests.fs +++ /dev/null @@ -1,57 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ComputationExpressionTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``SynExprAndBang range starts at and! and ends after expression`` () = - let ast = - getParseResults """ -async { - let! bar = getBar () - - and! foo = getFoo () - - return bar -} -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr (expr = SynExpr.App(argExpr = SynExpr.ComputationExpr(expr = SynExpr.LetOrUseBang(andBangs = [ - SynExprAndBang(range = mAndBang) - ])))) - ]) - ])) -> - assertRange (5, 4) (5, 24) mAndBang - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``multiple SynExprAndBang have range that starts at and! and ends after expression`` () = - let ast = - getParseResults """ -async { - let! bar = getBar () - and! foo = getFoo () in - and! meh = getMeh () - return bar -} -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr (expr = SynExpr.App(argExpr = SynExpr.ComputationExpr(expr = SynExpr.LetOrUseBang(andBangs = [ - SynExprAndBang(range = mAndBang1; trivia={ InKeyword = Some mIn }) - SynExprAndBang(range = mAndBang2) - ])))) - ]) - ])) -> - assertRange (4, 4) (4, 24) mAndBang1 - assertRange (4, 25) (4, 27) mIn - assertRange (5, 4) (5, 24) mAndBang2 - | _ -> - Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ConditionalDirectiveTests.fs b/tests/service/SyntaxTreeTests/ConditionalDirectiveTests.fs deleted file mode 100644 index b48262d370b..00000000000 --- a/tests/service/SyntaxTreeTests/ConditionalDirectiveTests.fs +++ /dev/null @@ -1,357 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ConditionalDirectiveTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -let private getDirectiveTrivia isSignatureFile source = - let ast = (if isSignatureFile then getParseResultsOfSignatureFile else getParseResults) source - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(trivia = { ConditionalDirectives = trivia })) - | ParsedInput.SigFile(ParsedSigFileInput(trivia = { ConditionalDirectives = trivia })) -> trivia - -[] -let ``single #if / #endif`` () = - let trivia = - getDirectiveTrivia false """ -let v = - #if DEBUG - () - #endif - 42 -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr, mIf) - ConditionalDirectiveTrivia.EndIf mEndif ] -> - assertRange (3, 4) (3, 13) mIf - assertRange (5, 4) (5, 10) mEndif - - match expr with - | IfDirectiveExpression.Ident "DEBUG" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``single #if / #else / #endif`` () = - let trivia = - getDirectiveTrivia false """ -let v = - #if DEBUG - 30 - #else - 42 - #endif -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr, mIf) - ConditionalDirectiveTrivia.Else mElse - ConditionalDirectiveTrivia.EndIf mEndif ] -> - assertRange (3, 4) (3, 13) mIf - assertRange (5, 4) (5, 9) mElse - assertRange (7, 4) (7, 10) mEndif - - match expr with - | IfDirectiveExpression.Ident "DEBUG" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``nested #if / #else / #endif`` () = - let trivia = - getDirectiveTrivia false """ -let v = - #if FOO - #if MEH - 1 - #else - 2 - #endif - #else - 3 - #endif -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr1, mIf1) - ConditionalDirectiveTrivia.If(expr2, mIf2) - ConditionalDirectiveTrivia.Else mElse1 - ConditionalDirectiveTrivia.EndIf mEndif1 - ConditionalDirectiveTrivia.Else mElse2 - ConditionalDirectiveTrivia.EndIf mEndif2 ] -> - assertRange (3, 4) (3, 11) mIf1 - assertRange (4, 8) (4, 15) mIf2 - assertRange (6, 8) (6, 13) mElse1 - assertRange (8, 8) (8, 14) mEndif1 - assertRange (9, 4) (9, 9) mElse2 - assertRange (11, 4) (11, 10) mEndif2 - - match expr1 with - | IfDirectiveExpression.Ident "FOO" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr1}" - - match expr2 with - | IfDirectiveExpression.Ident "MEH" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr2}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``nested #if / #endif with complex expressions`` () = - let trivia = - getDirectiveTrivia false """ -let v = - #if !DEBUG - #if FOO && BAR - #if MEH || HMM - printfn "oh some logging" - #endif - #endif - #endif -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr1, mIf1) - ConditionalDirectiveTrivia.If(expr2, mIf2) - ConditionalDirectiveTrivia.If(expr3, mIf3) - ConditionalDirectiveTrivia.EndIf mEndif1 - ConditionalDirectiveTrivia.EndIf mEndif2 - ConditionalDirectiveTrivia.EndIf mEndif3 ] -> - assertRange (3, 4) (3, 14) mIf1 - assertRange (4, 8) (4, 22) mIf2 - assertRange (5, 12) (5, 26) mIf3 - assertRange (7, 12) (7, 18) mEndif1 - assertRange (8, 8) (8, 14) mEndif2 - assertRange (9, 4) (9, 10) mEndif3 - - match expr1 with - | IfDirectiveExpression.Not (IfDirectiveExpression.Ident "DEBUG") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr1}" - - match expr2 with - | IfDirectiveExpression.And(IfDirectiveExpression.Ident "FOO", IfDirectiveExpression.Ident "BAR") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr2}" - - match expr3 with - | IfDirectiveExpression.Or(IfDirectiveExpression.Ident "MEH", IfDirectiveExpression.Ident "HMM") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr3}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``directives in multiline comment are not reported as trivia`` () = - let trivia = - getDirectiveTrivia false """ -let v = -(* -#if DEBUG -() -#endif -*) -42 -""" - - match trivia with - | [] -> Assert.Pass() - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``directives in multiline string are not reported as trivia`` () = - let trivia = - getDirectiveTrivia false " -let v = \"\"\" -#if DEBUG -() -#endif -42 -\"\"\" -" - - match trivia with - | [] -> Assert.Pass() - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``single #if / #endif, signature file`` () = - let trivia = - getDirectiveTrivia true """ -namespace Foobar - -val v: int = - #if DEBUG - 1 - #endif - 42 -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr, mIf) - ConditionalDirectiveTrivia.EndIf mEndif ] -> - assertRange (5, 4) (5, 13) mIf - assertRange (7, 4) (7, 10) mEndif - - match expr with - | IfDirectiveExpression.Ident "DEBUG" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``single #if / #else / #endif, signature file`` () = - let trivia = - getDirectiveTrivia true """ -namespace Foobar - -val v : int = - #if DEBUG - 30 - #else - 42 - #endif -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr, mIf) - ConditionalDirectiveTrivia.Else mElse - ConditionalDirectiveTrivia.EndIf mEndif ] -> - assertRange (5, 4) (5, 13) mIf - assertRange (7, 4) (7, 9) mElse - assertRange (9, 4) (9, 10) mEndif - - match expr with - | IfDirectiveExpression.Ident "DEBUG" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``nested #if / #else / #endif, signature file`` () = - let trivia = - getDirectiveTrivia true """ -namespace Foobar - -val v : int = - #if FOO - #if MEH - 1 - #else - 2 - #endif - #else - 3 - #endif -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr1, mIf1) - ConditionalDirectiveTrivia.If(expr2, mIf2) - ConditionalDirectiveTrivia.Else mElse1 - ConditionalDirectiveTrivia.EndIf mEndif1 - ConditionalDirectiveTrivia.Else mElse2 - ConditionalDirectiveTrivia.EndIf mEndif2 ] -> - assertRange (5, 4) (5, 11) mIf1 - assertRange (6, 8) (6, 15) mIf2 - assertRange (8, 8) (8, 13) mElse1 - assertRange (10, 8) (10, 14) mEndif1 - assertRange (11, 4) (11, 9) mElse2 - assertRange (13, 4) (13, 10) mEndif2 - - match expr1 with - | IfDirectiveExpression.Ident "FOO" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr1}" - - match expr2 with - | IfDirectiveExpression.Ident "MEH" -> () - | _ -> Assert.Fail $"Expected different expression, got {expr2}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``nested #if / #endif with complex expressions, signature file`` () = - let trivia = - getDirectiveTrivia true """ -namespace Foobar - -val v : int = - #if !DEBUG - #if FOO && BAR - #if MEH || HMM - 9 - #endif - #endif - #endif - 10 -""" - - match trivia with - | [ ConditionalDirectiveTrivia.If(expr1, mIf1) - ConditionalDirectiveTrivia.If(expr2, mIf2) - ConditionalDirectiveTrivia.If(expr3, mIf3) - ConditionalDirectiveTrivia.EndIf mEndif1 - ConditionalDirectiveTrivia.EndIf mEndif2 - ConditionalDirectiveTrivia.EndIf mEndif3 ] -> - assertRange (5, 4) (5, 14) mIf1 - assertRange (6, 8) (6, 22) mIf2 - assertRange (7, 12) (7, 26) mIf3 - assertRange (9, 12) (9, 18) mEndif1 - assertRange (10, 8) (10, 14) mEndif2 - assertRange (11, 4) (11, 10) mEndif3 - - match expr1 with - | IfDirectiveExpression.Not (IfDirectiveExpression.Ident "DEBUG") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr1}" - - match expr2 with - | IfDirectiveExpression.And(IfDirectiveExpression.Ident "FOO", IfDirectiveExpression.Ident "BAR") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr2}" - - match expr3 with - | IfDirectiveExpression.Or(IfDirectiveExpression.Ident "MEH", IfDirectiveExpression.Ident "HMM") -> () - | _ -> Assert.Fail $"Expected different expression, got {expr3}" - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``directives in multiline comment are not reported as trivia, signature file`` () = - let trivia = - getDirectiveTrivia true """ -namespace Foobar - -val v : int = -(* -#if DEBUG -() -#endif -*) -42 -""" - - match trivia with - | [] -> Assert.Pass() - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" - -[] -let ``directives in multiline string are not reported as trivia, signature file`` () = - let trivia = - getDirectiveTrivia true " -namespace Foobar - -let v : string = \"\"\" -#if DEBUG -() -#endif -42 -\"\"\" -" - - match trivia with - | [] -> Assert.Pass() - | _ -> - Assert.Fail $"Unexpected trivia, got {trivia}" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/EnumCaseTests.fs b/tests/service/SyntaxTreeTests/EnumCaseTests.fs deleted file mode 100644 index 1363ab095ac..00000000000 --- a/tests/service/SyntaxTreeTests/EnumCaseTests.fs +++ /dev/null @@ -1,75 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.EnumCaseTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``single SynEnumCase has bar range`` () = - let ast = """ -type Foo = | Bar = 1 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Enum(cases = [ - SynEnumCase.SynEnumCase (trivia = { BarRange = Some mBar; EqualsRange = mEquals }) - ]))) - ], _) - ]) - ])) -> - assertRange (2, 11) (2, 12) mBar - assertRange (2, 17) (2, 18) mEquals - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``multiple SynEnumCases have bar range`` () = - let ast = """ -type Foo = - | Bar = 1 - | Bear = 2 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Enum(cases = [ - SynEnumCase.SynEnumCase (trivia = { BarRange = Some mBar1; EqualsRange = mEquals1 }) - SynEnumCase.SynEnumCase (trivia = { BarRange = Some mBar2; EqualsRange = mEquals2 }) - ]))) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 5) mBar1 - assertRange (3, 10) (3, 11) mEquals1 - assertRange (4, 4) (4, 5) mBar2 - assertRange (4, 11) (4, 12) mEquals2 - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``single SynEnumCase without bar`` () = - let ast = """ -type Foo = Bar = 1 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Enum(cases = [ - SynEnumCase.SynEnumCase (trivia = { BarRange = None; EqualsRange = mEquals }) - ]))) - ], _) - ]) - ])) -> - assertRange (2, 15) (2, 16) mEquals - | _ -> - Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ExceptionTests.fs b/tests/service/SyntaxTreeTests/ExceptionTests.fs deleted file mode 100644 index a712eba5e6f..00000000000 --- a/tests/service/SyntaxTreeTests/ExceptionTests.fs +++ /dev/null @@ -1,25 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ExceptionTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``SynExceptionDefn should contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -namespace X - -exception Foo with - member Meh () = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace(decls = [ - SynModuleDecl.Exception( - exnDefn=SynExceptionDefn(withKeyword = Some mWithKeyword) - ) - ]) ])) -> - assertRange (4, 14) (4, 18) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ExpressionTests.fs b/tests/service/SyntaxTreeTests/ExpressionTests.fs deleted file mode 100644 index 83fffdef005..00000000000 --- a/tests/service/SyntaxTreeTests/ExpressionTests.fs +++ /dev/null @@ -1,518 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ExpressionTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``SynExpr.Do contains the range of the do keyword`` () = - let ast = """let a = - do - foobar - do! - foobarBang -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = SynExpr.Sequential(expr1 = SynExpr.Do(_, doRange) ; expr2 = SynExpr.DoBang(_, doBangRange))) - ]) - ]) - ])) -> - assertRange (2, 4) (3, 14) doRange - assertRange (4, 4) (5, 18) doBangRange - | _ -> - Assert.Fail "Could not find SynExpr.Do" - -[] -let ``SynExpr.LetOrUseBang contains the range of the equals sign`` () = - let ast = - """ -comp { - let! x = y - and! z = someFunction () - return () -} -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.App(argExpr = - SynExpr.ComputationExpr(expr = - SynExpr.LetOrUseBang(trivia = { EqualsRange = Some mLetBangEquals } - andBangs = [ SynExprAndBang(trivia= { EqualsRange = mAndBangEquals }) ])))) - ]) - ])) -> - assertRange (3, 11) (3, 12) mLetBangEquals - assertRange (4, 11) (4, 12) mAndBangEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.Record contains the range of the equals sign in SynExprRecordField`` () = - let ast = - """ -{ V = v - X = // some comment - someLongFunctionCall - a - b - c } -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Record(recordFields = [ - SynExprRecordField(equalsRange = Some mEqualsV) - SynExprRecordField(equalsRange = Some mEqualsX) - ])) - ]) - ])) -> - assertRange (2, 4) (2, 5) mEqualsV - assertRange (3, 9) (3, 10) mEqualsX - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``inherit SynExpr.Record contains the range of the equals sign in SynExprRecordField`` () = - let ast = - """ -{ inherit Exception(msg); X = 1; } -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Record(baseInfo = Some _ ; recordFields = [ - SynExprRecordField(equalsRange = Some mEquals) - ])) - ]) - ])) -> - assertRange (2, 28) (2, 29) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``copy SynExpr.Record contains the range of the equals sign in SynExprRecordField`` () = - let ast = - """ -{ foo with - X - = - 12 } -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Record(copyInfo = Some _ ; recordFields = [ - SynExprRecordField(equalsRange = Some mEquals) - ])) - ]) - ])) -> - assertRange (4, 12) (4, 13) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.AnonRecord contains the range of the equals sign in the fields`` () = - let ast = - """ -{| X = 5 - Y = 6 - Z = 7 |} -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.AnonRecd(recordFields = [ - (_, Some mEqualsX, _) - (_, Some mEqualsY, _) - (_, Some mEqualsZ, _) - ])) - ]) - ])) -> - assertRange (2, 5) (2, 6) mEqualsX - assertRange (3, 8) (3, 9) mEqualsY - assertRange (4, 12) (4, 13) mEqualsZ - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.For contains the range of the equals sign`` () = - let ast = - """ -for i = 1 to 10 do -printf "%d " i -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.For(equalsRange = Some mEquals)) - ]) - ])) -> - assertRange (2, 6) (2, 7) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.TryWith contains the range of the try and with keyword`` () = - let ast = - """ -try -x -with -| ex -> y -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.TryWith(trivia={ TryKeyword = mTry; WithKeyword = mWith })) - ]) - ])) -> - assertRange (2, 0) (2, 3) mTry - assertRange (4, 0) (4, 4) mWith - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.TryFinally contains the range of the try and with keyword`` () = - let ast = - """ -try -x -finally -() -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.TryFinally(trivia={ TryKeyword = mTry; FinallyKeyword = mFinally })) - ]) - ])) -> - assertRange (2, 0) (2, 3) mTry - assertRange (4, 0) (4, 7) mFinally - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.Match contains the range of the match and with keyword`` () = - let ast = - """ -match x with -| y -> z -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Match(trivia = { MatchKeyword = mMatch; WithKeyword = mWith })) - ]) - ])) -> - assertRange (2, 0) (2, 5) mMatch - assertRange (2, 8) (2, 12) mWith - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.MatchBang contains the range of the match and with keyword`` () = - let ast = - """ -match! x with -| y -> z -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.MatchBang(trivia = { MatchBangKeyword = mMatch; WithKeyword = mWith })) - ]) - ])) -> - assertRange (2, 0) (2, 6) mMatch - assertRange (2, 9) (2, 13) mWith - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.ObjExpr contains the range of with keyword`` () = - let ast = - """ -{ new obj() with - member x.ToString() = "INotifyEnumerableInternal" - interface INotifyEnumerableInternal<'T> - interface IEnumerable<_> with - member x.GetEnumerator() = null } -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.ObjExpr(withKeyword=Some mWithObjExpr; extraImpls=[ SynInterfaceImpl(withKeyword=None); SynInterfaceImpl(withKeyword=Some mWithSynInterfaceImpl) ])) - ]) - ])) -> - assertRange (2, 12) (2, 16) mWithObjExpr - assertRange (5, 27) (5, 31) mWithSynInterfaceImpl - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.LetOrUse contains the range of in keyword`` () = - let ast = - getParseResults "let x = 1 in ()" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.LetOrUse(trivia={ InKeyword = Some mIn })) - ]) - ])) -> - assertRange (1, 10) (1, 12) mIn - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.LetOrUse with recursive binding contains the range of in keyword`` () = - let ast = - getParseResults """ -do - let rec f = () - and g = () in - () -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Do(expr = SynExpr.LetOrUse(bindings=[_;_]; trivia={ InKeyword = Some mIn }))) - ]) - ])) -> - assertRange (4, 15) (4, 17) mIn - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``nested SynExpr.LetOrUse contains the range of in keyword`` () = - let ast = - getParseResults """ -let f () = - let x = 1 in // the "in" keyword is available in F# - let y = 2 in - x + y -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = - SynExpr.LetOrUse(bindings=[_]; trivia={ InKeyword = Some mIn }; body=SynExpr.LetOrUse(trivia={ InKeyword = Some mInnerIn }))) - ]) - ]) - ])) -> - assertRange (3, 14) (3, 16) mIn - assertRange (4, 14) (4, 16) mInnerIn - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.LetOrUse does not contain the range of in keyword`` () = - let ast = - getParseResults """ -do -let x = 1 -() -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Do(expr = SynExpr.LetOrUse(trivia={ InKeyword = None }))) - ]) - ])) -> - Assert.Pass() - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.LetOrUse where body expr starts with token of two characters does not contain the range of in keyword`` () = - let ast = - getParseResults """ -do -let e1 = e :?> Collections.DictionaryEntry -e1.Key, e1.Value -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Do(expr = SynExpr.LetOrUse(trivia={ InKeyword = None }))) - ]) - ])) -> - Assert.Pass() - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``global keyword as SynExpr`` () = - let ast = - getParseResults """ -global -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.LongIdent(longDotId = SynLongIdent([mangledGlobal], [], [Some (IdentTrivia.OriginalNotation "global")])) - )]) - ])) -> - Assert.AreEqual("`global`", mangledGlobal.idText) - Assert.Pass() - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExprRecordFields contain correct amount of trivia`` () = - let ast = - getParseResults """ - { JobType = EsriBoundaryImport - FileToImport = filePath - State = state - DryRun = args.DryRun } -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Record(recordFields = [ - SynExprRecordField(fieldName = (synLongIdent, _)) - _; _; _ - ])) - ]) - ])) -> - match synLongIdent.IdentsWithTrivia with - | [ _ ] -> Assert.Pass() - | idents -> Assert.Fail $"Expected a single SynIdent, got {idents}" - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``SynExpr.Dynamic does contain ident`` () = - let ast = - getParseResults "x?k" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Dynamic (_, _, SynExpr.Ident(idK) ,mDynamicExpr)) - ]) - ])) -> - Assert.AreEqual("k", idK.idText) - assertRange (1,0) (1, 3) mDynamicExpr - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``SynExpr.Dynamic does contain parentheses`` () = - let ast = - getParseResults "x?(g)" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Dynamic (_, _, SynExpr.Paren(SynExpr.Ident(idG), lpr, Some rpr, mParen) ,mDynamicExpr)) - ]) - ])) -> - Assert.AreEqual("g", idG.idText) - assertRange (1, 2) (1,3) lpr - assertRange (1, 4) (1,5) rpr - assertRange (1, 2) (1,5) mParen - assertRange (1,0) (1, 5) mDynamicExpr - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``SynExpr.Set with SynExpr.Dynamic`` () = - let ast = - getParseResults "x?v <- 2" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Set( - SynExpr.Dynamic (_, _, SynExpr.Ident(idV) ,mDynamicExpr), - SynExpr.Const _, - mSetExpr - )) - ]) - ])) -> - Assert.AreEqual("v", idV.idText) - assertRange (1,0) (1, 3) mDynamicExpr - assertRange (1,0) (1, 8) mSetExpr - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``SynExpr.Obj with setter`` () = - let ast = - getParseResults """ -[] -type CFoo() = - abstract AbstractClassPropertySet: string with set - -{ new CFoo() with - override this.AbstractClassPropertySet with set (v:string) = () } -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types _ - SynModuleDecl.Expr(expr = SynExpr.ObjExpr(members = [ - SynMemberDefn.GetSetMember(None, Some _, m, { WithKeyword = mWith; SetKeyword = Some mSet }) - ])) - ]) - ])) -> - assertRange (7, 43) (7, 47) mWith - assertRange (7, 48) (7, 51) mSet - assertRange (7,4) (7, 67) m - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``SynExpr.AnonRecd with struct keyword`` () = - let ast = - getParseResults """ -struct - {| Foo = - // meh - someValue |} - -struct {| |} -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.AnonRecd(range = m1)) - SynModuleDecl.Expr(expr = SynExpr.AnonRecd(range = m2)) - ]) - ])) -> - assertRange (2,0) (5, 16) m1 - assertRange (7, 0) (7, 12) m2 - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" diff --git a/tests/service/SyntaxTreeTests/ExternTests.fs b/tests/service/SyntaxTreeTests/ExternTests.fs deleted file mode 100644 index 43ea6e5435a..00000000000 --- a/tests/service/SyntaxTreeTests/ExternTests.fs +++ /dev/null @@ -1,21 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ExternTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``extern keyword is present in trivia`` () = - let parseResults = getParseResults "extern void GetProcessHeap()" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Extern mExtern }) - ]) - ]) - ])) -> - assertRange (1, 0) (1, 6) mExtern - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/IfThenElseTests.fs b/tests/service/SyntaxTreeTests/IfThenElseTests.fs deleted file mode 100644 index 66cf9a82849..00000000000 --- a/tests/service/SyntaxTreeTests/IfThenElseTests.fs +++ /dev/null @@ -1,177 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.IfThenElseTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``If keyword in IfThenElse`` () = - let parseResults = - getParseResults - "if a then b" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif = false; ThenKeyword = mThenKw; ElseKeyword = None }) - ) - ]) ])) -> - assertRange (1, 0) (1, 2) mIfKw - assertRange (1, 5) (1, 9) mThenKw - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Else keyword in simple IfThenElse`` () = - let parseResults = - getParseResults - "if a then b else c" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr =SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif = false; ThenKeyword = mThenKw; ElseKeyword = Some mElse }) - ) - ]) ])) -> - assertRange (1, 0) (1, 2) mIfKw - assertRange (1, 5) (1, 9) mThenKw - assertRange (1, 12) (1, 16) mElse - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``If, Then and Else keyword on separate lines`` () = - let parseResults = - getParseResults - """ -if a -then b -else c""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif = false; ThenKeyword = mThenKw; ElseKeyword = Some mElse }) - ) - ]) ])) -> - assertRange (2, 0) (2, 2) mIfKw - assertRange (3, 0) (3, 4) mThenKw - assertRange (4, 0) (4, 4) mElse - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Nested elif in IfThenElse`` () = - let parseResults = - getParseResults - """ -if a then -b -elif c then d""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif=false; ThenKeyword = mThenKw; ElseKeyword = None } - elseExpr = Some (SynExpr.IfThenElse(trivia={ IfKeyword = mElif; IsElif = true }))) - ) - ]) ])) -> - assertRange (2, 0) (2, 2) mIfKw - assertRange (2, 5) (2, 9) mThenKw - assertRange (4, 0) (4, 4) mElif - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Nested else if in IfThenElse`` () = - let parseResults = - getParseResults - """ -if a then - b -else - if c then d""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif = false; ThenKeyword = mThenKw; ElseKeyword = Some mElse } - elseExpr = Some (SynExpr.IfThenElse(trivia={ IfKeyword = mElseIf; IsElif = false }))) - ) - ]) ])) -> - assertRange (2, 0) (2, 2) mIfKw - assertRange (2, 5) (2, 9) mThenKw - assertRange (4, 0) (4, 4) mElse - assertRange (5, 4) (5, 6) mElseIf - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Nested else if on the same line in IfThenElse`` () = - let parseResults = - getParseResults - """ -if a then -b -else if c then -d""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIfKw; IsElif=false; ThenKeyword = mThenKw; ElseKeyword = Some mElse } - elseExpr = Some (SynExpr.IfThenElse(trivia={ IfKeyword = mElseIf; IsElif = false }))) - ) - ]) ])) -> - assertRange (2, 0) (2, 2) mIfKw - assertRange (2, 5) (2, 9) mThenKw - assertRange (4, 0) (4, 4) mElse - assertRange (4, 5) (4, 7) mElseIf - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Deeply nested IfThenElse`` () = - let parseResults = - getParseResults - """ -if a then - b -elif c then - d -else - if e then - f - else - g""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIf1; IsElif = false; ElseKeyword = None } - elseExpr = Some (SynExpr.IfThenElse(trivia={ IfKeyword = mElif; IsElif = true; ElseKeyword = Some mElse1 } - elseExpr = Some (SynExpr.IfThenElse(trivia={ IfKeyword = mIf2; IsElif = false; ElseKeyword = Some mElse2 })))))) - ]) ])) -> - assertRange (2, 0) (2, 2) mIf1 - assertRange (4, 0) (4, 4) mElif - assertRange (6, 0) (6, 4) mElse1 - assertRange (7, 8) (7, 10) mIf2 - assertRange (9, 8) (9, 12) mElse2 - - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Comment between else and if`` () = - let parseResults = - getParseResults - """ -if a then -b -else (* some long comment here *) if c then -d""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.IfThenElse(trivia={ IfKeyword = mIf1; IsElif = false; ElseKeyword = Some mElse } - elseExpr = Some (SynExpr.IfThenElse(trivia = { IfKeyword = mIf2; IsElif = false })))) - ]) ])) -> - assertRange (2, 0) (2, 2) mIf1 - assertRange (4, 0) (4, 4) mElse - assertRange (4, 34) (4, 36) mIf2 - - | _ -> Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/LambdaTests.fs b/tests/service/SyntaxTreeTests/LambdaTests.fs deleted file mode 100644 index ebc343507ab..00000000000 --- a/tests/service/SyntaxTreeTests/LambdaTests.fs +++ /dev/null @@ -1,146 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.LambdaTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``Lambda with two parameters gives correct body`` () = - let parseResults = - getParseResults - "fun a b -> x" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(parsedData = Some([SynPat.Named _; SynPat.Named _], SynExpr.Ident ident)) - ) - ]) ])) -> - Assert.AreEqual("x", ident.idText) - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Lambda with wild card parameter gives correct body`` () = - let parseResults = - getParseResults - "fun a _ b -> x" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(parsedData = Some([SynPat.Named _; SynPat.Wild _; SynPat.Named _], SynExpr.Ident ident)) - ) - ]) ])) -> - Assert.AreEqual("x", ident.idText) - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Lambda with tuple parameter with wild card gives correct body`` () = - let parseResults = - getParseResults - "fun a (b, _) c -> x" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(parsedData = Some([SynPat.Named _; SynPat.Paren(SynPat.Tuple _,_); SynPat.Named _], SynExpr.Ident ident)) - ) - ]) ])) -> - Assert.AreEqual("x", ident.idText) - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Lambda with wild card that returns a lambda gives correct body`` () = - let parseResults = - getParseResults - "fun _ -> fun _ -> x" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(parsedData = Some([SynPat.Wild _], SynExpr.Lambda(parsedData = Some([SynPat.Wild _], SynExpr.Ident ident)))) - ) - ]) ])) -> - Assert.AreEqual("x", ident.idText) - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Simple lambda has arrow range`` () = - let parseResults = - getParseResults - "fun x -> x" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(trivia={ ArrowRange = Some mArrow }) - ) - ]) ])) -> - assertRange (1, 6) (1, 8) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Multiline lambda has arrow range`` () = - let parseResults = - getParseResults - "fun x y z - -> - x * y * z" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(trivia={ ArrowRange = Some mArrow }) - ) - ]) ])) -> - assertRange (2, 28) (2, 30) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Destructed lambda has arrow range`` () = - let parseResults = - getParseResults - "fun { X = x } -> x * 2" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(trivia={ ArrowRange = Some mArrow }) - ) - ]) ])) -> - assertRange (1, 14) (1, 16) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Tuple in lambda has arrow range`` () = - let parseResults = - getParseResults - "fun (x, _) -> x * 3" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(trivia={ ArrowRange = Some mArrow }) - ) - ]) ])) -> - assertRange (1, 11) (1, 13) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Complex arguments lambda has arrow range`` () = - let parseResults = - getParseResults - "fun (x, _) - ({ Y = h::_ }) - (SomePattern(z)) - -> - x * y + z" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Lambda(trivia={ ArrowRange = Some mArrow }) - ) - ]) ])) -> - assertRange (4, 4) (4, 6) mArrow - | _ -> Assert.Fail "Could not get valid AST" diff --git a/tests/service/SyntaxTreeTests/LeadingKeywordTests.fs b/tests/service/SyntaxTreeTests/LeadingKeywordTests.fs deleted file mode 100644 index c247376436b..00000000000 --- a/tests/service/SyntaxTreeTests/LeadingKeywordTests.fs +++ /dev/null @@ -1,561 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.LeadingKeywordTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``let keyword`` () = - let parseResults = getParseResults "let a b = b + 1" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Let mLet }) - ]) - ]) - ])) -> - assertRange (1, 0) (1, 3) mLet - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``let rec keyword`` () = - let parseResults = getParseResults "let rec a b = b + 1" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.LetRec(mLet, mRec) }) - ]) - ]) - ])) -> - assertRange (1, 0) (1, 3) mLet - assertRange (1, 4) (1, 7) mRec - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``and keyword`` () = - let parseResults = - getParseResults """ -let rec a b = b + 1 -and d e = e + 1 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding _ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.And mAnd }) - ]) - ]) - ])) -> - assertRange (3, 0) (3, 3) mAnd - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``use keyword`` () = - let parseResults = - getParseResults """ -do - use x = X() - () -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Do(expr = - SynExpr.LetOrUse(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Use mUse }) - ]) - ) - ) - ]) - ])) -> - assertRange (3, 4) (3, 7) mUse - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``use rec keyword`` () = - let parseResults = - getParseResults """ -do - use rec x = X() - () -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.Do(expr = - SynExpr.LetOrUse(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.UseRec(mUse, mRec) }) - ]) - ) - ) - ]) - ])) -> - assertRange (3, 4) (3, 7) mUse - assertRange (3, 8) (3, 11) mRec - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``extern keyword`` () = - let parseResults = getParseResults "extern void Meh()" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Extern mExtern }) - ]) - ]) - ])) -> - assertRange (1, 0) (1, 6) mExtern - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``member keyword`` () = - let parseResults = getParseResults """ -type X = - member this.Y () = () -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.Member(memberDefn = SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Member mMember })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mMember - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``member val keyword`` () = - let parseResults = getParseResults """ -type X = - member val Y : int = 1 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AutoProperty(trivia = { LeadingKeyword = SynLeadingKeyword.MemberVal(mMember, mVal) }) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mMember - assertRange (3, 11) (3, 14) mVal - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``override keyword`` () = - let parseResults = getParseResults """ -type D = - override E : string = "" -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.Member(memberDefn = SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Override(mOverride) })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 12) mOverride - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``override val keyword`` () = - let parseResults = getParseResults """ -type X = - override val Y : int = 1 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AutoProperty(trivia = { LeadingKeyword = SynLeadingKeyword.OverrideVal(mOverride, mVal) }) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 12) mOverride - assertRange (3, 13) (3, 16) mVal - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``abstract keyword`` () = - let parseResults = getParseResults """ -type X = - abstract Y : int -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Abstract mAbstract })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 12) mAbstract - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``abstract member keyword`` () = - let parseResults = getParseResults """ -type X = - abstract member Y : int -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.AbstractMember(mAbstract, mMember) })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 12) mAbstract - assertRange (3, 13) (3, 19) mMember - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``static member keyword`` () = - let parseResults = getParseResults """ -type X = - static member Y : int = 1 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.Member(memberDefn = SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.StaticMember(mStatic, mMember) })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 17) mMember - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``static member val keyword`` () = - let parseResults = getParseResults """ -type X = - static member val Y : int = 1 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AutoProperty(trivia = { LeadingKeyword = SynLeadingKeyword.StaticMemberVal(mStatic, mMember, mVal) }) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 17) mMember - assertRange (3, 18) (3, 21) mVal - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``static abstract keyword`` () = - let parseResults = getParseResults """ -type X = - static abstract Y : int -> int -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.StaticAbstract(mStatic, mAbstract) })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 19) mAbstract - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``static abstract member keyword`` () = - let parseResults = getParseResults """ -type X = - static abstract member Y : int -> int -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { - LeadingKeyword = SynLeadingKeyword.StaticAbstractMember(mStatic, mAbstract, mMember) - })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 19) mAbstract - assertRange (3,20) (3, 26) mMember - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``static val keyword`` () = - let parseResults = getParseResultsOfSignatureFile """ -namespace Meh - -type X = - static val Y : int -> int -""" - - match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.ValField(field = - SynField(trivia = { LeadingKeyword = Some (SynLeadingKeyword.StaticVal(mStatic, mVal)) })) - ])) - ]) - ]) - ])) -> - assertRange (5, 4) (5, 10) mStatic - assertRange (5, 11) (5, 14) mVal - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``default keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -type Y = - default F : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types =[ - SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.ObjectModel(memberSigs=[ - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Default mDefault })) - ])) - ]) - ]) ])) -> - assertRange (5, 4) (5, 11) mDefault - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``default val keyword`` () = - let ast = """ -type Foo = - default val A : int = 1 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.ObjectModel (members=[ - SynMemberDefn.AutoProperty(trivia = { LeadingKeyword = SynLeadingKeyword.DefaultVal(mDefault , mVal) }) - ])) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 11) mDefault - assertRange (3, 12) (3, 15) mVal - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``val keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -type Y = - val F : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types =[ - SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.ObjectModel(memberSigs=[ - SynMemberSig.ValField(field = SynField(trivia = { LeadingKeyword = Some (SynLeadingKeyword.Val mVal) })) - ])) - ]) - ]) ])) -> - assertRange (5, 4) (5, 7) mVal - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``new keyword`` () = - let parseResults = getParseResults """ -type Y() = - new (message:string) = Y() -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.ImplicitCtor _ - SynMemberDefn.Member(memberDefn = SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.New mNew })) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 7) mNew - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``synthetic keyword`` () = - let parseResults = - getParseResults """ -{ new ISomething with - a = () } -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.ObjExpr(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Synthetic }) - ]) - ) - ]) - ])) -> - Assert.Pass() - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let `` static let keyword`` () = - let parseResults = - getParseResults """ -type X = - static let PI = 3.14 -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.LetBindings(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.StaticLet(mStatic, mLet) }) - ]) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 14) mLet - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let `` static let rec keyword`` () = - let parseResults = - getParseResults """ -type X = - static let rec forever () = forever() -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.LetBindings(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.StaticLetRec(mStatic, mLet, mRec) }) - ]) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 14) mLet - assertRange (3, 15) (3, 18) mRec - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let `` do keyword`` () = - let parseResults = - getParseResults """ -type X = - do () -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.LetBindings(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Do(mDo) }) - ]) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 6) mDo - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let `` do static keyword`` () = - let parseResults = - getParseResults """ -type X = - static do () -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.LetBindings(bindings = [ - SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.StaticDo(mStatic, mDo) }) - ]) - ])) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 13) mDo - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/MatchClauseTests.fs b/tests/service/SyntaxTreeTests/MatchClauseTests.fs deleted file mode 100644 index 5c68abb598a..00000000000 --- a/tests/service/SyntaxTreeTests/MatchClauseTests.fs +++ /dev/null @@ -1,231 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.MatchClauseTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``Range of single SynMatchClause`` () = - let parseResults = - getParseResults - """ -try - let content = tryDownloadFile url - Some content -with ex -> - Infrastructure.ReportWarning ex - None""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(range = range) as clause ])) - ]) ])) -> - assertRange (5, 5) (7, 8) range - assertRange (5, 5) (7, 8) clause.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of multiple SynMatchClause`` () = - let parseResults = - getParseResults - """ -try - let content = tryDownloadFile url - Some content -with -| ex -> - Infrastructure.ReportWarning ex - None -| exx -> - None""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(range = r1) as clause1 - SynMatchClause(range = r2) as clause2 ])) - ]) ])) -> - assertRange (6, 2) (8, 8) r1 - assertRange (6, 2) (8, 8) clause1.Range - - assertRange (9, 2) (10, 8) r2 - assertRange (9, 2) (10, 8) clause2.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of single SynMatchClause followed by bar`` () = - let parseResults = - getParseResults - """ -try - let content = tryDownloadFile url - Some content -with -| ex -> - () -| """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(range = range) as clause ])) - ]) ])) -> - assertRange (6, 2) (7, 6) range - assertRange (6, 2) (7, 6) clause.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of single SynMatchClause with missing body`` () = - let parseResults = - getParseResults - """ -try - let content = tryDownloadFile url - Some content -with -| ex ->""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(range = range) as clause ])) - ]) ])) -> - assertRange (6, 2) (6, 4) range - assertRange (6, 2) (6, 4) clause.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of single SynMatchClause with missing body and when expr`` () = - let parseResults = - getParseResults - """ -try - let content = tryDownloadFile url - Some content -with -| ex when (isNull ex) ->""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(range = range) as clause ])) - ]) ])) -> - assertRange (6, 2) (6, 21) range - assertRange (6, 2) (6, 21) clause.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of arrow in SynMatchClause`` () = - let parseResults = - getParseResults - """ -match foo with -| Bar bar -> ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Match(clauses = [ SynMatchClause(trivia={ ArrowRange = Some mArrow }) ])) - ]) ])) -> - assertRange (3, 10) (3, 12) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of arrow in SynMatchClause with when clause`` () = - let parseResults = - getParseResults - """ -match foo with -| Bar bar when (someCheck bar) -> ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Match(clauses = [ SynMatchClause(trivia={ ArrowRange = Some mArrow }) ])) - ]) ])) -> - assertRange (3, 31) (3, 33) mArrow - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of bar in a single SynMatchClause in SynExpr.Match`` () = - let parseResults = - getParseResults - """ -match foo with -| Bar bar when (someCheck bar) -> ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Match(clauses = [ SynMatchClause(trivia={ BarRange = Some mBar }) ])) - ]) ])) -> - assertRange (3, 0) (3, 1) mBar - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of bar in multiple SynMatchClauses in SynExpr.Match`` () = - let parseResults = - getParseResults - """ -match foo with -| Bar bar when (someCheck bar) -> () -| Far too -> near ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Match(clauses = [ SynMatchClause(trivia={ BarRange = Some mBar1 }) - SynMatchClause(trivia={ BarRange = Some mBar2 }) ])) - ]) ])) -> - assertRange (3, 0) (3, 1) mBar1 - assertRange (4, 0) (4, 1) mBar2 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of bar in a single SynMatchClause in SynExpr.TryWith`` () = - let parseResults = - getParseResults - """ -try - foo () -with -| exn -> ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(trivia={ BarRange = Some mBar }) ])) - ]) ])) -> - assertRange (5, 0) (5, 1) mBar - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``No range of bar in a single SynMatchClause in SynExpr.TryWith`` () = - let parseResults = - getParseResults - """ -try - foo () -with exn -> - // some comment - ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(trivia={ BarRange = None }) ])) - ]) ])) -> - Assert.Pass() - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of bar in a multiple SynMatchClauses in SynExpr.TryWith`` () = - let parseResults = - getParseResults - """ -try - foo () -with -| IOException as ioex -> - // some comment - () -| ex -> ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.TryWith(withCases = [ SynMatchClause(trivia={ BarRange = Some mBar1 }) - SynMatchClause(trivia={ BarRange = Some mBar2 }) ])) - ]) ])) -> - assertRange (5, 0) (5, 1) mBar1 - assertRange (8, 0) (8, 1) mBar2 - | _ -> Assert.Fail "Could not get valid AST" diff --git a/tests/service/SyntaxTreeTests/MeasureTests.fs b/tests/service/SyntaxTreeTests/MeasureTests.fs deleted file mode 100644 index f8c9f29271a..00000000000 --- a/tests/service/SyntaxTreeTests/MeasureTests.fs +++ /dev/null @@ -1,125 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.MeasureTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``Measure contains the range of the constant`` () = - let parseResults = - getParseResults - """ -let n = 1.0m -let m = 7.000 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ SynBinding.SynBinding(expr = SynExpr.Const(SynConst.Measure(constantRange = r1), _)) ]) - SynModuleDecl.Let(bindings = [ SynBinding.SynBinding(expr = SynExpr.Const(SynConst.Measure(constantRange = r2), _)) ]) - ]) ])) -> - assertRange (2, 8) (2, 12) r1 - assertRange (3, 8) (3, 13) r2 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynMeasure.Paren has correct range`` () = - let parseResults = - getParseResults - """ -40u
-""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Const(SynConst.Measure(SynConst.UInt32 _, _, SynMeasure.Divide( - SynMeasure.Seq([ SynMeasure.Named([ hrIdent ], _) ], _), - SynMeasure.Seq([ SynMeasure.Paren(SynMeasure.Seq([ - SynMeasure.Named([ staffIdent ], _) - SynMeasure.Named([ weeksIdent ], _) - ], _) , mParen) ], _), - _) - ), _)) - ]) ])) -> - Assert.AreEqual("hr", hrIdent.idText) - Assert.AreEqual("staff", staffIdent.idText) - Assert.AreEqual("weeks", weeksIdent.idText) - assertRange (2, 9) (2, 22) mParen - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -let private (|TypeName|_|) t = - match t with - | SynType.LongIdent(SynLongIdent([ident], _, _)) -> Some ident.idText - | _ -> None - -[] -let ``SynType.Tuple in measure type with no slashes`` () = - let parseResults = - getParseResults - """ -[] type X = Y * Z -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = - SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.TypeAbbrev(rhsType = - SynType.Tuple(false, [ SynTupleTypeSegment.Type (TypeName "Y") - SynTupleTypeSegment.Star mStar - SynTupleTypeSegment.Type (TypeName "Z") ], mTuple)))) - ]) - ]) ])) -> - assertRange (2, 23) (2, 24) mStar - assertRange (2, 21) (2, 26) mTuple - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Tuple in measure type with leading slash`` () = - let parseResults = - getParseResults - """ -[] type X = / second -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = - SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.TypeAbbrev(rhsType = - SynType.Tuple(false, [ SynTupleTypeSegment.Slash mSlash - SynTupleTypeSegment.Type (TypeName "second") ], mTuple)))) - ]) - ]) ])) -> - assertRange (2, 21) (2, 22) mSlash - assertRange (2, 21) (2, 29) mTuple - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Tuple in measure type with start and slash`` () = - let parseResults = - getParseResults - """ -[] type R = X * Y / Z -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = - SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.TypeAbbrev(rhsType = - SynType.Tuple(false, [ SynTupleTypeSegment.Type (TypeName "X") - SynTupleTypeSegment.Star msStar - SynTupleTypeSegment.Type (TypeName "Y") - SynTupleTypeSegment.Slash msSlash - SynTupleTypeSegment.Type (TypeName "Z") ], mTuple)))) - ]) - ]) ])) -> - assertRange (2, 23) (2, 24) msStar - assertRange (2, 21) (2, 30) mTuple - assertRange (2, 27) (2, 28) msSlash - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/MemberFlagTests.fs b/tests/service/SyntaxTreeTests/MemberFlagTests.fs deleted file mode 100644 index c1c55b3a07c..00000000000 --- a/tests/service/SyntaxTreeTests/MemberFlagTests.fs +++ /dev/null @@ -1,185 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.MemberFlagTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - - -[] -let ``SynMemberSig.Member has correct keywords`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -type Y = - abstract A : int - abstract member B : double - static member C : string - member D : int - override E : int - default F : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types =[ - SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.ObjectModel(memberSigs=[ - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Abstract mAbstract1 })) - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.AbstractMember(mAbstract2, mMember1) })) - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.StaticMember(mStatic3, mMember3) })) - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Member mMember4 })) - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Override mOverride5 })) - SynMemberSig.Member(memberSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Default mDefault6 })) - ])) - ]) - ]) ])) -> - assertRange (5, 4) (5, 12) mAbstract1 - assertRange (6, 4) (6, 12) mAbstract2 - assertRange (6, 13) (6, 19) mMember1 - assertRange (7, 4) (7, 10) mStatic3 - assertRange (7, 11) (7, 17) mMember3 - assertRange (8, 4) (8, 10) mMember4 - assertRange (9, 4) (9, 12) mOverride5 - assertRange (10, 4) (10, 11) mDefault6 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynMemberDefn.AbstractSlot has correct keyword`` () = - let ast = """ -type Foo = - abstract X : int - abstract member Y: int -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.ObjectModel (members=[ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Abstract mAbstract1 })) - SynMemberDefn.AbstractSlot(slotSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.AbstractMember(mAbstract2, mMember2) })) - ])) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 12) mAbstract1 - assertRange (4, 4) (4, 12) mAbstract2 - assertRange (4, 13) (4, 19) mMember2 - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``SynMemberDefn.AutoProperty has correct keyword`` () = - let ast = """ -type Foo = - static member val W : int = 1 - member val X : int = 1 - override val Y : int = 2 - default val Z : int = 1 -""" - |> getParseResults - - let (|LeadingKeyword|_|) md = - match md with - | SynMemberDefn.AutoProperty(trivia = { LeadingKeyword = lk }) -> Some lk - | _ -> None - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.ObjectModel (members=[ - LeadingKeyword(SynLeadingKeyword.StaticMemberVal(mStatic1, mMember1, mVal1)) - LeadingKeyword(SynLeadingKeyword.MemberVal(mMember2, mVal2)) - LeadingKeyword(SynLeadingKeyword.OverrideVal(mOverride3, mVal3)) - LeadingKeyword(SynLeadingKeyword.DefaultVal(mDefault4, mVal4)) - ])) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic1 - assertRange (3, 11) (3, 17) mMember1 - assertRange (3, 18) (3, 21) mVal1 - - assertRange (4, 4) (4, 10) mMember2 - assertRange (4, 11) (4, 14) mVal2 - - assertRange (5, 4) (5, 12) mOverride3 - assertRange (5, 13) (5, 16) mVal3 - - assertRange (6, 4) (6, 11) mDefault4 - assertRange (6, 12) (6, 15) mVal4 - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``SynMemberDefn.Member SynValData has correct keyword`` () = - let ast = """ -type Foo = - static member this.B() = () - member this.A() = () - override this.C() = () - default this.D() = () -""" - |> getParseResults - - let (|LeadingKeyword|_|) md = - match md with - | SynMemberDefn.Member(memberDefn = SynBinding(trivia = { LeadingKeyword = lk })) -> Some lk - | _ -> None - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.ObjectModel (members=[ - LeadingKeyword(SynLeadingKeyword.StaticMember(mStatic1, mMember1)) - LeadingKeyword(SynLeadingKeyword.Member(mMember2)) - LeadingKeyword(SynLeadingKeyword.Override(mOverride3)) - LeadingKeyword(SynLeadingKeyword.Default mDefaultRange4) - ])) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic1 - assertRange (3, 11) (3, 17) mMember1 - assertRange (4, 4) (4, 10) mMember2 - assertRange (5, 4) (5, 12) mOverride3 - assertRange (6, 4) (6, 11) mDefaultRange4 - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``SynExpr.Obj members have correct keywords`` () = - let ast = """ -let meh = - { new Interface with - override this.Foo () = () - member this.Bar () = () - interface SomethingElse with - member this.Blah () = () } -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let (bindings = [ - SynBinding(expr=SynExpr.ObjExpr( - members=[ - SynMemberDefn.Member(memberDefn=SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Override mOverride1 })) - SynMemberDefn.Member(memberDefn=SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Member mMember2 })) - ] - extraImpls=[ SynInterfaceImpl(members=[ - SynMemberDefn.Member(memberDefn=SynBinding(trivia = { LeadingKeyword = SynLeadingKeyword.Member mMember3 })) - ]) ])) - ]) - ]) ])) -> - assertRange (4, 8) (4, 16) mOverride1 - assertRange (5, 8) (5, 14) mMember2 - assertRange (7, 8) (7, 14) mMember3 - | _ -> - Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/MemberTests.fs b/tests/service/SyntaxTreeTests/MemberTests.fs deleted file mode 100644 index 9b6cfa35379..00000000000 --- a/tests/service/SyntaxTreeTests/MemberTests.fs +++ /dev/null @@ -1,387 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.MemberTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``SynTypeDefn with AutoProperty contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -/// mutable class with auto-properties -type Person(name : string, age : int) = - /// Full name - member val Name = name with get, set -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [_ ; SynMemberDefn.AutoProperty(trivia = { EqualsRange = Some mEquals })])) ] - ) - ]) ])) -> - assertRange (5, 20) (5, 21) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with AutoProperty contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - member val AutoProperty = autoProp with get, set - member val AutoProperty2 = autoProp -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [_ - SynMemberDefn.AutoProperty(trivia = { WithKeyword = Some mWith - GetSetKeywords = Some (GetSetKeywords.GetSet(mGet, mSet)) }) - SynMemberDefn.AutoProperty(trivia = { WithKeyword = None })])) ] - ) - ]) ])) -> - assertRange (3, 39) (3, 43) mWith - assertRange (3, 44) (3, 47) mGet - assertRange (3, 49) (3, 52) mSet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with AbstractSlot contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - abstract member Bar : int with get,set -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [_ - SynMemberDefn.AbstractSlot(slotSig=SynValSig(trivia = { WithKeyword = Some mWith }) - trivia = { GetSetKeywords = Some (GetSetKeywords.GetSet(mGet, mSet)) })])) ] - ) - ]) ])) -> - assertRange (3, 30) (3, 34) mWith - assertRange (3, 35) (3, 38) mGet - assertRange (3, 39) (3, 42) mSet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``read-only property in SynMemberDefn.Member contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - // A read-only property. - member this.MyReadProperty with get () = myInternalValue -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = - SynTypeDefnRepr.ObjectModel(members=[ - _ - SynMemberDefn.GetSetMember(Some(SynBinding _), None, _, { WithKeyword = mWith }) ]) - ) ]) - ]) ])) -> - assertRange (4, 31) (4, 35) mWith - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``write-only property in SynMemberDefn.Member contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - // A write-only property. - member this.MyWriteOnlyProperty with set (value) = myInternalValue <- value -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = - SynTypeDefnRepr.ObjectModel(members=[ - _ - SynMemberDefn.GetSetMember(None, Some(SynBinding _), _, { WithKeyword = mWith }) ]) - ) ]) - ]) ])) -> - assertRange (4, 36) (4, 40) mWith - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``read/write property in SynMemberDefn.Member contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - // A read-write property. - member this.MyReadWriteProperty - with get () = myInternalValue - and set (value) = myInternalValue <- value -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = - SynTypeDefnRepr.ObjectModel(members=[ - _ - SynMemberDefn.GetSetMember(Some _, Some _, _, { WithKeyword = mWith; AndKeyword = Some mAnd }) ]) - ) ]) - ]) ])) -> - assertRange (5, 8) (5, 12) mWith - assertRange (6, 8) (6, 11) mAnd - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with static member with get/set`` () = - let parseResults = - getParseResults - """ -type Foo = - static member ReadWrite2 - with set x = lastUsed <- ("ReadWrite2", x) - and get () = lastUsed <- ("ReadWrite2", 0); 4 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.GetSetMember(Some _, Some _, m, { WithKeyword = mWith - GetKeyword = Some mGet - AndKeyword = Some mAnd - SetKeyword = Some mSet }) - ])) ] - ) - ]) ])) -> - assertRange (4, 8) (4, 12) mWith - assertRange (4, 13) (4, 16) mSet - assertRange (5, 8) (5, 11) mAnd - assertRange (5, 13) (5, 16) mGet - assertRange (3, 4) (5, 54) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with member with set/get`` () = - let parseResults = - getParseResults - """ -type A() = - member this.Z with set (_:int):unit = () and get():int = 1 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.ImplicitCtor _ - SynMemberDefn.GetSetMember(Some (SynBinding(headPat = SynPat.LongIdent(extraId = Some getIdent))), - Some (SynBinding(headPat = SynPat.LongIdent(extraId = Some setIdent))), - m, - { WithKeyword = mWith - GetKeyword = Some mGet - AndKeyword = Some mAnd - SetKeyword = Some mSet }) - ])) ] - ) - ]) ])) -> - Assert.AreEqual("get", getIdent.idText) - Assert.AreEqual("set", setIdent.idText) - assertRange (3, 18) (3, 22) mWith - assertRange (3, 23) (3, 26) mSet - assertRange (3, 23) (3, 26) setIdent.idRange - assertRange (3, 45) (3, 48) mAnd - assertRange (3, 49) (3, 52) mGet - assertRange (3, 49) (3, 52) getIdent.idRange - assertRange (3, 4) (3, 62) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with member with get has xml comment`` () = - let parseResults = - getParseResults - """ -type A = - /// B - member x.B with get() = 5 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.GetSetMember(Some (SynBinding(xmlDoc = preXmlDoc)), - None, - _, - _) - ])) ] - ) - ]) ])) -> - Assert.False preXmlDoc.IsEmpty - let comment = preXmlDoc.ToXmlDoc(false, None).GetXmlText() - Assert.False (System.String.IsNullOrWhiteSpace(comment)) - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Signature member with set,get`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -type X = - // MemberSig.Member - member Y : int - with - set , get -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(trivia = { WithKeyword = Some mWith }) - trivia = { GetSetKeywords = Some (GetSetKeywords.GetSet(mGet, mSet)) }) - ])) - ]) - ] ) ])) -> - assertRange (7, 20) (7, 24) mWith - assertRange (8, 28) (8, 31) mSet - assertRange (8, 36) (8, 39) mGet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Signature member with set`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -type X = - // MemberSig.Member - member Y : int - with - set -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(trivia = { WithKeyword = Some mWith }) - trivia = { GetSetKeywords = Some (GetSetKeywords.Set(mSet)) }) - ])) - ]) - ] ) ])) -> - assertRange (7, 20) (7, 24) mWith - assertRange (8, 28) (8, 31) mSet - | _ -> Assert.Fail "Could not get valid AST" - - -[] -let ``Signature member with get`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -type X = - // MemberSig.Member - member Y : int - with - get -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(trivia = { WithKeyword = Some mWith }) - trivia = { GetSetKeywords = Some (GetSetKeywords.Get(mGet)) }) - ])) - ]) - ] ) ])) -> - assertRange (7, 20) (7, 24) mWith - assertRange (8, 32) (8, 35) mGet - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Member with inline keyword`` () = - let parseResults = - getParseResults - """ -type X = - member inline x.Y () = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.Member(memberDefn = SynBinding(trivia = { InlineKeyword = Some mInline })) - ])) ] - ) - ]) ])) -> - assertRange (3, 11) (3, 17) mInline - | ast -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``Get/Set member with inline keyword`` () = - let parseResults = - getParseResults - """ -type X = - member inline x.Y - with inline get () = 4 - and inline set y = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.GetSetMember(Some (SynBinding(trivia = { InlineKeyword = Some mInlineGet })), - Some (SynBinding(trivia = { InlineKeyword = Some mInlineSet })), - _, - { InlineKeyword = Some mInlineGetSetMember }) - ])) ] - ) - ]) ])) -> - assertRange (3, 11) (3, 17) mInlineGetSetMember - assertRange (4, 13) (4, 19) mInlineGet - assertRange (5, 12) (5, 18) mInlineSet - | ast -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``ImplicitCtor with as keyword`` () = - let parseResults = - getParseResults - """ -type internal CompilerStateCache(readAllBytes: string -> byte[], projectOptions: FSharpProjectOptions) -//#if !NO_TYPEPROVIDERS - as this = -//#else -// = -// #endif - class end -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(implicitConstructor = Some (SynMemberDefn.ImplicitCtor(trivia = { AsKeyword = Some mAs }))) ] - ) - ]) ])) -> - assertRange (4, 4) (4, 6) mAs - | ast -> Assert.Fail $"Could not get valid AST, got {ast}" diff --git a/tests/service/SyntaxTreeTests/ModuleOrNamespaceSigTests.fs b/tests/service/SyntaxTreeTests/ModuleOrNamespaceSigTests.fs deleted file mode 100644 index b49dfc3850b..00000000000 --- a/tests/service/SyntaxTreeTests/ModuleOrNamespaceSigTests.fs +++ /dev/null @@ -1,93 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ModuleOrNamespaceSigTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``Range member returns range of SynModuleOrNamespaceSig`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace Foobar - -type Bar = | Bar of string * int -""" - - match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(kind = SynModuleOrNamespaceKind.DeclaredNamespace) as singleModule - ])) -> - assertRange (2,0) (4,32) singleModule.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``GlobalNamespace should start at namespace keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """// foo -// bar -namespace global - -type Bar = | Bar of string * int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(kind = SynModuleOrNamespaceKind.GlobalNamespace; range = r) ])) -> - assertRange (3, 0) (5, 32) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Module range should start at first attribute`` () = - let parseResults = - getParseResultsOfSignatureFile - """ - [< Foo >] -module Bar - -val s : string -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig.SynModuleOrNamespaceSig(kind = SynModuleOrNamespaceKind.NamedModule; range = r) ])) -> - assertRange (2, 1) (5, 14) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Module should contain module keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Bar - -val a: int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig( - kind = SynModuleOrNamespaceKind.NamedModule - trivia = { LeadingKeyword = SynModuleOrNamespaceLeadingKeyword.Module mModule }) ])) -> - assertRange (2, 0) (2, 6) mModule - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Namespace should contain namespace keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace Foo -module Bar = -val a: int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig( - kind = SynModuleOrNamespaceKind.DeclaredNamespace - trivia = { LeadingKeyword = SynModuleOrNamespaceLeadingKeyword.Namespace mNamespace }) ])) -> - assertRange (2, 0) (2, 9) mNamespace - | _ -> Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ModuleOrNamespaceTests.fs b/tests/service/SyntaxTreeTests/ModuleOrNamespaceTests.fs deleted file mode 100644 index 7b444091363..00000000000 --- a/tests/service/SyntaxTreeTests/ModuleOrNamespaceTests.fs +++ /dev/null @@ -1,140 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ModuleOrNamespaceTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``DeclaredNamespace range should start at namespace keyword`` () = - let parseResults = - getParseResults - """namespace TypeEquality - -/// A type for witnessing type equality between 'a and 'b -type Teq<'a, 'b> -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(kind = SynModuleOrNamespaceKind.DeclaredNamespace; range = r) ])) -> - assertRange (1, 0) (4, 8) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Multiple DeclaredNamespaces should have a range that starts at the namespace keyword`` () = - let parseResults = - getParseResults - """namespace TypeEquality - -/// A type for witnessing type equality between 'a and 'b -type Teq = class end - -namespace Foobar - -let x = 42 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(kind = SynModuleOrNamespaceKind.DeclaredNamespace; range = r1) - SynModuleOrNamespace.SynModuleOrNamespace(kind = SynModuleOrNamespaceKind.DeclaredNamespace; range = r2) ])) -> - assertRange (1, 0) (4, 20) r1 - assertRange (6, 0) (8, 10) r2 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``GlobalNamespace should start at namespace keyword`` () = - let parseResults = - getParseResults - """// foo -// bar -namespace global - -type X = int -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(kind = SynModuleOrNamespaceKind.GlobalNamespace; range = r) ])) -> - assertRange (3, 0) (5, 12) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Module range should start at first attribute`` () = - let parseResults = - getParseResults - """ -[< Foo >] -module Bar - -let s : string = "s" -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(kind = SynModuleOrNamespaceKind.NamedModule; range = r) ])) -> - assertRange (2, 0) (5, 20) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Module should contain module keyword`` () = - let parseResults = - getParseResults - """ -/// this file contains patches to the F# Compiler Service that have not yet made it into -/// published nuget packages. We source-copy them here to have a consistent location for our to-be-removed extensions - -module FsAutoComplete.FCSPatches - -open FSharp.Compiler.Syntax -open FSharp.Compiler.Text -open FsAutoComplete.UntypedAstUtils -open FSharp.Compiler.CodeAnalysis - -module internal SynExprAppLocationsImpl = -let a = 42 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace( - kind = SynModuleOrNamespaceKind.NamedModule - trivia = { LeadingKeyword = SynModuleOrNamespaceLeadingKeyword.Module mModule }) ])) -> - assertRange (5, 0) (5, 6) mModule - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Namespace should contain namespace keyword`` () = - let parseResults = - getParseResults - """ -namespace Foo -module Bar = -let a = 42 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace( - kind = SynModuleOrNamespaceKind.DeclaredNamespace - trivia = { LeadingKeyword = SynModuleOrNamespaceLeadingKeyword.Namespace mNamespace }) ])) -> - assertRange (2, 0) (2, 9) mNamespace - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``global in open path should contain trivia`` () = - let parseResults = - getParseResults - """ -namespace Ionide.VSCode.FSharp - -open global.Node -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Open(target = SynOpenDeclTarget.ModuleOrNamespace(longId = SynLongIdent(trivia = [ Some (IdentTrivia.OriginalNotation("global")); None ]))) - ]) ])) -> - Assert.Pass() - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/NestedModuleTests.fs b/tests/service/SyntaxTreeTests/NestedModuleTests.fs deleted file mode 100644 index fcdde98008a..00000000000 --- a/tests/service/SyntaxTreeTests/NestedModuleTests.fs +++ /dev/null @@ -1,172 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.NestedModuleTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - - -[] -let ``Range of attribute should be included in SynModuleSigDecl.NestedModule`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -[] -module Nested = - val x : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.NestedModule _ as nm - ]) as sigModule ])) -> - assertRange (4, 0) (6, 15) nm.Range - assertRange (2, 0) (6, 15) sigModule.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynModuleDecl.NestedModule`` () = - let parseResults = - getParseResults - """ -module TopLevel - -[] -module Nested = - ()""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.NestedModule _ as nm - ]) ])) -> - assertRange (4, 0) (6, 6) nm.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present`` () = - let parseResults = - getParseResults - """ -module X = -() -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.NestedModule(trivia = { ModuleKeyword = Some mModule; EqualsRange = Some mEquals }) - ]) ])) -> - assertRange (2, 0) (2, 6) mModule - assertRange (2, 9) (2, 10) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of equal sign should be present, signature file`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace Foo - -module X = -val bar : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.NestedModule(trivia = { ModuleKeyword = Some mModule; EqualsRange = Some mEquals }) - ]) ])) -> - assertRange (4, 0) (4, 6) mModule - assertRange (4, 9) (4, 10) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of nested module in signature file should end at the last SynModuleSigDecl`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace Microsoft.FSharp.Core - -open System -open System.Collections.Generic -open Microsoft.FSharp.Core -open Microsoft.FSharp.Collections -open System.Collections - - -module Tuple = - - type Tuple<'T1,'T2,'T3,'T4> = - interface IStructuralEquatable - interface IStructuralComparable - interface IComparable - new : 'T1 * 'T2 * 'T3 * 'T4 -> Tuple<'T1,'T2,'T3,'T4> - member Item1 : 'T1 with get - member Item2 : 'T2 with get - member Item3 : 'T3 with get - member Item4 : 'T4 with get - - -module Choice = - - /// Helper types for active patterns with 6 choices. - [] - [] - type Choice<'T1,'T2,'T3,'T4,'T5,'T6> = - /// Choice 1 of 6 choices - | Choice1Of6 of 'T1 - /// Choice 2 of 6 choices - | Choice2Of6 of 'T2 - /// Choice 3 of 6 choices - | Choice3Of6 of 'T3 - /// Choice 4 of 6 choices - | Choice4Of6 of 'T4 - /// Choice 5 of 6 choices - | Choice5Of6 of 'T5 - /// Choice 6 of 6 choices - | Choice6Of6 of 'T6 - - - -/// Basic F# Operators. This module is automatically opened in all F# code. -[] -module Operators = - - type ``[,]``<'T> with - [] - /// Get the length of an array in the first dimension - member Length1 : int - [] - /// Get the length of the array in the second dimension - member Length2 : int - [] - /// Get the lower bound of the array in the first dimension - member Base1 : int - [] - /// Get the lower bound of the array in the second dimension - member Base2 : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Open _ - SynModuleSigDecl.Open _ - SynModuleSigDecl.Open _ - SynModuleSigDecl.Open _ - SynModuleSigDecl.Open _ - SynModuleSigDecl.NestedModule(range=mTupleModule; moduleDecls=[ SynModuleSigDecl.Types([ - SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.ObjectModel(range=mTupleObjectModel); range=mTupleType) - ], mTupleTypes) ]) - SynModuleSigDecl.NestedModule(range=mChoiceModule) - SynModuleSigDecl.NestedModule(range=mOperatorsModule; moduleDecls=[ SynModuleSigDecl.Types([ - SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.Simple(range=mAugmentationSimple); range=mAugmentation) - ], mOperatorsTypes) ]) - ]) ])) -> - assertRange (10, 0) (20, 35) mTupleModule - assertRange (12, 4) (20, 35) mTupleTypes - assertRange (12, 9) (20, 35) mTupleType - assertRange (13, 8) (20, 35) mTupleObjectModel - assertRange (23, 0) (40, 25) mChoiceModule - assertRange (44, 0) (60, 26) mOperatorsModule - assertRange (48, 4) (60, 26) mOperatorsTypes - assertRange (48, 9) (60, 26) mAugmentation - assertRange (48, 9) (60, 26) mAugmentationSimple - | _ -> Assert.Fail "Could not get valid AST" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/OperatorNameTests.fs b/tests/service/SyntaxTreeTests/OperatorNameTests.fs deleted file mode 100644 index 9efbb4dc972..00000000000 --- a/tests/service/SyntaxTreeTests/OperatorNameTests.fs +++ /dev/null @@ -1,486 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.OperatorNameTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``operator as function`` () = - let ast = """ -(+) 3 4 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr (expr = SynExpr.App(funcExpr = SynExpr.App(funcExpr = - SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotationWithParen(lpr, "+", rpr))]))))) - ]) - ])) -> - assertRange (2, 0) (2, 1) lpr - Assert.AreEqual("op_Addition", ident.idText) - assertRange (2, 2) (2, 3) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``active pattern as function `` () = - let ast = """ -(|Odd|Even|) 4 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr (expr = SynExpr.App(funcExpr = - SynExpr.LongIdent(false, SynLongIdent([ ident ], _, [ Some(IdentTrivia.HasParenthesis(lpr, rpr)) ]), None, pr))) - ]) - ])) -> - assertRange (2, 0) (2, 1) lpr - Assert.AreEqual("|Odd|Even|", ident.idText) - assertRange (2, 11) (2, 12) rpr - assertRange (2, 0) (2, 12) pr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``partial active pattern as function `` () = - let ast = """ -(|Odd|_|) 4 -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr (expr = SynExpr.App(funcExpr = - SynExpr.LongIdent(false, SynLongIdent([ ident ], _, [ Some(IdentTrivia.HasParenthesis(lpr, rpr)) ]), None, pr))) - ]) - ])) -> - assertRange (2, 0) (2, 1) lpr - Assert.AreEqual("|Odd|_|", ident.idText) - assertRange (2, 8) (2, 9) rpr - assertRange (2, 0) (2, 9) pr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``custom operator definition`` () = - let ast = """ -let (+) a b = a + b -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(headPat= - SynPat.LongIdent(longDotId = SynLongIdent([ ident ],_, [ Some (IdentTrivia.OriginalNotationWithParen(lpr, "+", rpr)) ]))) - ]) - ])])) -> - assertRange (2, 4) (2,5) lpr - Assert.AreEqual("op_Addition", ident.idText) - assertRange (2, 6) (2, 7) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``active pattern definition`` () = - let ast = """ -let (|Odd|Even|) (a: int) = if a % 2 = 0 then Even else Odd -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(headPat= - SynPat.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.HasParenthesis(lpr, rpr))]))) - ]) - ])])) -> - assertRange (2, 4) (2, 5) lpr - Assert.AreEqual("|Odd|Even|", ident.idText) - assertRange (2, 15) (2, 16) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``partial active pattern definition`` () = - let ast = """ -let (|Int32Const|_|) (a: SynConst) = match a with SynConst.Int32 _ -> Some a | _ -> None -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(headPat= - SynPat.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.HasParenthesis(lpr, rpr))]))) - ]) - ])])) -> - assertRange (2, 4) (2, 5) lpr - Assert.AreEqual("|Int32Const|_|", ident.idText) - assertRange (2, 19) (2, 20) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``partial active pattern definition without parameters`` () = - let ast = """ -let (|Boolean|_|) = Boolean.parse -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [SynBinding(headPat= - SynPat.Named(ident = SynIdent(ident, Some (IdentTrivia.HasParenthesis(lpr, rpr))))) - ]) - ])])) -> - assertRange (2, 4) (2, 5) lpr - Assert.AreEqual("|Boolean|_|", ident.idText) - assertRange (2, 16) (2, 17) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - - -[] -let ``operator name in SynValSig`` () = - let ast = """ -module IntrinsicOperators -val (&): e1: bool -> e2: bool -> bool -""" - |> getParseResultsOfSignatureFile - - match ast with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Val(valSig = SynValSig(ident = SynIdent(ident, Some (IdentTrivia.OriginalNotationWithParen(lpr, "&", rpr))) - ))]) - ])) -> - assertRange (3, 4) (3, 5) lpr - Assert.AreEqual("op_Amp", ident.idText) - assertRange (3, 6) (3, 7) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``operator name in val constraint`` () = - let ast = - getParseResultsOfSignatureFile """ - [] - module Operators - /// Overloaded unary negation. - /// - /// The value to negate. - /// - /// The result of the operation. - /// - /// - /// - val inline (~-): n: ^T -> ^T when ^T: (static member ( ~- ): ^T -> ^T) and default ^T: int -""" - - match ast with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Val(valSig = SynValSig(synType=SynType.WithGlobalConstraints(constraints=[ - SynTypeConstraint.WhereTyparSupportsMember(memberSig=SynMemberSig.Member(memberSig=SynValSig(ident = - SynIdent(ident, Some (IdentTrivia.OriginalNotationWithParen(lpr, "~-", rpr)))))) - SynTypeConstraint.WhereTyparDefaultsToType _ - ]))) - ]) - ])) -> - assertRange (12, 57) (12, 58) lpr - Assert.AreEqual("op_UnaryNegation", ident.idText) - assertRange (12, 62) (12, 63) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``named parameter`` () = - let ast = getParseResults """ -f(x=4) -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.App(argExpr = SynExpr.Paren(expr = SynExpr.App(funcExpr= - SynExpr.App(funcExpr= SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotation "=")]))))))) - ]) - ])) -> - Assert.AreEqual("op_Equality", ident.idText) - assertRange (2,3) (2,4) ident.idRange - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``infix operation`` () = - let ast = getParseResults """ -1 + 1 -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(funcExpr = SynExpr.App(isInfix = true - funcExpr = SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotation "+")])) - argExpr = SynExpr.Const(SynConst.Int32(1), _)) - argExpr = SynExpr.Const(SynConst.Int32(1), _))) - ]) - ])) -> - Assert.AreEqual("op_Addition", ident.idText) - assertRange (2,2) (2,3) ident.idRange - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``prefix operation`` () = - let ast = getParseResults """ -+ -86 -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(isInfix = false - funcExpr = SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotation "+")])) - argExpr = SynExpr.Const(SynConst.Int32(-86), _))) - ]) - ])) -> - Assert.AreEqual("op_UnaryPlus", ident.idText) - assertRange (2,0) (2,1) ident.idRange - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``prefix operation with two characters`` () = - let ast = getParseResults """ -%%arg -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(isInfix = false - funcExpr = SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotation "%%")])) - argExpr = SynExpr.Ident argIdent)) - ]) - ])) -> - Assert.AreEqual("op_SpliceUntyped", ident.idText) - assertRange (2,0) (2,2) ident.idRange - Assert.AreEqual("arg", argIdent.idText) - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``detect difference between compiled operators`` () = - let ast = getParseResults """ -(+) a b -op_Addition a b -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(funcExpr = SynExpr.App(isInfix = false - funcExpr = SynExpr.LongIdent(longDotId = SynLongIdent([ident], _, [Some (IdentTrivia.OriginalNotationWithParen(lpr, "+", rpr))])) - argExpr = SynExpr.Ident a1) - argExpr = SynExpr.Ident b1)) - SynModuleDecl.Expr(expr = - SynExpr.App(funcExpr = SynExpr.App(isInfix = false - funcExpr = SynExpr.Ident op_Addition - argExpr = SynExpr.Ident a2) - argExpr = SynExpr.Ident b2) - ) - ]) - ])) -> - assertRange (2,0) (2,1) lpr - Assert.AreEqual("op_Addition", ident.idText) - assertRange (2,2) (2,3) rpr - Assert.AreEqual("a", a1.idText) - Assert.AreEqual("b", b1.idText) - - Assert.AreEqual("op_Addition", op_Addition.idText) - Assert.AreEqual("a", a2.idText) - Assert.AreEqual("b", b2.idText) - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``operator in member definition`` () = - let ast = getParseResults """ -type X with - member _.(+) a b = a + b -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(members = [ - SynMemberDefn.Member(memberDefn = SynBinding(headPat = SynPat.LongIdent(longDotId = - SynLongIdent([ _; operatorIdent ], [ mDot ], [ None; Some (IdentTrivia.OriginalNotationWithParen(lpr, "+", rpr)) ]) as lid))) - ]) - ] - ) - ]) - ])) -> - assertRange (3,12) (3,13) mDot - assertRange (3,13) (3,14) lpr - Assert.AreEqual("op_Addition", operatorIdent.idText) - assertRange (3,15) (3,16) rpr - assertRange (3,11) (3,15) lid.Range - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``nameof operator`` () = - let ast = getParseResults """ -nameof(+) -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(isInfix = false - funcExpr = SynExpr.Ident nameofIdent - argExpr = - SynExpr.LongIdent(longDotId = SynLongIdent([operatorIdent], _, [Some (IdentTrivia.OriginalNotationWithParen(lpr, "+", rpr))])) - ) - ) - ]) - ])) -> - Assert.AreEqual("nameof", nameofIdent.idText) - assertRange (2,6) (2,7) lpr - Assert.AreEqual("op_Addition", operatorIdent.idText) - assertRange (2,8) (2,9) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``optional expression`` () = - let ast = getParseResults """ -f(?x = 7) -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = - SynExpr.App(isInfix = false - funcExpr = SynExpr.Ident f - argExpr = SynExpr.Paren( - SynExpr.App(funcExpr = SynExpr.App( - isInfix = true - funcExpr = SynExpr.LongIdent(longDotId = SynLongIdent([eqIdent], _, [Some (IdentTrivia.OriginalNotation "=")])) - argExpr = SynExpr.LongIdent(true, SynLongIdent([x], [], [None]), _, mOptional) - ) - argExpr = SynExpr.Const(SynConst.Int32 7, _)), lpr, Some rpr, pr))) - ]) - ])) -> - Assert.AreEqual("f", f.idText) - assertRange (2,1) (2,2) lpr - Assert.AreEqual("x", x.idText) - assertRange (2,3) (2, 4) mOptional - Assert.AreEqual("op_Equality", eqIdent.idText) - assertRange (2,8) (2,9) rpr - assertRange (2,1) (2,9) pr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``object model with two members`` () = - let ast = getParseResults """ -type X() = - let mutable allowInto = 0 - member _.AllowIntoPattern with get() = allowInto and set v = allowInto <- v -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn.SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members =[ - SynMemberDefn.ImplicitCtor _ - SynMemberDefn.LetBindings _ - SynMemberDefn.GetSetMember( - Some (SynBinding(headPat = SynPat.LongIdent(longDotId = SynLongIdent(id = [ _ ; allowIntoPatternGet ])))), - Some (SynBinding(headPat = SynPat.LongIdent(longDotId = SynLongIdent(id = [ _ ; allowIntoPatternSet ])))), - _, - { WithKeyword = mWith; AndKeyword = Some mAnd }) - ])) - ]) - ]) - ])) -> - Assert.AreEqual("AllowIntoPattern", allowIntoPatternGet.idText) - assertRange (4, 30) (4, 34) mWith - Assert.AreEqual("AllowIntoPattern", allowIntoPatternSet.idText) - assertRange (4, 53) (4, 56) mAnd - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``qualified operator expression`` () = - let ast = getParseResults """ -let PowByte (x:byte) n = Checked.( * ) x -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = SynExpr.App(funcExpr = - SynExpr.LongIdent(longDotId = SynLongIdent([checkedIdent; operatorIdent], [mDot], [None; Some (IdentTrivia.OriginalNotationWithParen(lpr, "*", rpr))])))) - ]) - ]) - ])) -> - Assert.AreEqual("Checked", checkedIdent.idText) - assertRange (2, 32) (2, 33) mDot - assertRange (2, 33) (2, 34) lpr - Assert.AreEqual("op_Multiply", operatorIdent.idText) - assertRange (2, 37) (2, 38) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``active pattern identifier in private member`` () = - let ast = getParseResults """ -type A() = - member private _.(| - A' - |) = (| - Lazy - |) -""" - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.ImplicitCtor _ - SynMemberDefn.Member(memberDefn = SynBinding( - headPat = SynPat.LongIdent(longDotId = SynLongIdent([underscoreIdent; aQuoteIdent], [ _ ], [ None; Some (IdentTrivia.HasParenthesis(lpr, rpr)) ])) - )) - ])) - ]) - ]) - ])) -> - () - Assert.AreEqual("_", underscoreIdent.idText) - Assert.AreEqual("|A'|", aQuoteIdent.idText) - assertRange (3, 21) (3, 22) lpr - assertRange (5, 5) (5, 6) rpr - | _ -> - Assert.Fail $"Could not get valid AST, got {ast}" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ParsedHashDirectiveTests.fs b/tests/service/SyntaxTreeTests/ParsedHashDirectiveTests.fs deleted file mode 100644 index f834680fdff..00000000000 --- a/tests/service/SyntaxTreeTests/ParsedHashDirectiveTests.fs +++ /dev/null @@ -1,61 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ParsedHashDirectiveTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``SourceIdentifier as ParsedHashDirectiveArgument`` () = - let parseResults = - getParseResults - "#I __SOURCE_DIRECTORY__" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.HashDirective(ParsedHashDirective("I", [ ParsedHashDirectiveArgument.SourceIdentifier(c,_,m) ] , _), _) - ]) ])) -> - Assert.AreEqual("__SOURCE_DIRECTORY__", c) - assertRange (1, 3) (1, 23) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Regular String as ParsedHashDirectiveArgument`` () = - let parseResults = - getParseResults - "#I \"/tmp\"" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.HashDirective(ParsedHashDirective("I", [ ParsedHashDirectiveArgument.String(v, SynStringKind.Regular, m) ] , _), _) - ]) ])) -> - Assert.AreEqual("/tmp", v) - assertRange (1, 3) (1, 9) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Verbatim String as ParsedHashDirectiveArgument`` () = - let parseResults = - getParseResults - "#I @\"C:\\Temp\"" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.HashDirective(ParsedHashDirective("I", [ ParsedHashDirectiveArgument.String(v, SynStringKind.Verbatim, m) ] , _), _) - ]) ])) -> - Assert.AreEqual("C:\\Temp", v) - assertRange (1, 3) (1, 13) m - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Triple quote String as ParsedHashDirectiveArgument`` () = - let parseResults = - getParseResults - "#nowarn \"\"\"40\"\"\"" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.HashDirective(ParsedHashDirective("nowarn", [ ParsedHashDirectiveArgument.String(v, SynStringKind.TripleQuote, m) ] , _), _) - ]) ])) -> - Assert.AreEqual("40", v) - assertRange (1, 8) (1, 16) m - | _ -> Assert.Fail "Could not get valid AST" diff --git a/tests/service/SyntaxTreeTests/PatternTests.fs b/tests/service/SyntaxTreeTests/PatternTests.fs deleted file mode 100644 index c03325e6077..00000000000 --- a/tests/service/SyntaxTreeTests/PatternTests.fs +++ /dev/null @@ -1,140 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.PatternTestsTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``SynPat.Record contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -match x with -| { Foo = bar } -> () -| _ -> () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Match(clauses = [ SynMatchClause(pat = SynPat.Record(fieldPats = [ (_, mEquals, _) ])) ; _ ]) - ) - ]) ])) -> - assertRange (3, 8) (3, 9) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynArgPats.NamePatPairs contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -match x with -| X(Y = y) -> y -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Match(clauses = [ SynMatchClause(pat = SynPat.LongIdent(argPats = SynArgPats.NamePatPairs(pats = [ _, mEquals ,_ ])))]) - ) - ]) ])) -> - assertRange (3, 7) (3, 8) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynPat.Or contains the range of the bar`` () = - let parseResults = - getParseResults - """ -match x with -| A -| B -> () -| _ -> () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Match(clauses = [ SynMatchClause(pat = SynPat.Or(trivia={ BarRange = mBar })) ; _ ]) - ) - ]) ])) -> - assertRange (4, 0) (4, 1) mBar - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``:: operator in SynPat.LongIdent`` () = - let parseResults = - getParseResults - """ -let (head::tail) = [ 1;2;4] -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let( - bindings = [ SynBinding(headPat = SynPat.Paren(pat = SynPat.ListCons(trivia = trivia))) ] - ) - ]) ])) -> - assertRange (2,9) (2,11) trivia.ColonColonRange - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``:: operator in match pattern`` () = - let parseResults = - getParseResults - """ -match x with -| (head) :: (tail) -> () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Match(clauses = [ - SynMatchClause(pat = SynPat.ListCons(trivia = trivia)) - ]) - ) - ]) ])) -> - assertRange (3, 9) (3, 11) trivia.ColonColonRange - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Parentheses of SynArgPats.NamePatPairs`` () = - let parseResults = - getParseResults - """ -match data with -| OnePartData( // foo - part1 = p1 - (* bar *) ) -> p1 -| _ -> failwith "todo" -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr( - expr = SynExpr.Match(clauses = [ - SynMatchClause(pat = SynPat.LongIdent(argPats = SynArgPats.NamePatPairs(trivia = trivia))) - _ - ]) - ) - ]) ])) -> - assertRange (3, 13) (5, 13) trivia.ParenRange - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``:: in head pattern`` () = - let parseResults = - getParseResults - """ -let 1 :: _ = [ 4; 5; 6 ] -""" - - match parseResults with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ SynBinding(headPat = - SynPat.ListCons(trivia = trivia)) ]) - ]) ])) -> - assertRange (2,6) (2, 8) trivia.ColonColonRange - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/SignatureTypeTests.fs b/tests/service/SyntaxTreeTests/SignatureTypeTests.fs deleted file mode 100644 index d8a6857fbfb..00000000000 --- a/tests/service/SyntaxTreeTests/SignatureTypeTests.fs +++ /dev/null @@ -1,566 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.SignatureTypeTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``Range of Type should end at end keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace GreatProjectThing - -type Meh = - class - end - - -// foo""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types(range = r)]) ])) -> - assertRange (3, 0) (5,11) r - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of SynTypeDefnSig record should end at last member`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace X -type MyRecord = - { Level: int } - member Score : unit -> int""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types([SynTypeDefnSig.SynTypeDefnSig(range=mSynTypeDefnSig)], mTypes)]) ])) -> - assertRange (2, 0) (4, 30) mTypes - assertRange (2, 5) (4, 30) mSynTypeDefnSig - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of SynTypeDefnSig object model should end at last member`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace X -type MyRecord = - class - end - member Score : unit -> int""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types([SynTypeDefnSig.SynTypeDefnSig(range=mSynTypeDefnSig)], mTypes)]) ])) -> - assertRange (2, 0) (5, 30) mTypes - assertRange (2, 5) (5, 30) mSynTypeDefnSig - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of SynTypeDefnSig delegate of should start from name`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace Y -type MyFunction = - delegate of int -> string""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types([SynTypeDefnSig.SynTypeDefnSig(range=mSynTypeDefnSig)], mTypes) ]) ])) -> - assertRange (2, 0) (3, 29) mTypes - assertRange (2, 5) (3, 29) mSynTypeDefnSig - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of SynTypeDefnSig simple should end at last val`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace Z -type SomeCollection with - val LastIndex : int - val SomeThingElse : int -> string""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types([SynTypeDefnSig.SynTypeDefnSig(range=mSynTypeDefnSig)], mTypes)]) ])) -> - assertRange (2, 0) (4, 37) mTypes - assertRange (2, 5) (4, 37) mSynTypeDefnSig - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynTypeDefnSig`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -[] -type MyType = - class - end -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types(types = [SynTypeDefnSig.SynTypeDefnSig(range = r)]) as t]) ])) -> - assertRange (4, 0) (7, 7) r - assertRange (4, 0) (7, 7) t.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attributes should be included in recursive types`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -type Foo = - | Bar - -and [] Bang = - internal - { - LongNameBarBarBarBarBarBarBar: int - } - override GetHashCode : unit -> int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Types([ - SynTypeDefnSig.SynTypeDefnSig(range = r1) - SynTypeDefnSig.SynTypeDefnSig(range = r2) - ], mTypes)]) ])) -> - assertRange (4, 5) (5, 9) r1 - assertRange (7, 4) (12, 42) r2 - assertRange (4, 0) (12, 42) mTypes - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynValSpfn and Member`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -type FooType = - [] // ValSpfn - abstract x : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = - [ SynModuleSigDecl.Types(types = [ - SynTypeDefnSig.SynTypeDefnSig(typeRepr = - SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(range = mr; memberSig = SynValSig(range = mv)) ])) - ]) ]) ])) -> - assertRange (5, 4) (6, 20) mr - assertRange (5, 4) (6, 20) mv - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefnSig with ObjectModel Delegate contains the range of the equals sign`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace Foo - -type X = delegate of string -> string -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types( - types = [ SynTypeDefnSig(trivia = { EqualsRange = Some mEquals } - typeRepr = SynTypeDefnSigRepr.ObjectModel(kind = SynTypeDefnKind.Delegate _)) ] - ) - ]) ])) -> - assertRange (4, 7) (4, 8) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefnSig with ObjectModel class contains the range of the equals sign`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -type Foobar = - class - end -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types( - types = [ SynTypeDefnSig(trivia = { EqualsRange = Some mEquals } - typeRepr = SynTypeDefnSigRepr.ObjectModel(kind = SynTypeDefnKind.Class)) ] - ) - ]) ])) -> - assertRange (4, 12) (4, 13) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefnSig with Enum contains the range of the equals sign`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -type Bear = - | BlackBear = 1 - | PolarBear = 2 -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types( - types = [ SynTypeDefnSig(trivia = { EqualsRange = Some mEquals } - typeRepr = SynTypeDefnSigRepr.Simple(repr = - SynTypeDefnSimpleRepr.Enum(cases = [ - SynEnumCase(trivia={ EqualsRange = mEqualsEnumCase1 }) - SynEnumCase(trivia={ EqualsRange = mEqualsEnumCase2 }) - ]) )) ] - ) - ]) ])) -> - assertRange (4, 10) (4, 11) mEquals - assertRange (5, 16) (5, 17) mEqualsEnumCase1 - assertRange (6, 16) (6, 17) mEqualsEnumCase2 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefnSig with Union contains the range of the equals sign`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace SomeNamespace - -type Shape = -| Square of int -| Rectangle of int * int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types( - types = [ SynTypeDefnSig(trivia = { EqualsRange = Some mEquals } - typeRepr = SynTypeDefnSigRepr.Simple(repr = SynTypeDefnSimpleRepr.Union _)) ] - ) - ]) ])) -> - assertRange (4, 11) (4, 12) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefnSig should contains the range of the with keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -type Foo with -member Meh : unit -> unit -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents =[ SynModuleOrNamespaceSig(decls =[ - SynModuleSigDecl.Types( - types=[ SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.Simple _ - trivia = { WithKeyword = Some mWithKeyword }) ] - ) - ]) ])) -> - assertRange (4, 9) (4, 13) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynExceptionSig should contains the range of the with keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -exception Foo with -member Meh : unit -> unit -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Exception( - exnSig=SynExceptionSig(withKeyword = Some mWithKeyword) - ) - ]) ])) -> - assertRange (4, 14) (4, 18) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``memberSig of SynMemberSig.Member should contains the range of the with keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -namespace X - -type Foo = - abstract member Bar : int with get,set -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types( - types=[ SynTypeDefnSig(typeRepr=SynTypeDefnSigRepr.ObjectModel(memberSigs=[SynMemberSig.Member(memberSig=SynValSig(trivia = { WithKeyword = Some mWithKeyword }))])) ] - ) - ]) ])) -> - assertRange (5, 30) (5, 34) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynExceptionDefnRepr and SynExceptionSig`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module internal FSharp.Compiler.ParseHelpers - -// The error raised by the parse_error_rich function, which is called by the parser engine -[] -exception SyntaxError of obj * range: range - - -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Exception( - SynExceptionSig(exnRepr=SynExceptionDefnRepr(range=mSynExceptionDefnRepr); range=mSynExceptionSig), mException) - ] ) ])) -> - assertRange (5, 0) (6, 43) mSynExceptionDefnRepr - assertRange (5, 0) (6, 43) mSynExceptionSig - assertRange (5, 0) (6, 43) mException - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of members should be included in SynExceptionSig and SynModuleSigDecl.Exception`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module internal FSharp.Compiler.ParseHelpers - -exception SyntaxError of obj * range: range with - member Meh : string -> int - -open Foo -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Exception( - SynExceptionSig(exnRepr=SynExceptionDefnRepr(range=mSynExceptionDefnRepr); range=mSynExceptionSig), mException) - SynModuleSigDecl.Open _ - ] ) ])) -> - assertRange (4, 0) (4, 43) mSynExceptionDefnRepr - assertRange (4, 0) (5, 30) mSynExceptionSig - assertRange (4, 0) (5, 30) mException - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Val keyword is present in SynValSig`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -[] -// meh -val a : int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Val(valSig = SynValSig(trivia = { LeadingKeyword = SynLeadingKeyword.Val mVal })) - ] ) ])) -> - assertRange (6, 0) (6, 3) mVal - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Equals token is present in SynValSig value`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -val a : int = 9 -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Val(valSig = SynValSig(trivia = { EqualsRange = Some mEquals }); range = mVal) - ] ) ])) -> - assertRange (4, 12) (4, 13) mEquals - assertRange (4, 0) (4, 15) mVal - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Equals token is present in SynValSig member`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -type X = - member a : int = 10 -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(trivia = { EqualsRange = Some mEquals }); range = mMember) - ])) - ]) - ] ) ])) -> - assertRange (5, 19) (5, 20) mEquals - assertRange (5, 4) (5, 23) mMember - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Trivia is present in SynTypeDefnSig`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh - -type X = - member a : int = 10 - -/// Represents a line number when using zero-based line counting (used by Visual Studio) -#if CHECK_LINE0_TYPES - -#else -type Y = int -#endif - -type Z with - static member P : int -> int -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType1 - EqualsRange = Some mEq1 - WithKeyword = None }) ]) - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType2 - EqualsRange = Some mEq2 - WithKeyword = None }) ]) - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType3 - EqualsRange = None - WithKeyword = Some mWith3 }) ]) - ] ) ])) -> - () - assertRange (4, 0) (4, 4) mType1 - assertRange (4, 7) (4, 8) mEq1 - assertRange (11, 0) (11, 4) mType2 - assertRange (11, 7) (11, 8) mEq2 - assertRange (14, 0) (14, 4) mType3 - assertRange (14, 7) (14, 11) mWith3 - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynValSig contains parameter names`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -module Meh -val InferSynValData: - memberFlagsOpt: SynMemberFlags option * pat: SynPat option * SynReturnInfo option * origRhsExpr: SynExpr -> - x: string -> - SynValData2 -""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents=[ - SynModuleOrNamespaceSig(decls=[ - SynModuleSigDecl.Val(valSig = SynValSig(synType = - SynType.Fun( - argType = - SynType.Tuple(path = [ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some memberFlagsOpt)) - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some pat)) - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type(SynType.App _) - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some origRhsExpr)) - ]) - returnType = - SynType.Fun( - argType = SynType.SignatureParameter(id = Some x) - returnType = SynType.LongIdent _ - ) - ) - )) - ] ) ])) -> - Assert.AreEqual("memberFlagsOpt", memberFlagsOpt.idText) - Assert.AreEqual("pat", pat.idText) - Assert.AreEqual("origRhsExpr", origRhsExpr.idText) - Assert.AreEqual("x", x.idText) - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Leading keyword in recursive types`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -type A = obj -and B = int - """ - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType }) - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.And mAnd }) - ]) - ]) - ])) -> - assertRange (2, 0) (2, 4) mType - assertRange (3, 0) (3, 3) mAnd - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - - -[] -let ``Nested type has static type as leading keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -type A = - static type B = - class - end - """ - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel( - memberSigs = [ - SynMemberSig.NestedType(nestedType = - SynTypeDefnSig(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.StaticType(mStatic, mType) })) - ] - )) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 15) mType - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/SourceIdentifierTests.fs b/tests/service/SyntaxTreeTests/SourceIdentifierTests.fs deleted file mode 100644 index f7d96c3a7ea..00000000000 --- a/tests/service/SyntaxTreeTests/SourceIdentifierTests.fs +++ /dev/null @@ -1,48 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.SourceIdentifierTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - - -[] -let ``__LINE__`` () = - let parseResults = - getParseResults - """ -__LINE__""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Const(SynConst.SourceIdentifier("__LINE__", "2", range), _)) - ]) ])) -> - assertRange (2, 0) (2, 8) range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``__SOURCE_DIRECTORY__`` () = - let parseResults = - getParseResults - """ -__SOURCE_DIRECTORY__""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Const(SynConst.SourceIdentifier("__SOURCE_DIRECTORY__", _, range), _)) - ]) ])) -> - assertRange (2, 0) (2, 20) range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``__SOURCE_FILE__`` () = - let parseResults = - getParseResults - """ -__SOURCE_FILE__""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Expr(expr = SynExpr.Const(SynConst.SourceIdentifier("__SOURCE_FILE__", _, range), _)) - ]) ])) -> - assertRange (2, 0) (2, 15) range - | _ -> Assert.Fail "Could not get valid AST" diff --git a/tests/service/SyntaxTreeTests/StringTests.fs b/tests/service/SyntaxTreeTests/StringTests.fs deleted file mode 100644 index c562b2450a6..00000000000 --- a/tests/service/SyntaxTreeTests/StringTests.fs +++ /dev/null @@ -1,121 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.StringTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework -open FsUnit - -let private getBindingExpressionValue (parseResults: ParsedInput) = - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = modules)) -> - modules |> List.tryPick (fun (SynModuleOrNamespace (decls = decls)) -> - decls |> List.tryPick (fun decl -> - match decl with - | SynModuleDecl.Let (bindings = bindings) -> - bindings |> List.tryPick (fun binding -> - match binding with - | SynBinding.SynBinding (headPat=(SynPat.Named _|SynPat.As(_,SynPat.Named _,_)); expr=e) -> Some e - | _ -> None) - | _ -> None)) - | _ -> None - -let private getBindingConstValue parseResults = - match getBindingExpressionValue parseResults with - | Some (SynExpr.Const(c,_)) -> Some c - | _ -> None - -[] -let ``SynConst.String with SynStringKind.Regular`` () = - let parseResults = - getParseResults - """ -let s = "yo" -""" - - match getBindingConstValue parseResults with - | Some (SynConst.String (_, kind, _)) -> kind |> should equal SynStringKind.Regular - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynConst.String with SynStringKind.Verbatim`` () = - let parseResults = - getParseResults - """ -let s = @"yo" -""" - - match getBindingConstValue parseResults with - | Some (SynConst.String (_, kind, _)) -> kind |> should equal SynStringKind.Verbatim - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynConst.String with SynStringKind.TripleQuote`` () = - let parseResults = - getParseResults - " -let s = \"\"\"yo\"\"\" -" - - match getBindingConstValue parseResults with - | Some (SynConst.String (_, kind, _)) -> kind |> should equal SynStringKind.TripleQuote - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynConst.Bytes with SynByteStringKind.Regular`` () = - let parseResults = - getParseResults - """ -let bytes = "yo"B -""" - - match getBindingConstValue parseResults with - | Some (SynConst.Bytes (_, kind, _)) -> kind |> should equal SynByteStringKind.Regular - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynConst.Bytes with SynByteStringKind.Verbatim`` () = - let parseResults = - getParseResults - """ -let bytes = @"yo"B -""" - - match getBindingConstValue parseResults with - | Some (SynConst.Bytes (_, kind, _)) -> kind |> should equal SynByteStringKind.Verbatim - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynExpr.InterpolatedString with SynStringKind.TripleQuote`` () = - let parseResults = - getParseResults - " -let s = $\"\"\"yo {42}\"\"\" -" - - match getBindingExpressionValue parseResults with - | Some (SynExpr.InterpolatedString(_, kind, _)) -> kind |> should equal SynStringKind.TripleQuote - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynExpr.InterpolatedString with SynStringKind.Regular`` () = - let parseResults = - getParseResults - """ -let s = $"yo {42}" -""" - - match getBindingExpressionValue parseResults with - | Some (SynExpr.InterpolatedString(_, kind, _)) -> kind |> should equal SynStringKind.Regular - | _ -> Assert.Fail "Couldn't find const" - -[] -let ``SynExpr.InterpolatedString with SynStringKind.Verbatim`` () = - let parseResults = - getParseResults - """ -let s = $@"Migrate notes of file ""{oldId}"" to new file ""{newId}""." -""" - - match getBindingExpressionValue parseResults with - | Some (SynExpr.InterpolatedString(_, kind, _)) -> kind |> should equal SynStringKind.Verbatim - | _ -> Assert.Fail "Couldn't find const" diff --git a/tests/service/SyntaxTreeTests/SynIdentTests.fs b/tests/service/SyntaxTreeTests/SynIdentTests.fs deleted file mode 100644 index aa16871a609..00000000000 --- a/tests/service/SyntaxTreeTests/SynIdentTests.fs +++ /dev/null @@ -1,31 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.SynIdentTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.Text -open NUnit.Framework - -[] -let ``Incomplete long ident`` () = - let ast = - """ -module Module - -A. -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = - [ SynModuleDecl.Expr(expr = SynExpr.LongIdent (longDotId = lid)) ]) ])) -> - Assert.AreEqual(1, lid.IdentsWithTrivia.Length) - | _ -> Assert.Fail $"Could not get valid AST, got {ast}" - -[] -let ``IdentsWithTrivia with unbalance collection should not throw`` () = - let synLongIdent = - SynLongIdent([ Ident("A", Range.Zero); Ident("B", Range.Zero) ], [ Range.Zero ], [ None ]) - - match synLongIdent.IdentsWithTrivia with - | [ SynIdent (_, None); SynIdent (_, None) ] -> Assert.Pass() - | identsWithTrivia -> Assert.Fail $"Unexpected identsWithTrivia, got {identsWithTrivia}" diff --git a/tests/service/SyntaxTreeTests/SynTypeTests.fs b/tests/service/SyntaxTreeTests/SynTypeTests.fs deleted file mode 100644 index 7f18521a995..00000000000 --- a/tests/service/SyntaxTreeTests/SynTypeTests.fs +++ /dev/null @@ -1,207 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.SynTypeTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``SynType.Tuple does include leading parameter name`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -type T = - member M: p1: a * p2: b -> int - """ - - match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(synType = - SynType.Fun(argType = SynType.Tuple(_, _, mTuple)))) - ])) - ]) - ]) - ])) -> - assertRange (3, 14) (3, 27) mTuple - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Tuple does include leading parameter attributes`` () = - let parseResults = - getParseResultsOfSignatureFile - """ -type T = - member M: [] a * [] b -> int - """ - - match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(contents = [ - SynModuleOrNamespaceSig(decls = [ - SynModuleSigDecl.Types(types = [ - SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ - SynMemberSig.Member(memberSig = SynValSig(synType = - SynType.Fun(argType = SynType.Tuple(_, _, mTuple)))) - ])) - ]) - ]) - ])) -> - assertRange (3, 14) (3, 56) mTuple - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Or inside SynExpr.TraitCall`` () = - let parseResults = - getParseResults - """ -let inline (!!) (x: ^a) : ^b = ((^a or ^b): (static member op_Implicit: ^a -> ^b) x) - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = - SynExpr.Typed(expr = - SynExpr.Paren(expr = - SynExpr.TraitCall(supportTys = - SynType.Paren( - SynType.Or( - SynType.Var(range = mVar1), - SynType.Var(range = mVar2), - mOrType, - { OrKeyword = mOrWord }), - mParen)) - ))) - ]) ]) ])) -> - assertRange (2, 33) (2, 35) mVar1 - assertRange (2, 36) (2, 38) mOrWord - assertRange (2, 39) (2, 41) mVar2 - assertRange (2, 33) (2, 41) mOrType - assertRange (2, 32) (2, 42) mParen - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Or inside SynTypeConstraint.WhereTyparSupportsMember`` () = - let parseResults = - getParseResults - """ -let inline f_StaticMethod<'T1, 'T2 when ('T1 or 'T2) : (static member StaticMethod: int -> int) >() : int = - () - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(headPat = - SynPat.LongIdent(typarDecls = Some (SynValTyparDecls(typars = Some (SynTyparDecls.PostfixList(constraints = [ - SynTypeConstraint.WhereTyparSupportsMember(typars = SynType.Paren( - SynType.Or( - SynType.Var(range = mVar1), - SynType.Var(range = mVar2), - mOrType, - { OrKeyword = mOrWord }), - mParen - )) - ])))))) - ]) ]) ])) -> - assertRange (2, 41) (2, 44) mVar1 - assertRange (2, 45) (2, 47) mOrWord - assertRange (2, 48) (2, 51) mVar2 - assertRange (2, 41) (2, 51) mOrType - assertRange (2, 40) (2, 52) mParen - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Nested SynType.Or inside SynExpr.TraitCall`` () = - let parseResults = - getParseResults - """ -let inline (!!) (x: ^a * ^b) : ^c = ((^a or ^b or ^c): (static member op_Implicit: ^a * ^b -> ^c) x) - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = - SynExpr.Typed(expr = - SynExpr.Paren(expr = - SynExpr.TraitCall(supportTys = - SynType.Paren( - SynType.Or( - SynType.Or( - SynType.Var(range = mVarA), - SynType.Var(range = mVarB), - mOrType1, - { OrKeyword = mOrWord1 } - ), - SynType.Var(range = mVarC), - mOrType2, - { OrKeyword = mOrWord2 }), - mParen)) - ))) - ]) ]) ])) -> - assertRange (2, 38) (2, 40) mVarA - assertRange (2, 41) (2, 43) mOrWord1 - assertRange (2, 44) (2, 46) mVarB - assertRange (2, 38) (2, 46) mOrType1 - assertRange (2, 47) (2, 49) mOrWord2 - assertRange (2, 50) (2, 52) mVarC - assertRange (2, 38) (2, 52) mOrType2 - assertRange (2, 37) (2, 53) mParen - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Single SynType inside SynExpr.TraitCall`` () = - let parseResults = - getParseResults - """ -type X = - static member inline replace< ^a, ^b, ^c when ^b: (static member replace: ^a * ^b -> ^c)>(a: ^a, f: ^b) = - (^b : (static member replace: ^a * ^b -> ^c) (a, f)) - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members = [ - SynMemberDefn.Member(memberDefn = - SynBinding(expr = - SynExpr.Paren(expr = - SynExpr.TraitCall(supportTys = - SynType.Var(range = mVar)) - ))) - ])) - ]) ]) ])) -> - assertRange (4, 9) (4, 11) mVar - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Or with appType on the right hand side`` () = - let parseResults = - getParseResults - """ -let inline f (x: 'T) = ((^T or int) : (static member A: int) ()) - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ - SynBinding(expr = - SynExpr.Paren(expr = - SynExpr.TraitCall(supportTys = - SynType.Paren( - SynType.Or( - SynType.Var(range = mVar), - (SynType.LongIdent _ as appType), - mOrType, - { OrKeyword = mOrWord }), - mParen)) - )) - ]) ]) ])) -> - assertRange (2, 25) (2,27) mVar - assertRange (2, 28) (2, 30) mOrWord - assertRange (2, 31) (2, 34) appType.Range - assertRange (2,25) (2, 34) mOrType - assertRange (2,24) (2, 35) mParen - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/TypeTests.fs b/tests/service/SyntaxTreeTests/TypeTests.fs deleted file mode 100644 index 37fe10678fc..00000000000 --- a/tests/service/SyntaxTreeTests/TypeTests.fs +++ /dev/null @@ -1,432 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.TypeTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``Single SynEnumCase contains range of constant`` () = - let parseResults = - getParseResults - """ -type Foo = One = 0x00000001 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn.SynTypeDefn(typeRepr = - SynTypeDefnRepr.Simple(simpleRepr = SynTypeDefnSimpleRepr.Enum(cases = [ SynEnumCase.SynEnumCase(valueExpr = e) ])))]) - ]) ])) -> - assertRange (2, 17) (2, 27) e.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Multiple SynEnumCase contains range of constant`` () = - let parseResults = - getParseResults - """ -type Foo = - | One = 0x00000001 - | Two = 2 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn.SynTypeDefn(typeRepr = - SynTypeDefnRepr.Simple(simpleRepr = SynTypeDefnSimpleRepr.Enum(cases = [ SynEnumCase.SynEnumCase(valueExpr = e1) - SynEnumCase.SynEnumCase(valueExpr = e2) ])))]) - ]) ])) -> - assertRange (3, 13) (3, 23) e1.Range - assertRange (4, 12) (4, 13) e2.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attribute should be included in SynTypeDefn`` () = - let parseResults = - getParseResults - """ -[] -type Bar = - class - end""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [t]) as types - ]) ])) -> - assertRange (2, 0) (5, 7) types.Range - assertRange (2, 0) (5, 7) t.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``Range of attributes should be included in recursive types`` () = - let parseResults = - getParseResults - """ -[] -type Foo<'context, 'a> = - | Apply of ApplyCrate<'context, 'a> - -and [] Bar<'context, 'a> = - internal { - Hash : int - Foo : Foo<'a, 'b> - }""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [t1;t2]) as types - ]) ])) -> - assertRange (2, 0) (10, 5) types.Range - assertRange (2, 0) (4, 39) t1.Range - assertRange (6, 4) (10, 5) t2.Range - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with ObjectModel Delegate contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -type X = delegate of string -> string -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(kind = SynTypeDefnKind.Delegate _) - trivia={ EqualsRange = Some mEquals }) ] - ) - ]) ])) -> - assertRange (2, 7) (2, 8) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with ObjectModel class contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -type Foobar () = - class - end -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(kind = SynTypeDefnKind.Class) - trivia={ EqualsRange = Some mEquals }) ] - ) - ]) ])) -> - assertRange (2, 15) (2, 16) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with Enum contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -type Bear = - | BlackBear = 1 - | PolarBear = 2 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.Enum(cases = [ - SynEnumCase(trivia={ EqualsRange = mEqualsEnumCase1 }) - SynEnumCase(trivia={ EqualsRange = mEqualsEnumCase2 }) - ])) - trivia={ EqualsRange = Some mEquals }) ] - ) - ]) ])) -> - assertRange (2, 10) (2, 11) mEquals - assertRange (3, 16) (3, 17) mEqualsEnumCase1 - assertRange (4, 16) (4, 17) mEqualsEnumCase2 - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with Union contains the range of the equals sign`` () = - let parseResults = - getParseResults - """ -type Shape = - | Square of int - | Rectangle of int * int -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.Simple(simpleRepr = SynTypeDefnSimpleRepr.Union _) - trivia={ EqualsRange = Some mEquals }) ] - ) - ]) ])) -> - assertRange (2, 11) (2, 12) mEquals - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with Record contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo = - { Bar : int } - with - member this.Meh (v:int) = this.Bar + v -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr=SynTypeDefnRepr.Simple(simpleRepr= SynTypeDefnSimpleRepr.Record _) - trivia={ WithKeyword = Some mWithKeyword }) ] - ) - ]) ])) -> - assertRange (4, 4) (4, 8) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with Augmentation contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Int32 with - member _.Zero = 0 -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(kind=SynTypeDefnKind.Augmentation mWithKeyword)) ] - ) - ]) ])) -> - assertRange (2, 11) (2, 15) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynMemberDefn.Interface contains the range of the with keyword`` () = - let parseResults = - getParseResults - """ -type Foo() = - interface Bar with - member Meh () = () - interface Other -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(members=[ SynMemberDefn.ImplicitCtor _ - SynMemberDefn.Interface(withKeyword=Some mWithKeyword) - SynMemberDefn.Interface(withKeyword=None) ])) ] - ) - ]) ])) -> - assertRange (3, 18) (3, 22) mWithKeyword - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynTypeDefn with XmlDoc contains the range of the type keyword`` () = - let parseResults = - getParseResults - """ -/// Doc -// noDoc -type A = B -and C = D -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(trivia={ LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType }) - SynTypeDefn(trivia={ LeadingKeyword = SynTypeDefnLeadingKeyword.And mAnd }) ] - ) - ]) ])) -> - assertRange (4, 0) (4, 4) mType - assertRange (5, 0) (5, 3) mAnd - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynTypeDefn with attribute contains the range of the type keyword`` () = - let parseResults = - getParseResults - """ -[] -// noDoc -type A = B -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput (contents = [ SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types( - typeDefns = [ SynTypeDefn(trivia={ LeadingKeyword = SynTypeDefnLeadingKeyword.Type mType }) ] - ) - ]) ])) -> - assertRange (4, 0) (4, 4) mType - | _ -> Assert.Fail "Could not get valid AST" - -[] -let ``SynType.Fun has range of arrow`` () = - let parseResults = - getParseResults - """ - type X = string -> // after a tuple, mixed needs an indent - int - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.TypeAbbrev(rhsType = - SynType.Fun(trivia = { ArrowRange = mArrow })))) - ]) - ]) - ])) -> - assertRange (2, 21) (2, 23) mArrow - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Tuple with struct`` () = - let parseResults = - getParseResults - """ -let _: struct (int * int) = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ SynBinding(returnInfo = Some (SynBindingReturnInfo(typeName = - SynType.Tuple(true, [ SynTupleTypeSegment.Type _ ; SynTupleTypeSegment.Star _ ; SynTupleTypeSegment.Type _ ], mTuple)))) ]) - ]) - ]) - ) -> - assertRange (2, 7) (2, 25) mTuple - - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``SynType.Tuple with struct, recovery`` () = - let parseResults = - getParseResults - """ -let _: struct (int * int = () -""" - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Let(bindings = [ SynBinding(returnInfo = Some (SynBindingReturnInfo(typeName = - SynType.Tuple(true, [ SynTupleTypeSegment.Type _ ; SynTupleTypeSegment.Star _ ; SynTupleTypeSegment.Type _ ], mTuple)))) ]) - ]) - ]) - ) -> - assertRange (2, 7) (2, 24) mTuple - - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Named parameters in delegate type`` () = - let parseResults = - getParseResults - """ -type Foo = delegate of a: A * b: B -> c:C -> D - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel(kind = - SynTypeDefnKind.Delegate(signature = SynType.Fun( - argType = - SynType.Tuple(path = [ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some a)) - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some b)) - ]) - returnType = - SynType.Fun( - argType = SynType.SignatureParameter(id = Some c) - returnType = SynType.LongIdent _ - ) - )))) - ]) - ]) - ])) -> - Assert.AreEqual("a", a.idText) - Assert.AreEqual("b", b.idText) - Assert.AreEqual("c", c.idText) - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Attributes in optional named member parameter`` () = - let parseResults = - getParseResults - """ -type X = - abstract member Y: [] ?a: A -> B - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel( - members = [ - SynMemberDefn.AbstractSlot(slotSig = SynValSig(synType = - SynType.Fun( - argType = SynType.SignatureParameter( - [ { Attributes = [ _ ; _ ] } ], - true, - Some a, - SynType.LongIdent _, - m - ) - returnType = SynType.LongIdent _ - ) - )) - ] - )) - ]) - ]) - ])) -> - Assert.AreEqual("a", a.idText) - assertRange (3, 23) (3, 41) m - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" - -[] -let ``Nested type has static type as leading keyword`` () = - let parseResults = - getParseResults - """ -type A = - static type B = - class - end - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.ObjectModel( - members = [ - SynMemberDefn.NestedType(typeDefn = - SynTypeDefn(trivia = { LeadingKeyword = SynTypeDefnLeadingKeyword.StaticType(mStatic, mType) })) - ] - )) - ]) - ]) - ])) -> - assertRange (3, 4) (3, 10) mStatic - assertRange (3, 11) (3, 15) mType - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" diff --git a/tests/service/SyntaxTreeTests/UnionCaseTests.fs b/tests/service/SyntaxTreeTests/UnionCaseTests.fs deleted file mode 100644 index c40a3ecc232..00000000000 --- a/tests/service/SyntaxTreeTests/UnionCaseTests.fs +++ /dev/null @@ -1,165 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.UnionCaseTestsTests - -open System -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open NUnit.Framework - -[] -let ``Union Case fields can have comments`` () = - let ast = """ -type Foo = -/// docs for Thing -| Thing of - /// docs for first - first: string * - /// docs for anon field - bool -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Union(unionCases = [ - SynUnionCase.SynUnionCase (caseType = SynUnionCaseKind.Fields [ - SynField.SynField(xmlDoc = firstXml) - SynField.SynField(xmlDoc = anonXml) - ]) - ]))) - ], _) - ]) - ])) -> - let firstDocs = firstXml.ToXmlDoc(false, None).GetXmlText() - let anonDocs = anonXml.ToXmlDoc(false, None).GetXmlText() - - let nl = Environment.NewLine - - Assert.AreEqual($"{nl} docs for first{nl}", firstDocs) - Assert.AreEqual($"{nl} docs for anon field{nl}", anonDocs) - - | _ -> - failwith "Could not find SynExpr.Do" - -[] -let ``single SynUnionCase has bar range`` () = - let ast = """ -type Foo = | Bar of string -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Union(unionCases = [ - SynUnionCase.SynUnionCase (trivia = { BarRange = Some mBar }) - ]))) - ], _) - ]) - ])) -> - assertRange (2, 11) (2, 12) mBar - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``multiple SynUnionCases have bar range`` () = - let ast = """ -type Foo = - | Bar of string - | Bear of int -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Union(unionCases = [ - SynUnionCase.SynUnionCase (trivia = { BarRange = Some mBar1 }) - SynUnionCase.SynUnionCase (trivia = { BarRange = Some mBar2 }) - ]))) - ], _) - ]) - ])) -> - assertRange (3, 4) (3, 5) mBar1 - assertRange (4, 4) (4, 5) mBar2 - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``single SynUnionCase without bar`` () = - let ast = """ -type Foo = Bar of string -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Union(unionCases = [ - SynUnionCase.SynUnionCase (trivia = { BarRange = None }) - ]))) - ], _) - ]) - ])) -> - Assert.Pass() - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``private keyword has range`` () = - let ast = """ -type Currency = - // Temporary fix until a new Thoth.Json.Net package is released - // See https://github.com/MangelMaxime/Thoth/pull/70 - -#if !FABLE_COMPILER - private -#endif - | Code of string -""" - |> getParseResults - - match ast with - | ParsedInput.ImplFile(ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types ([ - SynTypeDefn.SynTypeDefn (typeRepr = SynTypeDefnRepr.Simple (simpleRepr = SynTypeDefnSimpleRepr.Union( - accessibility = Some (SynAccess.Private mPrivate) - unionCases = [ SynUnionCase.SynUnionCase _ ]))) - ], _) - ]) - ])) -> - assertRange (7, 4) (7, 11) mPrivate - | _ -> - Assert.Fail "Could not get valid AST" - -[] -let ``SynUnionCaseKind.FullType`` () = - let parseResults = - getParseResults - """ -type X = - | a: int * z:int - """ - - match parseResults with - | ParsedInput.ImplFile (ParsedImplFileInput(contents = [ - SynModuleOrNamespace.SynModuleOrNamespace(decls = [ - SynModuleDecl.Types(typeDefns = [ - SynTypeDefn(typeRepr = SynTypeDefnRepr.Simple(simpleRepr = - SynTypeDefnSimpleRepr.Union(unionCases = [ - SynUnionCase(caseType = SynUnionCaseKind.FullType(fullType = SynType.Tuple(path = [ - SynTupleTypeSegment.Type(SynType.LongIdent _) - SynTupleTypeSegment.Star _ - SynTupleTypeSegment.Type(SynType.SignatureParameter(id = Some z)) - ]))) - ]))) - ]) - ]) - ])) -> - Assert.AreEqual("z", z.idText) - | _ -> Assert.Fail $"Could not get valid AST, got {parseResults}" \ No newline at end of file diff --git a/tests/service/SyntaxTreeTests/ValTests.fs b/tests/service/SyntaxTreeTests/ValTests.fs deleted file mode 100644 index c14415bad6e..00000000000 --- a/tests/service/SyntaxTreeTests/ValTests.fs +++ /dev/null @@ -1,20 +0,0 @@ -module FSharp.Compiler.Service.Tests.SyntaxTreeTests.ValTests - -open FSharp.Compiler.Service.Tests.Common -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open NUnit.Framework - -[] -let ``Inline keyword`` () = - let parseResults = - getParseResultsOfSignatureFile - """namespace X - -val inline meh: int -> int""" - - match parseResults with - | ParsedInput.SigFile (ParsedSigFileInput (contents = [ - SynModuleOrNamespaceSig(decls = [SynModuleSigDecl.Val(valSig = SynValSig(trivia = { InlineKeyword = Some mInline }))]) ])) -> - assertRange (3, 4) (3,10) mInline - | ast -> Assert.Fail $"Could not get valid AST, got {ast}" diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs new file mode 100644 index 00000000000..f69eaad8c30 --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs @@ -0,0 +1,3 @@ + +[] +do () diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl new file mode 100644 index 00000000000..eb73fdb1da6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/Attribute/RangeOfAttribute.fs", false, + QualifiedNameOfFile RangeOfAttribute, [], [], + [SynModuleOrNamespace + ([RangeOfAttribute], false, AnonModule, + [Attributes + ([{ Attributes = + [{ TypeName = SynLongIdent ([MyAttribute], [], [None]) + ArgExpr = + Paren + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/Attribute/RangeOfAttribute.fs (2,18--2,19)), + Ident foo, + /root/Attribute/RangeOfAttribute.fs (2,14--2,19)), + Const + (String + ("bar", Regular, + /root/Attribute/RangeOfAttribute.fs (2,19--2,24)), + /root/Attribute/RangeOfAttribute.fs (2,19--2,24)), + /root/Attribute/RangeOfAttribute.fs (2,14--2,24)), + /root/Attribute/RangeOfAttribute.fs (2,13--2,14), + Some /root/Attribute/RangeOfAttribute.fs (2,24--2,25), + /root/Attribute/RangeOfAttribute.fs (2,13--2,25)) + Target = None + AppliesToGetterAndSetter = false + Range = /root/Attribute/RangeOfAttribute.fs (2,2--2,25) }] + Range = /root/Attribute/RangeOfAttribute.fs (2,0--2,27) }], + /root/Attribute/RangeOfAttribute.fs (2,0--2,27)); + Expr + (Do + (Const (Unit, /root/Attribute/RangeOfAttribute.fs (3,3--3,5)), + /root/Attribute/RangeOfAttribute.fs (3,0--3,5)), + /root/Attribute/RangeOfAttribute.fs (3,0--3,5))], PreXmlDocEmpty, + [], None, /root/Attribute/RangeOfAttribute.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs new file mode 100644 index 00000000000..28f76cbf663 --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs @@ -0,0 +1,3 @@ + +[] +do () diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl new file mode 100644 index 00000000000..21ced8decad --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl @@ -0,0 +1,54 @@ +ImplFile + (ParsedImplFileInput + ("/root/Attribute/RangeOfAttributeWithPath.fs", false, + QualifiedNameOfFile RangeOfAttributeWithPath, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeWithPath], false, AnonModule, + [Attributes + ([{ Attributes = + [{ TypeName = + SynLongIdent + ([Prefix; MyAttribute], + [/root/Attribute/RangeOfAttributeWithPath.fs (2,8--2,9)], + [None; None]) + ArgExpr = + Paren + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/Attribute/RangeOfAttributeWithPath.fs (2,25--2,26)), + Ident foo, + /root/Attribute/RangeOfAttributeWithPath.fs (2,21--2,26)), + Const + (String + ("bar", Regular, + /root/Attribute/RangeOfAttributeWithPath.fs (2,26--2,31)), + /root/Attribute/RangeOfAttributeWithPath.fs (2,26--2,31)), + /root/Attribute/RangeOfAttributeWithPath.fs (2,21--2,31)), + /root/Attribute/RangeOfAttributeWithPath.fs (2,20--2,21), + Some + /root/Attribute/RangeOfAttributeWithPath.fs (2,31--2,32), + /root/Attribute/RangeOfAttributeWithPath.fs (2,20--2,32)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Attribute/RangeOfAttributeWithPath.fs (2,2--2,32) }] + Range = /root/Attribute/RangeOfAttributeWithPath.fs (2,0--2,34) }], + /root/Attribute/RangeOfAttributeWithPath.fs (2,0--2,34)); + Expr + (Do + (Const + (Unit, /root/Attribute/RangeOfAttributeWithPath.fs (3,3--3,5)), + /root/Attribute/RangeOfAttributeWithPath.fs (3,0--3,5)), + /root/Attribute/RangeOfAttributeWithPath.fs (3,0--3,5))], + PreXmlDocEmpty, [], None, + /root/Attribute/RangeOfAttributeWithPath.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs new file mode 100644 index 00000000000..1f4386b43e6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs @@ -0,0 +1,3 @@ + +[] +do () diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl new file mode 100644 index 00000000000..cb57f201b5d --- /dev/null +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/Attribute/RangeOfAttributeWithTarget.fs", false, + QualifiedNameOfFile RangeOfAttributeWithTarget, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeWithTarget], false, AnonModule, + [Attributes + ([{ Attributes = + [{ TypeName = SynLongIdent ([MyAttribute], [], [None]) + ArgExpr = + Paren + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/Attribute/RangeOfAttributeWithTarget.fs (2,28--2,29)), + Ident foo, + /root/Attribute/RangeOfAttributeWithTarget.fs (2,24--2,29)), + Const + (String + ("bar", Regular, + /root/Attribute/RangeOfAttributeWithTarget.fs (2,29--2,34)), + /root/Attribute/RangeOfAttributeWithTarget.fs (2,29--2,34)), + /root/Attribute/RangeOfAttributeWithTarget.fs (2,24--2,34)), + /root/Attribute/RangeOfAttributeWithTarget.fs (2,23--2,24), + Some + /root/Attribute/RangeOfAttributeWithTarget.fs (2,34--2,35), + /root/Attribute/RangeOfAttributeWithTarget.fs (2,23--2,35)) + Target = Some assembly + AppliesToGetterAndSetter = false + Range = + /root/Attribute/RangeOfAttributeWithTarget.fs (2,2--2,35) }] + Range = + /root/Attribute/RangeOfAttributeWithTarget.fs (2,0--2,37) }], + /root/Attribute/RangeOfAttributeWithTarget.fs (2,0--2,37)); + Expr + (Do + (Const + (Unit, + /root/Attribute/RangeOfAttributeWithTarget.fs (3,3--3,5)), + /root/Attribute/RangeOfAttributeWithTarget.fs (3,0--3,5)), + /root/Attribute/RangeOfAttributeWithTarget.fs (3,0--3,5))], + PreXmlDocEmpty, [], None, + /root/Attribute/RangeOfAttributeWithTarget.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs new file mode 100644 index 00000000000..f1f03b7e6da --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs @@ -0,0 +1,2 @@ + +let x y : int = failwith "todo" diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl new file mode 100644 index 00000000000..efad6f4bc28 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs", false, + QualifiedNameOfFile ColonBeforeReturnTypeIsPartOfTrivia, [], [], + [SynModuleOrNamespace + ([ColonBeforeReturnTypeIsPartOfTrivia], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some y)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([x], [], [None]), None, None, + Pats + [Named + (SynIdent (y, None), false, None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,6--2,7))], + None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,4--2,7)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,10--2,13), + [], + { ColonRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,8--2,9) })), + Typed + (App + (NonAtomic, false, Ident failwith, + Const + (String + ("todo", Regular, + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,25--2,31)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,25--2,31)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,16--2,31)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,16--2,31)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,4--2,7), + NoneAtLet, + { LeadingKeyword = + Let + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,14--2,15) })], + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,0--2,31))], + PreXmlDocEmpty, [], None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs new file mode 100644 index 00000000000..ebc75404851 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs @@ -0,0 +1,3 @@ + +type X = + member this.Y with get():int = 1 and set (_:int):unit = () diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl new file mode 100644 index 00000000000..86744b0eb6d --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl @@ -0,0 +1,156 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs", false, + QualifiedNameOfFile ColonBeforeReturnTypeIsPartOfTriviaInProperties, [], + [], + [SynModuleOrNamespace + ([ColonBeforeReturnTypeIsPartOfTriviaInProperties], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,15--3,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,26--3,28)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,26--3,28))], + None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,23--3,28)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([int], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,29--3,32), + [], + { ColonRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,28--3,29) })), + Typed + (Const + (Int32 1, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,35--3,36)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,35--3,36)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,23--3,28), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,33--3,34) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,15--3,16)], + [None; None]), Some set, None, + Pats + [Paren + (Typed + (Wild + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,46--3,47), + LongIdent + (SynLongIdent ([int], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,46--3,51)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,45--3,52))], + None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,41--3,52)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([unit], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,53--3,57), + [], + { ColonRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,52--3,53) })), + Typed + (Const + (Unit, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,60--3,62)), + LongIdent (SynLongIdent ([unit], [], [None])), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,60--3,62)), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,41--3,52), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,58--3,59) })), + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,4--3,62), + { InlineKeyword = None + WithKeyword = + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,18--3,22) + GetKeyword = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,23--3,26) + AndKeyword = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,37--3,40) + SetKeyword = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,41--3,44) })], + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (3,4--3,62)), + [], None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,5--3,62), + { LeadingKeyword = + Type + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,7--2,8) + WithKeyword = None })], + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,0--3,62))], + PreXmlDocEmpty, [], None, + /root/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs new file mode 100644 index 00000000000..082d522fe2b --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs @@ -0,0 +1,6 @@ + +let +#if !FOO + inline +#endif + map f ar = Async.map (Result.map f) ar diff --git a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl new file mode 100644 index 00000000000..9bb54c823c3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl @@ -0,0 +1,81 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/ConditionalDirectiveAroundInlineKeyword.fs", false, + QualifiedNameOfFile ConditionalDirectiveAroundInlineKeyword, [], [], + [SynModuleOrNamespace + ([ConditionalDirectiveAroundInlineKeyword], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some f)]; + [SynArgInfo ([], false, Some ar)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([map], [], [None]), None, None, + Pats + [Named + (SynIdent (f, None), false, None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,8--6,9)); + Named + (SynIdent (ar, None), false, None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,10--6,12))], + None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,4--6,12)), + None, + App + (NonAtomic, false, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([Async; map], + [/root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,20--6,21)], + [None; None]), None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,15--6,24)), + Paren + (App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([Result; map], + [/root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,32--6,33)], + [None; None]), None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,26--6,36)), + Ident f, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,26--6,38)), + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,25--6,26), + Some + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,38--6,39), + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,25--6,39)), + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,15--6,39)), + Ident ar, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,15--6,42)), + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,4--6,12), + NoneAtLet, + { LeadingKeyword = + Let + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (2,0--2,3) + InlineKeyword = + Some + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (4,4--4,10) + EqualsRange = + Some + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (6,13--6,14) })], + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (2,0--6,42))], + PreXmlDocEmpty, [], None, + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Not (Ident "FOO"), + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (3,0--3,8)); + EndIf + /root/Binding/ConditionalDirectiveAroundInlineKeyword.fs (5,0--5,6)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs new file mode 100644 index 00000000000..449f25de54d --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs @@ -0,0 +1,4 @@ + +let inline x y z = + let inline a b c = () + () diff --git a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl new file mode 100644 index 00000000000..d9bc891e4ec --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl @@ -0,0 +1,83 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/InlineKeywordInBinding.fs", false, + QualifiedNameOfFile InlineKeywordInBinding, [], [], + [SynModuleOrNamespace + ([InlineKeywordInBinding], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some y)]; + [SynArgInfo ([], false, Some z)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([x], [], [None]), None, None, + Pats + [Named + (SynIdent (y, None), false, None, + /root/Binding/InlineKeywordInBinding.fs (2,13--2,14)); + Named + (SynIdent (z, None), false, None, + /root/Binding/InlineKeywordInBinding.fs (2,15--2,16))], + None, /root/Binding/InlineKeywordInBinding.fs (2,11--2,16)), + None, + LetOrUse + (false, false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some b)]; + [SynArgInfo ([], false, Some c)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([a], [], [None]), None, None, + Pats + [Named + (SynIdent (b, None), false, None, + /root/Binding/InlineKeywordInBinding.fs (3,17--3,18)); + Named + (SynIdent (c, None), false, None, + /root/Binding/InlineKeywordInBinding.fs (3,19--3,20))], + None, + /root/Binding/InlineKeywordInBinding.fs (3,15--3,20)), + None, + Const + (Unit, + /root/Binding/InlineKeywordInBinding.fs (3,23--3,25)), + /root/Binding/InlineKeywordInBinding.fs (3,15--3,20), + NoneAtLet, + { LeadingKeyword = + Let + /root/Binding/InlineKeywordInBinding.fs (3,4--3,7) + InlineKeyword = + Some + /root/Binding/InlineKeywordInBinding.fs (3,8--3,14) + EqualsRange = + Some + /root/Binding/InlineKeywordInBinding.fs (3,21--3,22) })], + Const + (Unit, /root/Binding/InlineKeywordInBinding.fs (4,4--4,6)), + /root/Binding/InlineKeywordInBinding.fs (3,4--4,6), + { InKeyword = None }), + /root/Binding/InlineKeywordInBinding.fs (2,11--2,16), + NoneAtLet, + { LeadingKeyword = + Let /root/Binding/InlineKeywordInBinding.fs (2,0--2,3) + InlineKeyword = + Some /root/Binding/InlineKeywordInBinding.fs (2,4--2,10) + EqualsRange = + Some /root/Binding/InlineKeywordInBinding.fs (2,17--2,18) })], + /root/Binding/InlineKeywordInBinding.fs (2,0--4,6))], + PreXmlDocEmpty, [], None, + /root/Binding/InlineKeywordInBinding.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs new file mode 100644 index 00000000000..e43b84670d7 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs @@ -0,0 +1,2 @@ + +let [] (A x) = 1 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl new file mode 100644 index 00000000000..440cc195a98 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -0,0 +1,59 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs", + false, + QualifiedNameOfFile + RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet, + [], [], + [SynModuleOrNamespace + ([RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet], + false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Literal], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,6--2,13)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,6--2,13) }] + Range = + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,4--2,15) }], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Paren + (LongIdent + (SynLongIdent ([A], [], [None]), None, None, + Pats + [Named + (SynIdent (x, None), false, None, + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,19--2,20))], + None, + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,17--2,20)), + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,16--2,21)), + None, + Const + (Int32 1, + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,24--2,25)), + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,4--2,21), + Yes + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,0--2,25), + { LeadingKeyword = + Let + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,22--2,23) })], + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,0--2,25))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs new file mode 100644 index 00000000000..9bb4ca905fe --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs @@ -0,0 +1,4 @@ + +{ new System.Object() with + [] + member x.ToString() = "F#" } diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl new file mode 100644 index 00000000000..1d3357fe6a3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl @@ -0,0 +1,88 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr], false, + AnonModule, + [Expr + (ObjExpr + (LongIdent + (SynLongIdent + ([System; Object], + [/root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,12--2,13)], + [None; None])), + Some + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,19--2,21)), + None), + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,22--2,26), + [], + [Member + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (3,4--3,11) }], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; ToString], + [/root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,12--4,13)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,21--4,23)), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,21--4,23))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,11--4,23)), + None, + Const + (String + ("F#", Regular, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,26--4,30)), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,26--4,30)), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (3,4--4,23), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (4,24--4,25) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (3,4--4,30))], + [], + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,2--2,21), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,0--4,32)), + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,0--4,32))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs (2,0--4,32), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs new file mode 100644 index 00000000000..3341a1f8535 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs @@ -0,0 +1,4 @@ + +type Tiger = + [] + new () = () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl new file mode 100644 index 00000000000..ce4dbdcc6b7 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl @@ -0,0 +1,84 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Tiger], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,5--2,10)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,4--3,11) }], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,8--4,10)), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,8--4,10))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,4--4,7)), + None, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,13--4,15)), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,4--4,10), + NoneAtInvisible, + { LeadingKeyword = + New + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,4--4,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (4,11--4,12) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,4--4,15))], + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (3,4--4,15)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,5--4,15), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,11--2,12) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,0--4,15))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs new file mode 100644 index 00000000000..d2bce2b4d3c --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs @@ -0,0 +1,4 @@ + +type Tiger = + [] + new () as tony = () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl new file mode 100644 index 00000000000..3c674445d76 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl @@ -0,0 +1,85 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec, + [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Tiger], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,5--2,10)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,4--3,11) }], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + Some tony), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,8--4,10)), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,8--4,10))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,4--4,7)), + None, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,21--4,23)), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,4--4,18), + NoneAtInvisible, + { LeadingKeyword = + New + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,4--4,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (4,19--4,20) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,4--4,23))], + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (3,4--4,23)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,5--4,23), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,11--2,12) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,0--4,23))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs new file mode 100644 index 00000000000..10f315ed114 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs @@ -0,0 +1,6 @@ + +type Bird = + [] + member this.TheWord + with get () = myInternalValue + and set (value) = myInternalValue <- value diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl new file mode 100644 index 00000000000..3247696b81a --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl @@ -0,0 +1,158 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty, [], + [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Bird], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,5--2,9)), + ObjectModel + (Unspecified, + [GetSetMember + (Some + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = + SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--3,11) }], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; TheWord], + [/root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (4,15--4,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,17--5,19)), + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,17--5,19))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,13--5,19)), + None, Ident myInternalValue, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--5,19), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,20--5,21) })), + Some + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = + SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--3,11) }], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; TheWord], + [/root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (4,15--4,16)], + [None; None]), Some set, None, + Pats + [Paren + (Named + (SynIdent (value, None), false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,17--6,22)), + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,16--6,23))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,12--6,23)), + None, + LongIdentSet + (SynLongIdent ([myInternalValue], [], [None]), + Ident value, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,26--6,50)), + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--6,23), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,24--6,25) })), + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--6,50), + { InlineKeyword = None + WithKeyword = + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,8--5,12) + GetKeyword = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (5,13--5,16) + AndKeyword = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,8--6,11) + SetKeyword = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (6,12--6,15) })], + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (3,4--6,50)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,5--6,50), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,10--2,11) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,0--6,50))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs new file mode 100644 index 00000000000..1c3d68846ca --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs @@ -0,0 +1,11 @@ + +type T() = + new () = + T () + + internal new () = + T () + + [] + new () = + T () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl new file mode 100644 index 00000000000..8bfb347f1f6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl @@ -0,0 +1,190 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs", + false, + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSecondaryConstructor, + [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInSecondaryConstructor], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [T], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,8--3,10)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,8--3,10))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,4--3,7)), + None, + App + (NonAtomic, false, Ident T, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (4,10--4,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (4,8--4,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,4--3,10), + NoneAtInvisible, + { LeadingKeyword = + New + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,11--3,12) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,4--4,12)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,17--6,19)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,17--6,19))], + Some + (Internal + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,4--6,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,13--6,16)), + None, + App + (NonAtomic, false, Ident T, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (7,10--7,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (7,8--7,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,4--6,19), + NoneAtInvisible, + { LeadingKeyword = + New + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,13--6,16) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,20--6,21) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (6,4--7,12)); + Member + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (9,6--9,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (9,6--9,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (9,4--9,11) }], + PreXmlDoc ((9,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (10,8--10,10)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (10,8--10,10))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (10,4--10,7)), + None, + App + (NonAtomic, false, Ident T, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (11,10--11,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (11,8--11,12)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (9,4--10,10), + NoneAtInvisible, + { LeadingKeyword = + New + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (10,4--10,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (10,11--10,12) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (9,4--11,12))], + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (3,4--11,12)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,5--2,6), + { AsKeyword = None })), + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,5--11,12), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,0--11,12))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs (2,0--12,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs new file mode 100644 index 00000000000..8107e33c3d3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs @@ -0,0 +1,4 @@ + +type Bar = + [] + let x = 8 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl new file mode 100644 index 00000000000..3d465a7b998 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl @@ -0,0 +1,73 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [LetBindings + ([SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,4--3,11) }], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (4,8--4,9)), + None, + Const + (Int32 8, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (4,12--4,13)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,4--4,9), + Yes + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,4--4,13), + { LeadingKeyword = + Let + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (4,4--4,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (4,10--4,11) })], + false, false, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,4--4,13))], + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (3,4--4,13)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,5--4,13), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,0--4,13))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs new file mode 100644 index 00000000000..76ff6013b60 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs @@ -0,0 +1,4 @@ + +type Bar = + [] + member this.Something () = () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl new file mode 100644 index 00000000000..c8e7af27f8c --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl @@ -0,0 +1,87 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs", + false, + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSynMemberDefnMember, + [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInSynMemberDefnMember], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,4--3,11) }], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Something], + [/root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,15--4,16)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,26--4,28)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,26--4,28))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,11--4,28)), + None, + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,31--4,33)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,4--4,28), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (4,29--4,30) }), + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,4--4,33))], + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (3,4--4,33)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,5--4,33), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,0--4,33))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs new file mode 100644 index 00000000000..c03e66b4e7f --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs @@ -0,0 +1,3 @@ + +[] +let a = 0 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl new file mode 100644 index 00000000000..195a4910e6e --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs", + false, + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSynModuleDeclLet, [], + [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInSynModuleDeclLet], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,2--2,5)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,2--2,5) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,0--2,7) }], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (a, None), false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (3,4--3,5)), + None, + Const + (Int32 0, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (3,8--3,9)), + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,0--3,5), + Yes + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,0--3,9), + { LeadingKeyword = + Let + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (3,6--3,7) })], + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,0--3,9))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs new file mode 100644 index 00000000000..8f973370376 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs @@ -0,0 +1,4 @@ + +type Crane = + [] + member this.MyWriteOnlyProperty with set (value) = myInternalValue <- value diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl new file mode 100644 index 00000000000..ef731b1698b --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl @@ -0,0 +1,103 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs", + false, + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty, + [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Crane], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,5--2,10)), + ObjectModel + (Unspecified, + [GetSetMember + (None, + Some + (SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = + SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,6--3,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,6--3,9) }] + Range = + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,4--3,11) }], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyWriteOnlyProperty], + [/root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,15--4,16)], + [None; None]), Some set, None, + Pats + [Paren + (Named + (SynIdent (value, None), false, None, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,46--4,51)), + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,45--4,52))], + None, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,41--4,52)), + None, + LongIdentSet + (SynLongIdent ([myInternalValue], [], [None]), + Ident value, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,55--4,79)), + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,4--4,52), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,53--4,54) })), + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,4--4,79), + { InlineKeyword = None + WithKeyword = + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,36--4,40) + GetKeyword = None + AndKeyword = None + SetKeyword = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (4,41--4,44) })], + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (3,4--4,79)), + [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,5--4,79), + { LeadingKeyword = + Type + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,11--2,12) + WithKeyword = None })], + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,0--4,79))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs new file mode 100644 index 00000000000..837747f54c0 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs @@ -0,0 +1,4 @@ + +do + let z = 2 + () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl new file mode 100644 index 00000000000..86cf0d110a5 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs", false, + QualifiedNameOfFile RangeOfEqualSignShouldBePresentInLocalLetBinding, [], + [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInLocalLetBinding], false, AnonModule, + [Expr + (Do + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (z, None), false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,8--3,9)), + None, + Const + (Int32 2, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,12--3,13)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,8--3,9), + Yes + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,4--3,13), + { LeadingKeyword = + Let + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,10--3,11) })], + Const + (Unit, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (4,4--4,6)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (3,4--4,6), + { InKeyword = None }), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (2,0--4,6)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (2,0--4,6))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs new file mode 100644 index 00000000000..3b8dd837945 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs @@ -0,0 +1,4 @@ + +do + let z: int = 2 + () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl new file mode 100644 index 00000000000..5c4b8049db8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs", + false, + QualifiedNameOfFile RangeOfEqualSignShouldBePresentInLocalLetBindingTyped, + [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInLocalLetBindingTyped], false, + AnonModule, + [Expr + (Do + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (z, None), false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,8--3,9)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,11--3,14), + [], + { ColonRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,9--3,10) })), + Typed + (Const + (Int32 2, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,17--3,18)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,17--3,18)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,8--3,9), + Yes + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,4--3,18), + { LeadingKeyword = + Let + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,15--3,16) })], + Const + (Unit, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (4,4--4,6)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (3,4--4,6), + { InKeyword = None }), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (2,0--4,6)), + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (2,0--4,6))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs new file mode 100644 index 00000000000..c6d9c601d15 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs @@ -0,0 +1,3 @@ + +type X() = + member this.Y = z diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl new file mode 100644 index 00000000000..e79eb9e5c63 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl @@ -0,0 +1,81 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs", false, + QualifiedNameOfFile RangeOfEqualSignShouldBePresentInMemberBinding, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInMemberBinding], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,15--3,16)], + [None; None]), None, None, Pats [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,11--3,17)), + None, Ident z, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,11--3,17), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,18--3,19) }), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,4--3,21))], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (3,4--3,21)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,5--2,6), + { AsKeyword = None })), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,5--3,21), + { LeadingKeyword = + Type + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,0--3,21))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs new file mode 100644 index 00000000000..17bba88203a --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs @@ -0,0 +1,3 @@ + +type X() = + member this.Y () = z diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl new file mode 100644 index 00000000000..6fd6d32c333 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl @@ -0,0 +1,91 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs", + false, + QualifiedNameOfFile + RangeOfEqualSignShouldBePresentInMemberBindingWithParameters, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInMemberBindingWithParameters], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,15--3,16)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,18--3,20)), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,18--3,20))], + None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,11--3,20)), + None, Ident z, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,11--3,20), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,21--3,22) }), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,4--3,24))], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (3,4--3,24)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,5--2,6), + { AsKeyword = None })), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,5--3,24), + { LeadingKeyword = + Type + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,0--3,24))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs new file mode 100644 index 00000000000..2dddd2d4a12 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs @@ -0,0 +1,3 @@ + +type X() = + member this.Y () : string = z diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl new file mode 100644 index 00000000000..d47328acfbe --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl @@ -0,0 +1,103 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs", + false, + QualifiedNameOfFile + RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,15--3,16)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,18--3,20)), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,18--3,20))], + None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,11--3,20)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([string], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,23--3,29), + [], + { ColonRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,21--3,22) })), + Typed + (Ident z, + LongIdent (SynLongIdent ([string], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,32--3,33)), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,11--3,20), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,30--3,31) }), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,4--3,33))], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (3,4--3,33)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,5--2,6), + { AsKeyword = None })), + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,5--3,33), + { LeadingKeyword = + Type + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,0--3,33))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs new file mode 100644 index 00000000000..9ee450cc2c3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs @@ -0,0 +1,5 @@ + +type Y() = + member this.MyReadWriteProperty + with get () = myInternalValue + and set (value) = myInternalValue <- value diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl new file mode 100644 index 00000000000..1346c34a892 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl @@ -0,0 +1,147 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs", false, + QualifiedNameOfFile RangeOfEqualSignShouldBePresentInProperty, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInProperty], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,5--2,6), + { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyReadWriteProperty], + [/root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,15--3,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,17--4,19)), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,17--4,19))], + None, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,13--4,19)), + None, Ident myInternalValue, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,13--4,19), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,20--4,21) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyReadWriteProperty], + [/root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,15--3,16)], + [None; None]), Some set, None, + Pats + [Paren + (Named + (SynIdent (value, None), false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,17--5,22)), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,16--5,23))], + None, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,12--5,23)), + None, + LongIdentSet + (SynLongIdent ([myInternalValue], [], [None]), + Ident value, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,26--5,50)), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,12--5,23), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,24--5,25) })), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,4--5,50), + { InlineKeyword = None + WithKeyword = + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,8--4,12) + GetKeyword = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (4,13--4,16) + AndKeyword = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,8--5,11) + SetKeyword = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (5,12--5,15) })], + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (3,4--5,50)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,5--2,6), + { AsKeyword = None })), + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,5--5,50), + { LeadingKeyword = + Type + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,0--2,4) + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,9--2,10) + WithKeyword = None })], + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,0--5,50))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInProperty.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs new file mode 100644 index 00000000000..e7137ff04ca --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs @@ -0,0 +1,2 @@ + +let v = 12 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl new file mode 100644 index 00000000000..9c94d13d1b4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -0,0 +1,39 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs", + false, + QualifiedNameOfFile + RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,4--2,5)), + None, + Const + (Int32 12, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,8--2,10)), + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,4--2,5), + Yes + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,10), + { LeadingKeyword = + Let + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,6--2,7) })], + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,10))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs new file mode 100644 index 00000000000..0f8e89ab06e --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs @@ -0,0 +1,2 @@ + +let v : int = 12 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl new file mode 100644 index 00000000000..c079103ecbc --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl @@ -0,0 +1,49 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs", + false, + QualifiedNameOfFile + RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,4--2,5)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,8--2,11), + [], + { ColonRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,6--2,7) })), + Typed + (Const + (Int32 12, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,14--2,16)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,14--2,16)), + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,4--2,5), + Yes + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,0--2,16), + { LeadingKeyword = + Let + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,12--2,13) })], + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,0--2,16))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs new file mode 100644 index 00000000000..219eed0b8fd --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs @@ -0,0 +1,4 @@ + +let a = + let b c = d + () diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl new file mode 100644 index 00000000000..b2adae89a6f --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl @@ -0,0 +1,68 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs", + false, + QualifiedNameOfFile + RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding, [], [], + [SynModuleOrNamespace + ([RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (a, None), false, None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,4--2,5)), + None, + LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some c)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([b], [], [None]), None, None, + Pats + [Named + (SynIdent (c, None), false, None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,10--3,11))], + None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,8--3,11)), + None, Ident d, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,8--3,11), + NoneAtLet, + { LeadingKeyword = + Let + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,12--3,13) })], + Const + (Unit, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (4,4--4,6)), + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (3,4--4,6), + { InKeyword = None }), + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,4--2,5), + NoneAtLet, + { LeadingKeyword = + Let + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,6--2,7) })], + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,0--4,6))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs new file mode 100644 index 00000000000..e7137ff04ca --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs @@ -0,0 +1,2 @@ + +let v = 12 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl new file mode 100644 index 00000000000..ab87b20b99d --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -0,0 +1,39 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs", + false, + QualifiedNameOfFile + RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding, [], [], + [SynModuleOrNamespace + ([RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,4--2,5)), + None, + Const + (Int32 12, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,8--2,10)), + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,4--2,5), + Yes + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,10), + { LeadingKeyword = + Let + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,6--2,7) })], + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,0--2,10))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs new file mode 100644 index 00000000000..8b920c819d6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs @@ -0,0 +1,5 @@ + +/// XmlDoc +[] +// some comment +let v = 12 diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl new file mode 100644 index 00000000000..62d4037b5ab --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl @@ -0,0 +1,55 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs", + false, + QualifiedNameOfFile + RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes, + [], [], + [SynModuleOrNamespace + ([RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes], + false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, + [{ Attributes = + [{ TypeName = SynLongIdent ([SomeAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (3,2--3,15)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (3,2--3,15) }] + Range = + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (3,0--3,17) }], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (5,4--5,5)), + None, + Const + (Int32 12, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (5,8--5,10)), + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (2,0--5,5), + Yes + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (3,0--5,10), + { LeadingKeyword = + Let + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (5,0--5,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (5,6--5,7) })], + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (2,0--5,10))], + PreXmlDocEmpty, [], None, + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (3,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs (4,0--4,15)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs new file mode 100644 index 00000000000..c950ac2612a --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs @@ -0,0 +1,3 @@ + +let a : int * string = failwith "todo" +let b : int * string * bool = 1, "", false diff --git a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl new file mode 100644 index 00000000000..fc9f1e2d9ac --- /dev/null +++ b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl @@ -0,0 +1,131 @@ +ImplFile + (ParsedImplFileInput + ("/root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs", false, + QualifiedNameOfFile TupleReturnTypeOfBindingShouldContainStars, [], [], + [SynModuleOrNamespace + ([TupleReturnTypeOfBindingShouldContainStars], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (a, None), false, None, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,4--2,5)), + Some + (SynBindingReturnInfo + (Tuple + (false, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,12--2,13); + Type + (LongIdent (SynLongIdent ([string], [], [None])))], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,8--2,20)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,8--2,20), + [], + { ColonRange = + Some + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,6--2,7) })), + Typed + (App + (NonAtomic, false, Ident failwith, + Const + (String + ("todo", Regular, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,32--2,38)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,32--2,38)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,23--2,38)), + Tuple + (false, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,12--2,13); + Type (LongIdent (SynLongIdent ([string], [], [None])))], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,8--2,20)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,23--2,38)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,4--2,5), + Yes + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,0--2,38), + { LeadingKeyword = + Let + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,21--2,22) })], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,0--2,38)); + Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (b, None), false, None, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,4--3,5)), + Some + (SynBindingReturnInfo + (Tuple + (false, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,12--3,13); + Type + (LongIdent (SynLongIdent ([string], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,21--3,22); + Type (LongIdent (SynLongIdent ([bool], [], [None])))], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,8--3,27)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,8--3,27), + [], + { ColonRange = + Some + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,6--3,7) })), + Typed + (Tuple + (false, + [Const + (Int32 1, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,30--3,31)); + Const + (String + ("", Regular, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,33--3,35)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,33--3,35)); + Const + (Bool false, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,37--3,42))], + [/root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,31--3,32); + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,35--3,36)], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,30--3,42)), + Tuple + (false, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,12--3,13); + Type (LongIdent (SynLongIdent ([string], [], [None]))); + Star + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,21--3,22); + Type (LongIdent (SynLongIdent ([bool], [], [None])))], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,8--3,27)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,30--3,42)), + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,4--3,5), + Yes + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,0--3,42), + { LeadingKeyword = + Let + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,28--3,29) })], + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (3,0--3,42))], + PreXmlDocEmpty, [], None, + /root/Binding/TupleReturnTypeOfBindingShouldContainStars.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs new file mode 100644 index 00000000000..418933b4541 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs @@ -0,0 +1,2 @@ + +let a (* b *) c = c + 42 diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl new file mode 100644 index 00000000000..9fba26d5db2 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/BlockCommentInSourceCode.fs", false, + QualifiedNameOfFile BlockCommentInSourceCode, [], [], + [SynModuleOrNamespace + ([BlockCommentInSourceCode], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some c)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([a], [], [None]), None, None, + Pats + [Named + (SynIdent (c, None), false, None, + /root/CodeComment/BlockCommentInSourceCode.fs (2,15--2,16))], + None, + /root/CodeComment/BlockCommentInSourceCode.fs (2,4--2,16)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, + /root/CodeComment/BlockCommentInSourceCode.fs (2,21--2,22)), + Ident c, + /root/CodeComment/BlockCommentInSourceCode.fs (2,19--2,22)), + Const + (Int32 42, + /root/CodeComment/BlockCommentInSourceCode.fs (2,23--2,25)), + /root/CodeComment/BlockCommentInSourceCode.fs (2,19--2,25)), + /root/CodeComment/BlockCommentInSourceCode.fs (2,4--2,16), + NoneAtLet, + { LeadingKeyword = + Let + /root/CodeComment/BlockCommentInSourceCode.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/CodeComment/BlockCommentInSourceCode.fs (2,17--2,18) })], + /root/CodeComment/BlockCommentInSourceCode.fs (2,0--2,25))], + PreXmlDocEmpty, [], None, + /root/CodeComment/BlockCommentInSourceCode.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [BlockComment /root/CodeComment/BlockCommentInSourceCode.fs (2,6--2,13)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi new file mode 100644 index 00000000000..e05771452a7 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi @@ -0,0 +1,4 @@ + +namespace Meh + +val a (* b *) : int diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi.bsl new file mode 100644 index 00000000000..78112c71c56 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi.bsl @@ -0,0 +1,31 @@ +SigFile + (ParsedSigFileInput + ("/root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi", + QualifiedNameOfFile BlockCommentInSourceCodeSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (a, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (4,0--4,19), + { LeadingKeyword = + Val + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (4,0--4,19))], + PreXmlDocEmpty, [], None, + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (2,0--4,19), + { LeadingKeyword = + Namespace + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [BlockComment + /root/CodeComment/BlockCommentInSourceCodeSignatureFile.fsi (4,6--4,13)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs new file mode 100644 index 00000000000..0cc8da46d78 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs @@ -0,0 +1,2 @@ + +foo() // comment! diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs.bsl new file mode 100644 index 00000000000..99510087c80 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCode.fs.bsl @@ -0,0 +1,20 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/CommentAfterSourceCode.fs", false, + QualifiedNameOfFile CommentAfterSourceCode, [], [], + [SynModuleOrNamespace + ([CommentAfterSourceCode], false, AnonModule, + [Expr + (App + (Atomic, false, Ident foo, + Const + (Unit, /root/CodeComment/CommentAfterSourceCode.fs (2,3--2,5)), + /root/CodeComment/CommentAfterSourceCode.fs (2,0--2,5)), + /root/CodeComment/CommentAfterSourceCode.fs (2,0--2,5))], + PreXmlDocEmpty, [], None, + /root/CodeComment/CommentAfterSourceCode.fs (2,0--2,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/CodeComment/CommentAfterSourceCode.fs (2,6--2,17)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi new file mode 100644 index 00000000000..da120cd601c --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi @@ -0,0 +1,4 @@ + +namespace Meh + +val foo : int // comment! diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi.bsl new file mode 100644 index 00000000000..a7ac721d6cf --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAfterSourceCodeSignatureFile.fsi.bsl @@ -0,0 +1,31 @@ +SigFile + (ParsedSigFileInput + ("/root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi", + QualifiedNameOfFile CommentAfterSourceCodeSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (foo, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (4,0--4,13), + { LeadingKeyword = + Val + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (4,0--4,13))], + PreXmlDocEmpty, [], None, + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (2,0--4,13), + { LeadingKeyword = + Namespace + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/CodeComment/CommentAfterSourceCodeSignatureFile.fsi (4,14--4,25)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs b/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs new file mode 100644 index 00000000000..9c26afdd8f0 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs @@ -0,0 +1,2 @@ + +x // y diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs.bsl new file mode 100644 index 00000000000..da00da85e1d --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentAtEndOfFile.fs.bsl @@ -0,0 +1,14 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/CommentAtEndOfFile.fs", false, + QualifiedNameOfFile CommentAtEndOfFile, [], [], + [SynModuleOrNamespace + ([CommentAtEndOfFile], false, AnonModule, + [Expr (Ident x, /root/CodeComment/CommentAtEndOfFile.fs (2,0--2,1))], + PreXmlDocEmpty, [], None, + /root/CodeComment/CommentAtEndOfFile.fs (2,0--2,1), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/CodeComment/CommentAtEndOfFile.fs (2,2--2,6)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs new file mode 100644 index 00000000000..9f43e2d8a4f --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs @@ -0,0 +1,3 @@ + +// comment! +foo() diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs.bsl new file mode 100644 index 00000000000..def8065f0c9 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLine.fs.bsl @@ -0,0 +1,20 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/CommentOnSingleLine.fs", false, + QualifiedNameOfFile CommentOnSingleLine, [], [], + [SynModuleOrNamespace + ([CommentOnSingleLine], false, AnonModule, + [Expr + (App + (Atomic, false, Ident foo, + Const + (Unit, /root/CodeComment/CommentOnSingleLine.fs (3,3--3,5)), + /root/CodeComment/CommentOnSingleLine.fs (3,0--3,5)), + /root/CodeComment/CommentOnSingleLine.fs (3,0--3,5))], + PreXmlDocEmpty, [], None, + /root/CodeComment/CommentOnSingleLine.fs (3,0--3,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/CodeComment/CommentOnSingleLine.fs (2,0--2,11)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi new file mode 100644 index 00000000000..06bee6c7066 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi @@ -0,0 +1,4 @@ + +namespace Meh +// comment! +foo() diff --git a/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi.bsl new file mode 100644 index 00000000000..5e45782eb24 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/CommentOnSingleLineSignatureFile.fsi.bsl @@ -0,0 +1,15 @@ +SigFile + (ParsedSigFileInput + ("/root/CodeComment/CommentOnSingleLineSignatureFile.fsi", + QualifiedNameOfFile CommentOnSingleLineSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, DeclaredNamespace, [], PreXmlDocEmpty, [], None, + /root/CodeComment/CommentOnSingleLineSignatureFile.fsi (2,0--2,13), + { LeadingKeyword = + Namespace + /root/CodeComment/CommentOnSingleLineSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/CodeComment/CommentOnSingleLineSignatureFile.fsi (3,0--3,11)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs new file mode 100644 index 00000000000..a0fcd0bd363 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs @@ -0,0 +1,9 @@ + +/// Valid xml doc +let x = + /// Some great documentation comment + + /// With a blank line in between + /// but on a while loop + while true do () + a + 1 diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl new file mode 100644 index 00000000000..67a3e659d19 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl @@ -0,0 +1,71 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs", + false, + QualifiedNameOfFile + TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation, [], [], + [SynModuleOrNamespace + ([TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (x, None), false, None, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (3,4--3,5)), + None, + Sequential + (SuppressNeither, true, + While + (Yes + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (8,4--8,14), + Const + (Bool true, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (8,10--8,14)), + Const + (Unit, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (8,18--8,20)), + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (8,4--8,20)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (9,6--9,7)), + Ident a, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (9,4--9,7)), + Const + (Int32 1, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (9,8--9,9)), + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (9,4--9,9)), + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (8,4--9,9)), + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (2,0--3,5), + NoneAtLet, + { LeadingKeyword = + Let + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (3,6--3,7) })], + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (2,0--9,9))], + PreXmlDocEmpty, [], None, + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (3,0--10,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (4,4--4,40); + LineComment + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (6,4--6,36); + LineComment + /root/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs (7,4--7,27)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs new file mode 100644 index 00000000000..c73196b361b --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs @@ -0,0 +1,3 @@ + +/// Some great documentation comment +let x = 0 diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl new file mode 100644 index 00000000000..cc6ea0705c3 --- /dev/null +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl @@ -0,0 +1,36 @@ +ImplFile + (ParsedImplFileInput + ("/root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs", false, + QualifiedNameOfFile TripleSlashCommentShouldNotBeCaptured, [], [], + [SynModuleOrNamespace + ([TripleSlashCommentShouldNotBeCaptured], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (x, None), false, None, + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,4--3,5)), + None, + Const + (Int32 0, + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,8--3,9)), + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (2,0--3,5), + Yes + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,0--3,9), + { LeadingKeyword = + Let + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,6--3,7) })], + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (2,0--3,9))], + PreXmlDocEmpty, [], None, + /root/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs (3,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs new file mode 100644 index 00000000000..244d7667c9e --- /dev/null +++ b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs @@ -0,0 +1,7 @@ + +async { + let! bar = getBar () + and! foo = getFoo () in + and! meh = getMeh () + return bar +} diff --git a/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl new file mode 100644 index 00000000000..4d63b60dc47 --- /dev/null +++ b/tests/service/data/SyntaxTree/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs.bsl @@ -0,0 +1,79 @@ +ImplFile + (ParsedImplFileInput + ("/root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs", + false, + QualifiedNameOfFile + MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression, [], + [], + [SynModuleOrNamespace + ([MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression], + false, AnonModule, + [Expr + (App + (NonAtomic, false, Ident async, + ComputationExpr + (false, + LetOrUseBang + (Yes + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,4--3,24), + false, true, + Named + (SynIdent (bar, None), false, None, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,9--3,12)), + App + (NonAtomic, false, Ident getBar, + Const + (Unit, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,22--3,24)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,15--3,24)), + [SynExprAndBang + (Yes + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,4--4,27), + false, true, + Named + (SynIdent (foo, None), false, None, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,9--4,12)), + App + (NonAtomic, false, Ident getFoo, + Const + (Unit, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,22--4,24)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,15--4,24)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,4--4,24), + { EqualsRange = + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,13--4,14) + InKeyword = + Some + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (4,25--4,27) }); + SynExprAndBang + (Yes + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,4--6,10), + false, true, + Named + (SynIdent (meh, None), false, None, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,9--5,12)), + App + (NonAtomic, false, Ident getMeh, + Const + (Unit, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,22--5,24)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,15--5,24)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,4--5,24), + { EqualsRange = + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (5,13--5,14) + InKeyword = None })], + YieldOrReturn + ((false, true), Ident bar, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (6,4--6,14)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,4--6,14), + { EqualsRange = + Some + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (3,13--3,14) }), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (2,6--7,1)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (2,0--7,1)), + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (2,0--7,1))], + PreXmlDocEmpty, [], None, + /root/ComputationExpression/MultipleSynExprAndBangHaveRangeThatStartsAtAndAndEndsAfterExpression.fs (2,0--7,1), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs new file mode 100644 index 00000000000..ace0ba8c1e1 --- /dev/null +++ b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs @@ -0,0 +1,8 @@ + +async { + let! bar = getBar () + + and! foo = getFoo () + + return bar +} diff --git a/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl new file mode 100644 index 00000000000..340324dadc0 --- /dev/null +++ b/tests/service/data/SyntaxTree/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs.bsl @@ -0,0 +1,59 @@ +ImplFile + (ParsedImplFileInput + ("/root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs", + false, + QualifiedNameOfFile SynExprAndBangRangeStartsAtAndAndEndsAfterExpression, + [], [], + [SynModuleOrNamespace + ([SynExprAndBangRangeStartsAtAndAndEndsAfterExpression], false, + AnonModule, + [Expr + (App + (NonAtomic, false, Ident async, + ComputationExpr + (false, + LetOrUseBang + (Yes + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,4--3,24), + false, true, + Named + (SynIdent (bar, None), false, None, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,9--3,12)), + App + (NonAtomic, false, Ident getBar, + Const + (Unit, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,22--3,24)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,15--3,24)), + [SynExprAndBang + (Yes + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,4--7,10), + false, true, + Named + (SynIdent (foo, None), false, None, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,9--5,12)), + App + (NonAtomic, false, Ident getFoo, + Const + (Unit, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,22--5,24)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,15--5,24)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,4--5,24), + { EqualsRange = + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (5,13--5,14) + InKeyword = None })], + YieldOrReturn + ((false, true), Ident bar, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (7,4--7,14)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,4--7,14), + { EqualsRange = + Some + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (3,13--3,14) }), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (2,6--8,1)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (2,0--8,1)), + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (2,0--8,1))], + PreXmlDocEmpty, [], None, + /root/ComputationExpression/SynExprAndBangRangeStartsAtAndAndEndsAfterExpression.fs (2,0--8,1), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs new file mode 100644 index 00000000000..8b924a335bd --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs @@ -0,0 +1,8 @@ + +let v = +(* +#if DEBUG +() +#endif +*) +42 diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl new file mode 100644 index 00000000000..b454be43944 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl @@ -0,0 +1,42 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs", + false, + QualifiedNameOfFile DirectivesInMultilineCommentAreNotReportedAsTrivia, [], + [], + [SynModuleOrNamespace + ([DirectivesInMultilineCommentAreNotReportedAsTrivia], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,4--2,5)), + None, + Const + (Int32 42, + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (8,0--8,2)), + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,4--2,5), + Yes + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,0--8,2), + { LeadingKeyword = + Let + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,6--2,7) })], + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,0--8,2))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (2,0--9,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [BlockComment + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs (3,0--7,2)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi new file mode 100644 index 00000000000..2026af69d23 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi @@ -0,0 +1,10 @@ + +namespace Foobar + +val v : int = +(* +#if DEBUG +() +#endif +*) +42 diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi.bsl new file mode 100644 index 00000000000..45cce9e207a --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi.bsl @@ -0,0 +1,37 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi", + QualifiedNameOfFile + DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (v, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 42, + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (10,0--10,2))), + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (4,0--10,2), + { LeadingKeyword = + Val + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (4,12--4,13) }), + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (4,0--10,2))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (2,0--10,2), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [BlockComment + /root/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTriviaSignatureFile.fsi (5,0--9,2)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs new file mode 100644 index 00000000000..ed467babe36 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs @@ -0,0 +1,7 @@ + +let v = \"\"\" +#if DEBUG +() +#endif +42 +\"\"\" diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl new file mode 100644 index 00000000000..02cde679d3c --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs", + false, + QualifiedNameOfFile DirectivesInMultilineStringAreNotReportedAsTrivia, [], + [], + [SynModuleOrNamespace + ([DirectivesInMultilineStringAreNotReportedAsTrivia], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,4--2,5)), + None, + ArbitraryAfterError + ("localBinding1", + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,7--2,7)), + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,4--2,5), + Yes + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,4--2,7), + { LeadingKeyword = + Let + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,6--2,7) })], + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,0--2,7))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs (2,0--8,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi new file mode 100644 index 00000000000..851cc685764 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi @@ -0,0 +1,9 @@ + +namespace Foobar + +let v : string = \"\"\" +#if DEBUG +() +#endif +42 +\"\"\" diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi.bsl new file mode 100644 index 00000000000..dd45208011f --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi.bsl @@ -0,0 +1,13 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi", + QualifiedNameOfFile + DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, [], PreXmlDocEmpty, [], None, + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi (2,0--2,16), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTriviaSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs new file mode 100644 index 00000000000..9e126b9aeb4 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs @@ -0,0 +1,11 @@ + +let v = + #if FOO + #if MEH + 1 + #else + 2 + #endif + #else + 3 + #endif diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl new file mode 100644 index 00000000000..85758d16378 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/NestedIfElseEndif.fs", false, + QualifiedNameOfFile NestedIfElseEndif, [], [], + [SynModuleOrNamespace + ([NestedIfElseEndif], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/NestedIfElseEndif.fs (2,4--2,5)), + None, + Const + (Int32 3, + /root/ConditionalDirective/NestedIfElseEndif.fs (10,8--10,9)), + /root/ConditionalDirective/NestedIfElseEndif.fs (2,4--2,5), + Yes + /root/ConditionalDirective/NestedIfElseEndif.fs (2,0--10,9), + { LeadingKeyword = + Let + /root/ConditionalDirective/NestedIfElseEndif.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/NestedIfElseEndif.fs (2,6--2,7) })], + /root/ConditionalDirective/NestedIfElseEndif.fs (2,0--10,9))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/NestedIfElseEndif.fs (2,0--12,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Ident "FOO", + /root/ConditionalDirective/NestedIfElseEndif.fs (3,4--3,11)); + If + (Ident "MEH", + /root/ConditionalDirective/NestedIfElseEndif.fs (4,8--4,15)); + Else /root/ConditionalDirective/NestedIfElseEndif.fs (6,8--6,13); + EndIf /root/ConditionalDirective/NestedIfElseEndif.fs (8,8--8,14); + Else /root/ConditionalDirective/NestedIfElseEndif.fs (9,4--9,9); + EndIf /root/ConditionalDirective/NestedIfElseEndif.fs (11,4--11,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi new file mode 100644 index 00000000000..d8241db92e9 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi @@ -0,0 +1,13 @@ + +namespace Foobar + +val v : int = + #if FOO + #if MEH + 1 + #else + 2 + #endif + #else + 3 + #endif diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi.bsl new file mode 100644 index 00000000000..74bbbb0dd05 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi.bsl @@ -0,0 +1,47 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi", + QualifiedNameOfFile NestedIfElseEndifSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (v, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 3, + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (12,8--12,9))), + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (4,0--12,9), + { LeadingKeyword = + Val + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (4,12--4,13) }), + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (4,0--12,9))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (2,0--12,9), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = + [If + (Ident "FOO", + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (5,4--5,11)); + If + (Ident "MEH", + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (6,8--6,15)); + Else + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (8,8--8,13); + EndIf + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (10,8--10,14); + Else + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (11,4--11,9); + EndIf + /root/ConditionalDirective/NestedIfElseEndifSignatureFile.fsi (13,4--13,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs new file mode 100644 index 00000000000..8956a10e867 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs @@ -0,0 +1,9 @@ + +let v = + #if !DEBUG + #if FOO && BAR + #if MEH || HMM + printfn "oh some logging" + #endif + #endif + #endif diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl new file mode 100644 index 00000000000..ea25e690222 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs", false, + QualifiedNameOfFile NestedIfEndifWithComplexExpressions, [], [], + [SynModuleOrNamespace + ([NestedIfEndifWithComplexExpressions], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,4--2,5)), + None, + ArbitraryAfterError + ("localBinding1", + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,7--2,7)), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,4--2,5), + Yes + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,4--2,7), + { LeadingKeyword = + Let + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,6--2,7) })], + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,0--2,7))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (2,0--10,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Not (Ident "DEBUG"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (3,4--3,14)); + If + (And (Ident "FOO", Ident "BAR"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (4,8--4,22)); + If + (Or (Ident "MEH", Ident "HMM"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (5,12--5,26)); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (7,12--7,18); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (8,8--8,14); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs (9,4--9,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi new file mode 100644 index 00000000000..c6b0bc364fc --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi @@ -0,0 +1,12 @@ + +namespace Foobar + +val v : int = + #if !DEBUG + #if FOO && BAR + #if MEH || HMM + 9 + #endif + #endif + #endif + 10 diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi.bsl new file mode 100644 index 00000000000..9cde00baa8c --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi.bsl @@ -0,0 +1,49 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi", + QualifiedNameOfFile NestedIfEndifWithComplexExpressionsSignatureFile, [], + [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (v, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 10, + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (12,4--12,6))), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (4,0--12,6), + { LeadingKeyword = + Val + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (4,12--4,13) }), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (4,0--12,6))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (2,0--12,6), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = + [If + (Not (Ident "DEBUG"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (5,4--5,14)); + If + (And (Ident "FOO", Ident "BAR"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (6,8--6,22)); + If + (Or (Ident "MEH", Ident "HMM"), + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (7,12--7,26)); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (9,12--9,18); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (10,8--10,14); + EndIf + /root/ConditionalDirective/NestedIfEndifWithComplexExpressionsSignatureFile.fsi (11,4--11,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs new file mode 100644 index 00000000000..dc9198f51ea --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs @@ -0,0 +1,7 @@ + +let v = + #if DEBUG + 30 + #else + 42 + #endif diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl new file mode 100644 index 00000000000..35ef62f645c --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl @@ -0,0 +1,40 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/SingleIfElseEndif.fs", false, + QualifiedNameOfFile SingleIfElseEndif, [], [], + [SynModuleOrNamespace + ([SingleIfElseEndif], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/SingleIfElseEndif.fs (2,4--2,5)), + None, + Const + (Int32 42, + /root/ConditionalDirective/SingleIfElseEndif.fs (6,4--6,6)), + /root/ConditionalDirective/SingleIfElseEndif.fs (2,4--2,5), + Yes /root/ConditionalDirective/SingleIfElseEndif.fs (2,0--6,6), + { LeadingKeyword = + Let + /root/ConditionalDirective/SingleIfElseEndif.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/SingleIfElseEndif.fs (2,6--2,7) })], + /root/ConditionalDirective/SingleIfElseEndif.fs (2,0--6,6))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/SingleIfElseEndif.fs (2,0--8,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Ident "DEBUG", + /root/ConditionalDirective/SingleIfElseEndif.fs (3,4--3,13)); + Else /root/ConditionalDirective/SingleIfElseEndif.fs (5,4--5,9); + EndIf /root/ConditionalDirective/SingleIfElseEndif.fs (7,4--7,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi new file mode 100644 index 00000000000..f6938574da6 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi @@ -0,0 +1,9 @@ + +namespace Foobar + +val v : int = + #if DEBUG + 30 + #else + 42 + #endif diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi.bsl new file mode 100644 index 00000000000..2ee32d94859 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi.bsl @@ -0,0 +1,40 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi", + QualifiedNameOfFile SingleIfElseEndifSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (v, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 42, + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (8,4--8,6))), + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (4,0--8,6), + { LeadingKeyword = + Val + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (4,12--4,13) }), + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (4,0--8,6))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (2,0--8,6), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = + [If + (Ident "DEBUG", + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (5,4--5,13)); + Else + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (7,4--7,9); + EndIf + /root/ConditionalDirective/SingleIfElseEndifSignatureFile.fsi (9,4--9,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs new file mode 100644 index 00000000000..335320516e6 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs @@ -0,0 +1,6 @@ + +let v = + #if DEBUG + () + #endif + 42 diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl new file mode 100644 index 00000000000..72f49f5c04e --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl @@ -0,0 +1,37 @@ +ImplFile + (ParsedImplFileInput + ("/root/ConditionalDirective/SingleIfEndif.fs", false, + QualifiedNameOfFile SingleIfEndif, [], [], + [SynModuleOrNamespace + ([SingleIfEndif], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (v, None), false, None, + /root/ConditionalDirective/SingleIfEndif.fs (2,4--2,5)), + None, + Const + (Int32 42, + /root/ConditionalDirective/SingleIfEndif.fs (6,4--6,6)), + /root/ConditionalDirective/SingleIfEndif.fs (2,4--2,5), + Yes /root/ConditionalDirective/SingleIfEndif.fs (2,0--6,6), + { LeadingKeyword = + Let /root/ConditionalDirective/SingleIfEndif.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some /root/ConditionalDirective/SingleIfEndif.fs (2,6--2,7) })], + /root/ConditionalDirective/SingleIfEndif.fs (2,0--6,6))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/SingleIfEndif.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Ident "DEBUG", + /root/ConditionalDirective/SingleIfEndif.fs (3,4--3,13)); + EndIf /root/ConditionalDirective/SingleIfEndif.fs (5,4--5,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi new file mode 100644 index 00000000000..759d04cc3f6 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi @@ -0,0 +1,8 @@ + +namespace Foobar + +val v: int = + #if DEBUG + 1 + #endif + 42 diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi.bsl new file mode 100644 index 00000000000..72d5c9759d8 --- /dev/null +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndifSignatureFile.fsi.bsl @@ -0,0 +1,38 @@ +SigFile + (ParsedSigFileInput + ("/root/ConditionalDirective/SingleIfEndifSignatureFile.fsi", + QualifiedNameOfFile SingleIfEndifSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (v, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 42, + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (8,4--8,6))), + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (4,0--8,6), + { LeadingKeyword = + Val + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (4,11--4,12) }), + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (4,0--8,6))], + PreXmlDocEmpty, [], None, + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (2,0--8,6), + { LeadingKeyword = + Namespace + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = + [If + (Ident "DEBUG", + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (5,4--5,13)); + EndIf + /root/ConditionalDirective/SingleIfEndifSignatureFile.fsi (7,4--7,10)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs new file mode 100644 index 00000000000..af2b2274143 --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs @@ -0,0 +1,4 @@ + +type Foo = + | Bar = 1 + | Bear = 2 diff --git a/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl new file mode 100644 index 00000000000..0a1c1397c08 --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl @@ -0,0 +1,56 @@ +ImplFile + (ParsedImplFileInput + ("/root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs", false, + QualifiedNameOfFile MultipleSynEnumCasesHaveBarRange, [], [], + [SynModuleOrNamespace + ([MultipleSynEnumCasesHaveBarRange], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,5--2,8)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (Bar, None), + Const + (Int32 1, + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,12--3,13)), + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,6--3,13), + { BarRange = + Some + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,4--3,5) + EqualsRange = + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,10--3,11) }); + SynEnumCase + ([], SynIdent (Bear, None), + Const + (Int32 2, + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (4,13--4,14)), + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (4,6--4,14), + { BarRange = + Some + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (4,4--4,5) + EqualsRange = + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (4,11--4,12) })], + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,4--4,14)), + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (3,4--4,14)), + [], None, + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,5--4,14), + { LeadingKeyword = + Type + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,0--2,4) + EqualsRange = + Some + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,9--2,10) + WithKeyword = None })], + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,0--4,14))], + PreXmlDocEmpty, [], None, + /root/EnumCase/MultipleSynEnumCasesHaveBarRange.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs new file mode 100644 index 00000000000..5fca8272108 --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs @@ -0,0 +1,2 @@ + +type Foo = | Bar = 1 diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl new file mode 100644 index 00000000000..e58922da78b --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl @@ -0,0 +1,44 @@ +ImplFile + (ParsedImplFileInput + ("/root/EnumCase/SingleSynEnumCaseHasBarRange.fs", false, + QualifiedNameOfFile SingleSynEnumCaseHasBarRange, [], [], + [SynModuleOrNamespace + ([SingleSynEnumCaseHasBarRange], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,5--2,8)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (Bar, None), + Const + (Int32 1, + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,19--2,20)), + PreXmlDoc ((2,11), FSharp.Compiler.Xml.XmlDocCollector), + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,13--2,20), + { BarRange = + Some + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,11--2,12) + EqualsRange = + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,17--2,18) })], + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,11--2,20)), + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,11--2,20)), + [], None, + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,5--2,20), + { LeadingKeyword = + Type + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,0--2,4) + EqualsRange = + Some + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,9--2,10) + WithKeyword = None })], + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,0--2,20))], + PreXmlDocEmpty, [], None, + /root/EnumCase/SingleSynEnumCaseHasBarRange.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs new file mode 100644 index 00000000000..103e7bd46a5 --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs @@ -0,0 +1,2 @@ + +type Foo = Bar = 1 diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl new file mode 100644 index 00000000000..37a2491df21 --- /dev/null +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl @@ -0,0 +1,42 @@ +ImplFile + (ParsedImplFileInput + ("/root/EnumCase/SingleSynEnumCaseWithoutBar.fs", false, + QualifiedNameOfFile SingleSynEnumCaseWithoutBar, [], [], + [SynModuleOrNamespace + ([SingleSynEnumCaseWithoutBar], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,5--2,8)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (Bar, None), + Const + (Int32 1, + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,17--2,18)), + PreXmlDoc ((2,11), FSharp.Compiler.Xml.XmlDocCollector), + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,11--2,18), + { BarRange = None + EqualsRange = + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,15--2,16) })], + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,11--2,18)), + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,11--2,18)), + [], None, + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,5--2,18), + { LeadingKeyword = + Type + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,0--2,4) + EqualsRange = + Some + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,9--2,10) + WithKeyword = None })], + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,0--2,18))], + PreXmlDocEmpty, [], None, + /root/EnumCase/SingleSynEnumCaseWithoutBar.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..70cf20a2e49 --- /dev/null +++ b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,5 @@ + +namespace X + +exception Foo with + member Meh () = () diff --git a/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..25607fff6b4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,67 @@ +ImplFile + (ParsedImplFileInput + ("/root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([X], false, DeclaredNamespace, + [Exception + (SynExceptionDefn + (SynExceptionDefnRepr + ([], + SynUnionCase + ([], SynIdent (Foo, None), Fields [], PreXmlDocEmpty, None, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (4,10--4,13), + { BarRange = None }), None, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (4,0--4,13)), + Some + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (4,14--4,18), + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([Meh], [], [None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,15--5,17)), + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,15--5,17))], + None, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,11--5,17)), + None, + Const + (Unit, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,20--5,22)), + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,11--5,17), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,4--5,10) + InlineKeyword = None + EqualsRange = + Some + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,18--5,19) }), + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (5,4--5,22))], + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (4,0--5,22)), + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (4,0--5,22))], + PreXmlDocEmpty, [], None, + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (2,0--5,22), + { LeadingKeyword = + Namespace + /root/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs (2,0--2,9) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs b/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs new file mode 100644 index 00000000000..6bce529e63f --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs @@ -0,0 +1,5 @@ + +{ foo with + X + = + 12 } diff --git a/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl b/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl new file mode 100644 index 00000000000..72bf10a74d0 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl @@ -0,0 +1,33 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs", + false, + QualifiedNameOfFile + CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField, [], + [], + [SynModuleOrNamespace + ([CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField], + false, AnonModule, + [Expr + (Record + (None, + Some + (Ident foo, + (/root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,6--2,10), + None)), + [SynExprRecordField + ((SynLongIdent ([X], [], [None]), true), + Some + /root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (4,12--4,13), + Some + (Const + (Int32 12, + /root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (5,16--5,18))), + None)], + /root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--5,20)), + /root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--5,20))], + PreXmlDocEmpty, [], None, + /root/Expression/CopySynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--5,20), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs b/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs new file mode 100644 index 00000000000..aebe237a77f --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs @@ -0,0 +1,2 @@ + +global diff --git a/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs.bsl b/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs.bsl new file mode 100644 index 00000000000..cfb161739e9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/GlobalKeywordAsSynExpr.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/GlobalKeywordAsSynExpr.fs", false, + QualifiedNameOfFile GlobalKeywordAsSynExpr, [], [], + [SynModuleOrNamespace + ([GlobalKeywordAsSynExpr], false, AnonModule, + [Expr + (LongIdent + (false, + SynLongIdent + ([`global`], [], [Some (OriginalNotation "global")]), None, + /root/Expression/GlobalKeywordAsSynExpr.fs (2,0--2,6)), + /root/Expression/GlobalKeywordAsSynExpr.fs (2,0--2,6))], + PreXmlDocEmpty, [], None, + /root/Expression/GlobalKeywordAsSynExpr.fs (2,0--2,6), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs b/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs new file mode 100644 index 00000000000..052ae41c0e4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs @@ -0,0 +1,2 @@ + +{ inherit Exception(msg); X = 1; } diff --git a/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl b/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl new file mode 100644 index 00000000000..f385cae05ae --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl @@ -0,0 +1,44 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs", + false, + QualifiedNameOfFile + InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField, + [], [], + [SynModuleOrNamespace + ([InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField], + false, AnonModule, + [Expr + (Record + (Some + (LongIdent (SynLongIdent ([Exception], [], [None])), + Paren + (Ident msg, + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,19--2,20), + Some + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,23--2,24), + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,19--2,24)), + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,10--2,24), + Some + (/root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,24--2,25), + Some (2,25)), + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,2--2,9)), + None, + [SynExprRecordField + ((SynLongIdent ([X], [], [None]), true), + Some + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,28--2,29), + Some + (Const + (Int32 1, + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,30--2,31))), + Some + (/root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,31--2,32), + Some (2,32)))], + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--2,34)), + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--2,34))], + PreXmlDocEmpty, [], None, + /root/Expression/InheritSynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--2,34), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs new file mode 100644 index 00000000000..c4c36399b74 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs @@ -0,0 +1,5 @@ + +let f () = + let x = 1 in // the "in" keyword is available in F# + let y = 2 in + x + y diff --git a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl new file mode 100644 index 00000000000..81edb0976c3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -0,0 +1,117 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs", + false, + QualifiedNameOfFile NestedSynExprLetOrUseContainsTheRangeOfInKeyword, [], + [], + [SynModuleOrNamespace + ([NestedSynExprLetOrUseContainsTheRangeOfInKeyword], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([f], [], [None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,6--2,8)), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,6--2,8))], + None, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,4--2,8)), + None, + LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,8--3,9)), + None, + Const + (Int32 1, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,12--3,13)), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,8--3,9), + Yes + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,4--3,13), + { LeadingKeyword = + Let + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,10--3,11) })], + LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (y, None), false, None, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,8--4,9)), + None, + Const + (Int32 2, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,12--4,13)), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,8--4,9), + Yes + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,4--4,13), + { LeadingKeyword = + Let + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,4--4,7) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,10--4,11) })], + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (5,6--5,7)), + Ident x, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (5,4--5,7)), + Ident y, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (5,4--5,9)), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,4--5,9), + { InKeyword = + Some + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (4,14--4,16) }), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,4--5,9), + { InKeyword = + Some + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,14--3,16) }), + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,4--2,8), + NoneAtLet, + { LeadingKeyword = + Let + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,9--2,10) })], + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--5,9))], + PreXmlDocEmpty, [], None, + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs (3,17--3,55)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs new file mode 100644 index 00000000000..d1983af8f59 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs @@ -0,0 +1,7 @@ + +struct + {| Foo = + // meh + someValue |} + +struct {| |} diff --git a/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs.bsl new file mode 100644 index 00000000000..980b9bdf6f2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecdWithStructKeyword.fs.bsl @@ -0,0 +1,28 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprAnonRecdWithStructKeyword.fs", false, + QualifiedNameOfFile SynExprAnonRecdWithStructKeyword, [], [], + [SynModuleOrNamespace + ([SynExprAnonRecdWithStructKeyword], false, AnonModule, + [Expr + (AnonRecd + (true, None, + [(Foo, + Some + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (3,11--3,12), + Ident someValue)], + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (2,0--5,16)), + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (2,0--5,16)); + Expr + (AnonRecd + (true, None, [], + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (7,0--7,12)), + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (7,0--7,12))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (2,0--7,12), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Expression/SynExprAnonRecdWithStructKeyword.fs (4,4--4,11)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs new file mode 100644 index 00000000000..a6c3a6f90fc --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs @@ -0,0 +1,4 @@ + +{| X = 5 + Y = 6 + Z = 7 |} diff --git a/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs.bsl new file mode 100644 index 00000000000..ba1a356678f --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs.bsl @@ -0,0 +1,37 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs", + false, + QualifiedNameOfFile + SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields, [], [], + [SynModuleOrNamespace + ([SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields], false, + AnonModule, + [Expr + (AnonRecd + (false, None, + [(X, + Some + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (2,5--2,6), + Const + (Int32 5, + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (2,7--2,8))); + (Y, + Some + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (3,8--3,9), + Const + (Int32 6, + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (3,10--3,11))); + (Z, + Some + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (4,12--4,13), + Const + (Int32 7, + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (4,14--4,15)))], + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (2,0--4,18)), + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (2,0--4,18))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprAnonRecordContainsTheRangeOfTheEqualsSignInTheFields.fs (2,0--4,18), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs new file mode 100644 index 00000000000..05d15254d23 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs @@ -0,0 +1,6 @@ + +let a = + do + foobar + do! + foobarBang diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl new file mode 100644 index 00000000000..83374f1f442 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs", false, + QualifiedNameOfFile SynExprDoContainsTheRangeOfTheDoKeyword, [], [], + [SynModuleOrNamespace + ([SynExprDoContainsTheRangeOfTheDoKeyword], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (a, None), false, None, + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,4--2,5)), + None, + Sequential + (SuppressNeither, true, + Do + (Ident foobar, + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (3,4--4,14)), + DoBang + (Ident foobarBang, + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (5,4--6,18)), + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (3,4--6,18)), + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,4--2,5), + NoneAtLet, + { LeadingKeyword = + Let + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,6--2,7) })], + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,0--6,18))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs new file mode 100644 index 00000000000..54d422077db --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs @@ -0,0 +1,2 @@ + +x?k diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs.bsl new file mode 100644 index 00000000000..5d1b312e4a8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainIdent.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprDynamicDoesContainIdent.fs", false, + QualifiedNameOfFile SynExprDynamicDoesContainIdent, [], [], + [SynModuleOrNamespace + ([SynExprDynamicDoesContainIdent], false, AnonModule, + [Expr + (Dynamic + (Ident x, + /root/Expression/SynExprDynamicDoesContainIdent.fs (2,1--2,2), + Ident k, + /root/Expression/SynExprDynamicDoesContainIdent.fs (2,0--2,3)), + /root/Expression/SynExprDynamicDoesContainIdent.fs (2,0--2,3))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprDynamicDoesContainIdent.fs (2,0--2,3), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs new file mode 100644 index 00000000000..8496ad7b911 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs @@ -0,0 +1,2 @@ + +x?(g) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs.bsl new file mode 100644 index 00000000000..3bee2ce5682 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprDynamicDoesContainParentheses.fs.bsl @@ -0,0 +1,23 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprDynamicDoesContainParentheses.fs", false, + QualifiedNameOfFile SynExprDynamicDoesContainParentheses, [], [], + [SynModuleOrNamespace + ([SynExprDynamicDoesContainParentheses], false, AnonModule, + [Expr + (Dynamic + (Ident x, + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,1--2,2), + Paren + (Ident g, + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,2--2,3), + Some + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,4--2,5), + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,2--2,5)), + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,0--2,5)), + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,0--2,5))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprDynamicDoesContainParentheses.fs (2,0--2,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..72f411c0516 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,3 @@ + +for i = 1 to 10 do +printf "%d " i diff --git a/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..d8ea57b8318 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs", false, + QualifiedNameOfFile SynExprForContainsTheRangeOfTheEqualsSign, [], [], + [SynModuleOrNamespace + ([SynExprForContainsTheRangeOfTheEqualsSign], false, AnonModule, + [Expr + (For + (Yes + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,0--2,3), + Yes + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,10--2,12), + i, + Some + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,6--2,7), + Const + (Int32 1, + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,8--2,9)), + true, + Const + (Int32 10, + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,13--2,15)), + App + (NonAtomic, false, + App + (NonAtomic, false, Ident printf, + Const + (String + ("%d ", Regular, + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (3,7--3,12)), + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (3,7--3,12)), + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (3,0--3,12)), + Ident i, + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (3,0--3,14)), + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,0--3,14)), + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,0--3,14))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..560f4d83d12 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,6 @@ + +comp { + let! x = y + and! z = someFunction () + return () +} diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..6e56e1bd396 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,57 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs", + false, + QualifiedNameOfFile SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign, [], + [], + [SynModuleOrNamespace + ([SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign], false, + AnonModule, + [Expr + (App + (NonAtomic, false, Ident comp, + ComputationExpr + (false, + LetOrUseBang + (Yes + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (3,4--3,14), + false, true, + Named + (SynIdent (x, None), false, None, + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (3,9--3,10)), + Ident y, + [SynExprAndBang + (Yes + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,4--5,10), + false, true, + Named + (SynIdent (z, None), false, None, + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,9--4,10)), + App + (NonAtomic, false, Ident someFunction, + Const + (Unit, + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,26--4,28)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,13--4,28)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,4--4,28), + { EqualsRange = + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (4,11--4,12) + InKeyword = None })], + YieldOrReturn + ((false, true), + Const + (Unit, + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (5,11--5,13)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (5,4--5,13)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (3,4--5,13), + { EqualsRange = + Some + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (3,11--3,12) }), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (2,5--6,1)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (2,0--6,1)), + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (2,0--6,1))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprLetOrUseBangContainsTheRangeOfTheEqualsSign.fs (2,0--6,1), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs new file mode 100644 index 00000000000..c7a0badfa17 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs @@ -0,0 +1,2 @@ + +let x = 1 in () diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl new file mode 100644 index 00000000000..b644b1d0ae3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -0,0 +1,45 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs", false, + QualifiedNameOfFile SynExprLetOrUseContainsTheRangeOfInKeyword, [], [], + [SynModuleOrNamespace + ([SynExprLetOrUseContainsTheRangeOfInKeyword], false, AnonModule, + [Expr + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,4--2,5)), + None, + Const + (Int32 1, + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,8--2,9)), + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,4--2,5), + Yes + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,9), + { LeadingKeyword = + Let + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,6--2,7) })], + Const + (Unit, + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,13--2,15)), + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,15), + { InKeyword = + Some + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,10--2,12) }), + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,15))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs (2,0--2,15), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs new file mode 100644 index 00000000000..1f0765a5c7e --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs @@ -0,0 +1,4 @@ + +do +let x = 1 +() diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl new file mode 100644 index 00000000000..bdb048b197d --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -0,0 +1,47 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs", + false, + QualifiedNameOfFile SynExprLetOrUseDoesNotContainTheRangeOfInKeyword, [], + [], + [SynModuleOrNamespace + ([SynExprLetOrUseDoesNotContainTheRangeOfInKeyword], false, AnonModule, + [Expr + (Do + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,4--3,5)), + None, + Const + (Int32 1, + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,8--3,9)), + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,4--3,5), + Yes + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,0--3,9), + { LeadingKeyword = + Let + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,6--3,7) })], + Const + (Unit, + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (4,0--4,2)), + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (3,0--4,2), + { InKeyword = None }), + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (2,0--4,2)), + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (2,0--4,2))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs new file mode 100644 index 00000000000..7c802ec1a91 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs @@ -0,0 +1,4 @@ + +do +let e1 = e :?> Collections.DictionaryEntry +e1.Key, e1.Value diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl new file mode 100644 index 00000000000..2f783ad9bca --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -0,0 +1,69 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs", + false, + QualifiedNameOfFile + SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword, + [], [], + [SynModuleOrNamespace + ([SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword], + false, AnonModule, + [Expr + (Do + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (e1, None), false, None, + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,4--3,6)), + None, + Downcast + (Ident e, + LongIdent + (SynLongIdent + ([Collections; DictionaryEntry], + [/root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,26--3,27)], + [None; None])), + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,9--3,42)), + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,4--3,6), + Yes + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,0--3,42), + { LeadingKeyword = + Let + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,7--3,8) })], + Tuple + (false, + [LongIdent + (false, + SynLongIdent + ([e1; Key], + [/root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,2--4,3)], + [None; None]), None, + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,0--4,6)); + LongIdent + (false, + SynLongIdent + ([e1; Value], + [/root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,10--4,11)], + [None; None]), None, + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,8--4,16))], + [/root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,6--4,7)], + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (4,0--4,16)), + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (3,0--4,16), + { InKeyword = None }), + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (2,0--4,16)), + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (2,0--4,16))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs new file mode 100644 index 00000000000..f86141785d8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs @@ -0,0 +1,5 @@ + +do + let rec f = () + and g = () in + () diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl new file mode 100644 index 00000000000..715bd06b761 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl @@ -0,0 +1,74 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs", + false, + QualifiedNameOfFile + SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword, [], [], + [SynModuleOrNamespace + ([SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword], + false, AnonModule, + [Expr + (Do + (LetOrUse + (true, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (f, None), false, None, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,12--3,13)), + None, + Const + (Unit, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,16--3,18)), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,12--3,13), + Yes + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,4--3,18), + { LeadingKeyword = + LetRec + (/root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,4--3,7), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,8--3,11)) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,14--3,15) }); + SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (g, None), false, None, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,8--4,9)), + None, + Const + (Unit, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,12--4,14)), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,8--4,9), + Yes + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,4--4,14), + { LeadingKeyword = + And + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,4--4,7) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,10--4,11) })], + Const + (Unit, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (5,4--5,6)), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (3,4--5,6), + { InKeyword = + Some + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (4,15--4,17) }), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (2,0--5,6)), + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (2,0--5,6))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs new file mode 100644 index 00000000000..aa58db744b4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs @@ -0,0 +1,3 @@ + +match! x with +| y -> z diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl new file mode 100644 index 00000000000..4c55cbd2149 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs", + false, + QualifiedNameOfFile + SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword, [], [], + [SynModuleOrNamespace + ([SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword], false, + AnonModule, + [Expr + (MatchBang + (Yes + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--2,13), + Ident x, + [SynMatchClause + (Named + (SynIdent (y, None), false, None, + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (3,2--3,3)), + None, Ident z, + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (3,2--3,8), + Yes, + { ArrowRange = + Some + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (3,4--3,6) + BarRange = + Some + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (3,0--3,1) })], + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--3,8), + { MatchBangKeyword = + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--2,6) + WithKeyword = + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,9--2,13) }), + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--3,8))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs new file mode 100644 index 00000000000..70ab10a0400 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs @@ -0,0 +1,3 @@ + +match x with +| y -> z diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl new file mode 100644 index 00000000000..fff742faaa5 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs", + false, + QualifiedNameOfFile SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword, + [], [], + [SynModuleOrNamespace + ([SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword], false, + AnonModule, + [Expr + (Match + (Yes + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--2,12), + Ident x, + [SynMatchClause + (Named + (SynIdent (y, None), false, None, + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (3,2--3,3)), + None, Ident z, + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (3,2--3,8), + Yes, + { ArrowRange = + Some + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (3,4--3,6) + BarRange = + Some + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (3,0--3,1) })], + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--3,8), + { MatchKeyword = + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--2,5) + WithKeyword = + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,8--2,12) }), + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--3,8))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs new file mode 100644 index 00000000000..80f441b3536 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs @@ -0,0 +1,6 @@ + +{ new obj() with + member x.ToString() = "INotifyEnumerableInternal" + interface INotifyEnumerableInternal<'T> + interface IEnumerable<_> with + member x.GetEnumerator() = null } diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl new file mode 100644 index 00000000000..e8521adb317 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl @@ -0,0 +1,141 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs", false, + QualifiedNameOfFile SynExprObjExprContainsTheRangeOfWithKeyword, [], [], + [SynModuleOrNamespace + ([SynExprObjExprContainsTheRangeOfWithKeyword], false, AnonModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([obj], [], [None])), + Some + (Const + (Unit, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,9--2,11)), + None), + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,12--2,16), + [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; ToString], + [/root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,12--3,13)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,21--3,23)), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,21--3,23))], + None, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,11--3,23)), + None, + Const + (String + ("INotifyEnumerableInternal", Regular, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,26--3,53)), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,26--3,53)), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,11--3,23), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,24--3,25) }), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (3,4--3,53))], + [SynInterfaceImpl + (App + (LongIdent + (SynLongIdent + ([INotifyEnumerableInternal], [], [None])), + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (4,37--4,38), + [Var + (SynTypar (T, None, false), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (4,38--4,40))], + [], + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (4,40--4,41), + false, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (4,12--4,41)), + None, [], [], + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (4,2--5,2)); + SynInterfaceImpl + (App + (LongIdent (SynLongIdent ([IEnumerable], [], [None])), + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,23--5,24), + [Anon + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,24--5,25)], + [], + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,25--5,26), + false, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,12--5,26)), + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,27--5,31), + [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; GetEnumerator], + [/root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,12--6,13)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,26--6,28)), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,26--6,28))], + None, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,11--6,28)), + None, + Null + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,31--6,35), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,11--6,28), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,4--6,10) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,29--6,30) }), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (6,4--6,35))], + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (5,2--6,37))], + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,2--2,11), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,0--6,37)), + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,0--6,37))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs (2,0--6,37), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs new file mode 100644 index 00000000000..99b683df9fe --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs @@ -0,0 +1,7 @@ + +[] +type CFoo() = + abstract AbstractClassPropertySet: string with set + +{ new CFoo() with + override this.AbstractClassPropertySet with set (v:string) = () } diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl new file mode 100644 index 00000000000..641a610e4cb --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl @@ -0,0 +1,158 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprObjWithSetter.fs", false, + QualifiedNameOfFile SynExprObjWithSetter, [], [], + [SynModuleOrNamespace + ([SynExprObjWithSetter], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent ([AbstractClass], [], [None]) + ArgExpr = + Const + (Unit, + /root/Expression/SynExprObjWithSetter.fs (2,2--2,15)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Expression/SynExprObjWithSetter.fs (2,2--2,15) }] + Range = + /root/Expression/SynExprObjWithSetter.fs (2,0--2,17) }], + None, [], [CFoo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Expression/SynExprObjWithSetter.fs (3,5--3,9)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Expression/SynExprObjWithSetter.fs (3,9--3,11)), + None, + PreXmlDoc ((3,9), FSharp.Compiler.Xml.XmlDocCollector), + /root/Expression/SynExprObjWithSetter.fs (3,5--3,9), + { AsKeyword = None }); + AbstractSlot + (SynValSig + ([], SynIdent (AbstractClassPropertySet, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([string], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Expression/SynExprObjWithSetter.fs (4,4--4,54), + { LeadingKeyword = + Abstract + /root/Expression/SynExprObjWithSetter.fs (4,4--4,12) + InlineKeyword = None + WithKeyword = + Some + /root/Expression/SynExprObjWithSetter.fs (4,46--4,50) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + /root/Expression/SynExprObjWithSetter.fs (4,4--4,54), + { GetSetKeywords = + Some + (Set + /root/Expression/SynExprObjWithSetter.fs (4,51--4,54)) })], + /root/Expression/SynExprObjWithSetter.fs (4,4--4,54)), [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Expression/SynExprObjWithSetter.fs (3,9--3,11)), + None, + PreXmlDoc ((3,9), FSharp.Compiler.Xml.XmlDocCollector), + /root/Expression/SynExprObjWithSetter.fs (3,5--3,9), + { AsKeyword = None })), + /root/Expression/SynExprObjWithSetter.fs (2,0--4,54), + { LeadingKeyword = + Type /root/Expression/SynExprObjWithSetter.fs (3,0--3,4) + EqualsRange = + Some /root/Expression/SynExprObjWithSetter.fs (3,12--3,13) + WithKeyword = None })], + /root/Expression/SynExprObjWithSetter.fs (2,0--4,54)); + Expr + (ObjExpr + (LongIdent (SynLongIdent ([CFoo], [], [None])), + Some + (Const + (Unit, + /root/Expression/SynExprObjWithSetter.fs (6,10--6,12)), + None), + Some /root/Expression/SynExprObjWithSetter.fs (6,13--6,17), [], + [GetSetMember + (None, + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some v)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; AbstractClassPropertySet], + [/root/Expression/SynExprObjWithSetter.fs (7,17--7,18)], + [None; None]), Some set, None, + Pats + [Paren + (Typed + (Named + (SynIdent (v, None), false, None, + /root/Expression/SynExprObjWithSetter.fs (7,53--7,54)), + LongIdent + (SynLongIdent ([string], [], [None])), + /root/Expression/SynExprObjWithSetter.fs (7,53--7,61)), + /root/Expression/SynExprObjWithSetter.fs (7,52--7,62))], + None, + /root/Expression/SynExprObjWithSetter.fs (7,48--7,62)), + None, + Const + (Unit, + /root/Expression/SynExprObjWithSetter.fs (7,65--7,67)), + /root/Expression/SynExprObjWithSetter.fs (7,48--7,62), + NoneAtInvisible, + { LeadingKeyword = + Override + /root/Expression/SynExprObjWithSetter.fs (7,4--7,12) + InlineKeyword = None + EqualsRange = + Some + /root/Expression/SynExprObjWithSetter.fs (7,63--7,64) })), + /root/Expression/SynExprObjWithSetter.fs (7,4--7,67), + { InlineKeyword = None + WithKeyword = + /root/Expression/SynExprObjWithSetter.fs (7,43--7,47) + GetKeyword = None + AndKeyword = None + SetKeyword = + Some + /root/Expression/SynExprObjWithSetter.fs (7,48--7,51) })], + [], /root/Expression/SynExprObjWithSetter.fs (6,2--6,12), + /root/Expression/SynExprObjWithSetter.fs (6,0--7,69)), + /root/Expression/SynExprObjWithSetter.fs (6,0--7,69))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprObjWithSetter.fs (2,0--7,69), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs b/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs new file mode 100644 index 00000000000..46ac3c0cddd --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs @@ -0,0 +1,7 @@ + +{ V = v + X = // some comment + someLongFunctionCall + a + b + c } diff --git a/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl new file mode 100644 index 00000000000..5efcf861814 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs", + false, + QualifiedNameOfFile + SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField, [], [], + [SynModuleOrNamespace + ([SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField], + false, AnonModule, + [Expr + (Record + (None, None, + [SynExprRecordField + ((SynLongIdent ([V], [], [None]), true), + Some + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,4--2,5), + Some (Ident v), + Some + (/root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,8--3,2), + None)); + SynExprRecordField + ((SynLongIdent ([X], [], [None]), true), + Some + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (3,9--3,10), + Some + (App + (NonAtomic, false, + App + (NonAtomic, false, + App + (NonAtomic, false, Ident someLongFunctionCall, + Ident a, + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (4,16--5,21)), + Ident b, + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (4,16--6,21)), + Ident c, + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (4,16--7,21))), + None)], + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--7,23)), + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--7,23))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (2,0--7,23), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Expression/SynExprRecordContainsTheRangeOfTheEqualsSignInSynExprRecordField.fs (3,13--3,28)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs b/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs new file mode 100644 index 00000000000..ffa3ce69c21 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs @@ -0,0 +1,5 @@ + +{ JobType = EsriBoundaryImport + FileToImport = filePath + State = state + DryRun = args.DryRun } diff --git a/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs.bsl new file mode 100644 index 00000000000..5113634fe8c --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs.bsl @@ -0,0 +1,79 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs", + false, QualifiedNameOfFile SynExprRecordFieldsContainCorrectAmountOfTrivia, + [], [], + [SynModuleOrNamespace + ([SynExprRecordFieldsContainCorrectAmountOfTrivia], false, AnonModule, + [Expr + (Record + (None, None, + [SynExprRecordField + ((SynLongIdent ([JobType], [], [None]), true), + Some + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,10--2,11), + Some + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (5,13--5,14)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (4,12--4,13)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), + None, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (3,19--3,20)), + App + (NonAtomic, false, + Ident EsriBoundaryImport, + Ident FileToImport, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--3,18)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--3,20)), + App + (NonAtomic, false, Ident filePath, + Ident State, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (3,21--4,11)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--4,11)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--4,13)), + App + (NonAtomic, false, Ident state, Ident DryRun, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (4,14--5,12)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--5,12)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--5,14)), + LongIdent + (false, + SynLongIdent + ([args; DryRun], + [/root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (5,19--5,20)], + [None; None]), None, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (5,15--5,26)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,12--5,26))), + None)], + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,0--5,28)), + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,0--5,28))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprRecordFieldsContainCorrectAmountOfTrivia.fs (2,0--5,28), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs b/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs new file mode 100644 index 00000000000..cf160929fda --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs @@ -0,0 +1,2 @@ + +x?v <- 2 diff --git a/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs.bsl new file mode 100644 index 00000000000..04cabb14165 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprSetWithSynExprDynamic.fs.bsl @@ -0,0 +1,23 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprSetWithSynExprDynamic.fs", false, + QualifiedNameOfFile SynExprSetWithSynExprDynamic, [], [], + [SynModuleOrNamespace + ([SynExprSetWithSynExprDynamic], false, AnonModule, + [Expr + (Set + (Dynamic + (Ident x, + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,1--2,2), + Ident v, + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,0--2,3)), + Const + (Int32 2, + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,7--2,8)), + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,0--2,8)), + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,0--2,8))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprSetWithSynExprDynamic.fs (2,0--2,8), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs new file mode 100644 index 00000000000..4fb48c6dbdf --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs @@ -0,0 +1,5 @@ + +try +x +finally +() diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl new file mode 100644 index 00000000000..010c0914890 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl @@ -0,0 +1,30 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs", + false, + QualifiedNameOfFile + SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword, [], [], + [SynModuleOrNamespace + ([SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword], false, + AnonModule, + [Expr + (TryFinally + (Ident x, + Const + (Unit, + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (5,0--5,2)), + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--5,2), + Yes + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--2,3), + Yes + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (4,0--4,7), + { TryKeyword = + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--2,3) + FinallyKeyword = + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (4,0--4,7) }), + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--5,2))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs new file mode 100644 index 00000000000..6203ff40dcf --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs @@ -0,0 +1,5 @@ + +try +x +with +| ex -> y diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl new file mode 100644 index 00000000000..fe6842c2c2a --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl @@ -0,0 +1,44 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs", + false, + QualifiedNameOfFile SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword, + [], [], + [SynModuleOrNamespace + ([SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword], false, + AnonModule, + [Expr + (TryWith + (Ident x, + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (5,2--5,4)), + None, Ident y, + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (5,2--5,9), + Yes, + { ArrowRange = + Some + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (5,5--5,7) + BarRange = + Some + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (5,0--5,1) })], + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--5,9), + Yes + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--2,3), + Yes + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (4,0--4,4), + { TryKeyword = + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--2,3) + TryToWithRange = + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--4,4) + WithKeyword = + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (4,0--4,4) + WithToEndRange = + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (4,0--5,9) }), + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--5,9))], + PreXmlDocEmpty, [], None, + /root/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs new file mode 100644 index 00000000000..f329fe0ce6d --- /dev/null +++ b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs @@ -0,0 +1,2 @@ + +extern void GetProcessHeap() diff --git a/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl new file mode 100644 index 00000000000..8b5766b3eae --- /dev/null +++ b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl @@ -0,0 +1,62 @@ +ImplFile + (ParsedImplFileInput + ("/root/Extern/ExternKeywordIsPresentInTrivia.fs", false, + QualifiedNameOfFile ExternKeywordIsPresentInTrivia, [], [], + [SynModuleOrNamespace + ([ExternKeywordIsPresentInTrivia], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([GetProcessHeap], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Tuple + (false, [], + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,26--2,27))], + None, + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,12--2,26)), + Some + (SynBindingReturnInfo + (App + (LongIdent + (SynLongIdent + ([unit], [], [Some (OriginalNotation "void")])), + None, [], [], None, false, + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,7--2,11)), + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,7--2,11), + [], { ColonRange = None })), + Typed + (App + (NonAtomic, false, Ident failwith, + Const + (String + ("extern was not given a DllImport attribute", + Regular, + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,27--2,28)), + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,27--2,28)), + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,28)), + App + (LongIdent + (SynLongIdent + ([unit], [], [Some (OriginalNotation "void")])), + None, [], [], None, false, + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,7--2,11)), + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,28)), + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,28), + NoneAtInvisible, + { LeadingKeyword = + Extern + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,6) + InlineKeyword = None + EqualsRange = None })], + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,28))], + PreXmlDocEmpty, [], None, + /root/Extern/ExternKeywordIsPresentInTrivia.fs (2,0--2,28), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs b/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs new file mode 100644 index 00000000000..bbed0993ad0 --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs @@ -0,0 +1,5 @@ + +if a then +b +else (* some long comment here *) if c then +d diff --git a/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs.bsl new file mode 100644 index 00000000000..28b6f59451e --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/CommentBetweenElseAndIf.fs.bsl @@ -0,0 +1,43 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/CommentBetweenElseAndIf.fs", false, + QualifiedNameOfFile CommentBetweenElseAndIf, [], [], + [SynModuleOrNamespace + ([CommentBetweenElseAndIf], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, + Some + (IfThenElse + (Ident c, Ident d, None, + Yes + /root/IfThenElse/CommentBetweenElseAndIf.fs (4,34--4,43), + false, + /root/IfThenElse/CommentBetweenElseAndIf.fs (4,34--5,1), + { IfKeyword = + /root/IfThenElse/CommentBetweenElseAndIf.fs (4,34--4,36) + IsElif = false + ThenKeyword = + /root/IfThenElse/CommentBetweenElseAndIf.fs (4,39--4,43) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/CommentBetweenElseAndIf.fs (4,34--4,43) })), + Yes /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--2,9), + false, /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--5,1), + { IfKeyword = + /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/CommentBetweenElseAndIf.fs (2,5--2,9) + ElseKeyword = + Some /root/IfThenElse/CommentBetweenElseAndIf.fs (4,0--4,4) + IfToThenRange = + /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--2,9) }), + /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--5,1))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/CommentBetweenElseAndIf.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [BlockComment /root/IfThenElse/CommentBetweenElseAndIf.fs (4,5--4,33)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs new file mode 100644 index 00000000000..b9929cbf6db --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs @@ -0,0 +1,10 @@ + +if a then + b +elif c then + d +else + if e then + f + else + g diff --git a/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl new file mode 100644 index 00000000000..d9dd0a3dd4a --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl @@ -0,0 +1,59 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/DeeplyNestedIfThenElse.fs", false, + QualifiedNameOfFile DeeplyNestedIfThenElse, [], [], + [SynModuleOrNamespace + ([DeeplyNestedIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, + Some + (IfThenElse + (Ident c, Ident d, + Some + (IfThenElse + (Ident e, Ident f, Some (Ident g), + Yes + /root/IfThenElse/DeeplyNestedIfThenElse.fs (7,8--7,17), + false, + /root/IfThenElse/DeeplyNestedIfThenElse.fs (7,8--10,13), + { IfKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (7,8--7,10) + IsElif = false + ThenKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (7,13--7,17) + ElseKeyword = + Some + /root/IfThenElse/DeeplyNestedIfThenElse.fs (9,8--9,12) + IfToThenRange = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (7,8--7,17) })), + Yes + /root/IfThenElse/DeeplyNestedIfThenElse.fs (4,0--4,11), + false, + /root/IfThenElse/DeeplyNestedIfThenElse.fs (4,0--10,13), + { IfKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (4,0--4,4) + IsElif = true + ThenKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (4,7--4,11) + ElseKeyword = + Some + /root/IfThenElse/DeeplyNestedIfThenElse.fs (6,0--6,4) + IfToThenRange = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (4,0--4,11) })), + Yes /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--2,9), + false, /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--10,13), + { IfKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,5--2,9) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--10,13))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/DeeplyNestedIfThenElse.fs (2,0--11,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs new file mode 100644 index 00000000000..5e31acf7159 --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs @@ -0,0 +1,2 @@ + +if a then b else c diff --git a/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl new file mode 100644 index 00000000000..6711c41678c --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs", false, + QualifiedNameOfFile ElseKeywordInSimpleIfThenElse, [], [], + [SynModuleOrNamespace + ([ElseKeywordInSimpleIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, Some (Ident c), + Yes + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--2,9), + false, + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--2,18), + { IfKeyword = + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,5--2,9) + ElseKeyword = + Some + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,12--2,16) + IfToThenRange = + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--2,18))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/ElseKeywordInSimpleIfThenElse.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs new file mode 100644 index 00000000000..c45e53028cc --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs @@ -0,0 +1,2 @@ + +if a then b diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl new file mode 100644 index 00000000000..c3f5d622334 --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl @@ -0,0 +1,25 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/IfKeywordInIfThenElse.fs", false, + QualifiedNameOfFile IfKeywordInIfThenElse, [], [], + [SynModuleOrNamespace + ([IfKeywordInIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, None, + Yes /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--2,9), false, + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--2,11), + { IfKeyword = + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,5--2,9) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--2,11))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/IfKeywordInIfThenElse.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs new file mode 100644 index 00000000000..07895f7f1bd --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs @@ -0,0 +1,4 @@ + +if a +then b +else c diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl new file mode 100644 index 00000000000..1000eb53ca1 --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs", false, + QualifiedNameOfFile IfThenAndElseKeywordOnSeparateLines, [], [], + [SynModuleOrNamespace + ([IfThenAndElseKeywordOnSeparateLines], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, Some (Ident c), + Yes + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--3,4), + false, + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--4,6), + { IfKeyword = + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (3,0--3,4) + ElseKeyword = + Some + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (4,0--4,4) + IfToThenRange = + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--3,4) }), + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--4,6))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs new file mode 100644 index 00000000000..cd752c0d137 --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs @@ -0,0 +1,4 @@ + +if a then +b +elif c then d diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl new file mode 100644 index 00000000000..50f27031deb --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl @@ -0,0 +1,40 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/NestedElifInIfThenElse.fs", false, + QualifiedNameOfFile NestedElifInIfThenElse, [], [], + [SynModuleOrNamespace + ([NestedElifInIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, + Some + (IfThenElse + (Ident c, Ident d, None, + Yes + /root/IfThenElse/NestedElifInIfThenElse.fs (4,0--4,11), + false, + /root/IfThenElse/NestedElifInIfThenElse.fs (4,0--4,13), + { IfKeyword = + /root/IfThenElse/NestedElifInIfThenElse.fs (4,0--4,4) + IsElif = true + ThenKeyword = + /root/IfThenElse/NestedElifInIfThenElse.fs (4,7--4,11) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/NestedElifInIfThenElse.fs (4,0--4,11) })), + Yes /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--2,9), + false, /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--4,13), + { IfKeyword = + /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/NestedElifInIfThenElse.fs (2,5--2,9) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--4,13))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/NestedElifInIfThenElse.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs new file mode 100644 index 00000000000..47b75748eca --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs @@ -0,0 +1,5 @@ + +if a then + b +else + if c then d diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl new file mode 100644 index 00000000000..dec1198d4ea --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/NestedElseIfInIfThenElse.fs", false, + QualifiedNameOfFile NestedElseIfInIfThenElse, [], [], + [SynModuleOrNamespace + ([NestedElseIfInIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, + Some + (IfThenElse + (Ident c, Ident d, None, + Yes + /root/IfThenElse/NestedElseIfInIfThenElse.fs (5,4--5,13), + false, + /root/IfThenElse/NestedElseIfInIfThenElse.fs (5,4--5,15), + { IfKeyword = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (5,4--5,6) + IsElif = false + ThenKeyword = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (5,9--5,13) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (5,4--5,13) })), + Yes /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--2,9), + false, /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--5,15), + { IfKeyword = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,5--2,9) + ElseKeyword = + Some /root/IfThenElse/NestedElseIfInIfThenElse.fs (4,0--4,4) + IfToThenRange = + /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--5,15))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/NestedElseIfInIfThenElse.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs new file mode 100644 index 00000000000..6ac44563cbb --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs @@ -0,0 +1,5 @@ + +if a then +b +else if c then +d diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl new file mode 100644 index 00000000000..301f95221ae --- /dev/null +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl @@ -0,0 +1,44 @@ +ImplFile + (ParsedImplFileInput + ("/root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs", false, + QualifiedNameOfFile NestedElseIfOnTheSameLineInIfThenElse, [], [], + [SynModuleOrNamespace + ([NestedElseIfOnTheSameLineInIfThenElse], false, AnonModule, + [Expr + (IfThenElse + (Ident a, Ident b, + Some + (IfThenElse + (Ident c, Ident d, None, + Yes + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,5--4,14), + false, + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,5--5,1), + { IfKeyword = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,5--4,7) + IsElif = false + ThenKeyword = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,10--4,14) + ElseKeyword = None + IfToThenRange = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,5--4,14) })), + Yes + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--2,9), + false, + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--5,1), + { IfKeyword = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--2,2) + IsElif = false + ThenKeyword = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,5--2,9) + ElseKeyword = + Some + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (4,0--4,4) + IfToThenRange = + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--2,9) }), + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--5,1))], + PreXmlDocEmpty, [], None, + /root/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs new file mode 100644 index 00000000000..84b90a40a2c --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs @@ -0,0 +1,6 @@ + +fun (x, _) + ({ Y = h::_ }) + (SomePattern(z)) + -> + x * y + z diff --git a/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl new file mode 100644 index 00000000000..78e8d52e045 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl @@ -0,0 +1,244 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs", false, + QualifiedNameOfFile ComplexArgumentsLambdaHasArrowRange, [], [], + [SynModuleOrNamespace + ([ComplexArgumentsLambdaHasArrowRange], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (x, None, false, false, false, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,5--2,6)); + Id + (_arg3, None, true, false, false, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,8--2,9))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,4--2,10)), + Lambda + (false, true, + SimplePats + ([Id + (_arg2, None, true, false, false, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,4--3,18)), + Lambda + (false, true, + SimplePats + ([Id + (_arg1, None, true, false, false, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,4--4,20)), + Match + (NoneAtInvisible, Ident _arg2, + [SynMatchClause + (Record + ([(([], Y), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,9--3,10), + ListCons + (Named + (SynIdent (h, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,12)), + Wild + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,14--3,15), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,15), + { ColonColonRange = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,12--3,14) }))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17)), + None, + Match + (NoneAtInvisible, Ident _arg1, + [SynMatchClause + (LongIdent + (SynLongIdent ([SomePattern], [], [None]), + None, None, + Pats + [Paren + (Named + (SynIdent (z, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,17--4,18)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,16--4,19))], + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,10--6,11)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some + (OriginalNotation "*")]), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,6--6,7)), + Ident x, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,7)), + Ident y, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,9)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,11)), + Ident z, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,13)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13), + { MatchKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13) + WithKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13) }), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13), + { MatchKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13) + WithKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13) }), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,0--6,13), + { ArrowRange = + Some + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (5,4--5,6) }), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,0--6,13), + { ArrowRange = + Some + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (5,4--5,6) }), + Some + ([Paren + (Tuple + (false, + [Named + (SynIdent (x, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,5--2,6)); + Wild + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,8--2,9)], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,5--2,9)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,4--2,10)); + Paren + (Record + ([(([], Y), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,9--3,10), + ListCons + (Named + (SynIdent (h, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,12)), + Wild + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,14--3,15), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,15), + { ColonColonRange = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,12--3,14) }))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,4--3,18)); + Paren + (LongIdent + (SynLongIdent ([SomePattern], [], [None]), None, None, + Pats + [Paren + (Named + (SynIdent (z, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,17--4,18)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,16--4,19))], + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,4--4,20))], + Match + (NoneAtInvisible, Ident _arg2, + [SynMatchClause + (Record + ([(([], Y), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,9--3,10), + ListCons + (Named + (SynIdent (h, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,12)), + Wild + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,14--3,15), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,11--3,15), + { ColonColonRange = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,12--3,14) }))], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17)), + None, + Match + (NoneAtInvisible, Ident _arg1, + [SynMatchClause + (LongIdent + (SynLongIdent ([SomePattern], [], [None]), + None, None, + Pats + [Paren + (Named + (SynIdent (z, None), false, None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,17--4,18)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,16--4,19))], + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,10--6,11)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), + None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,6--6,7)), + Ident x, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,7)), + Ident y, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,9)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,11)), + Ident z, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (6,4--6,13)), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--4,19), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13), + { MatchKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13) + WithKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (4,5--6,13) }), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--3,17), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13), + { MatchKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13) + WithKeyword = + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (3,5--6,13) })), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,0--6,13), + { ArrowRange = + Some + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (5,4--5,6) }), + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,0--6,13))], + PreXmlDocEmpty, [], None, + /root/Lambda/ComplexArgumentsLambdaHasArrowRange.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs new file mode 100644 index 00000000000..612266ef632 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs @@ -0,0 +1,2 @@ + +fun { X = x } -> x * 2 diff --git a/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl new file mode 100644 index 00000000000..774fcfe5189 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl @@ -0,0 +1,102 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/DestructedLambdaHasArrowRange.fs", false, + QualifiedNameOfFile DestructedLambdaHasArrowRange, [], [], + [SynModuleOrNamespace + ([DestructedLambdaHasArrowRange], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (_arg1, None, true, false, false, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13))], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13)), + Match + (NoneAtInvisible, Ident _arg1, + [SynMatchClause + (Record + ([(([], X), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,8--2,9), + Named + (SynIdent (x, None), false, None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,10--2,11)))], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,19--2,20)), + Ident x, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,17--2,20)), + Const + (Int32 2, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,21--2,22)), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,17--2,22)), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22), + { MatchKeyword = + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22) + WithKeyword = + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22) }), + Some + ([Record + ([(([], X), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,8--2,9), + Named + (SynIdent (x, None), false, None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,10--2,11)))], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13))], + Match + (NoneAtInvisible, Ident _arg1, + [SynMatchClause + (Record + ([(([], X), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,8--2,9), + Named + (SynIdent (x, None), false, None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,10--2,11)))], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,19--2,20)), + Ident x, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,17--2,20)), + Const + (Int32 2, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,21--2,22)), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,17--2,22)), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,13), + No, { ArrowRange = None + BarRange = None })], + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22), + { MatchKeyword = + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22) + WithKeyword = + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,4--2,22) })), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,0--2,22), + { ArrowRange = + Some + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,14--2,16) }), + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,0--2,22))], + PreXmlDocEmpty, [], None, + /root/Lambda/DestructedLambdaHasArrowRange.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs new file mode 100644 index 00000000000..56939e2a722 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs @@ -0,0 +1,2 @@ + +fun a (b, _) c -> x diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl new file mode 100644 index 00000000000..438e45ecc9d --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl @@ -0,0 +1,72 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs", + false, + QualifiedNameOfFile LambdaWithTupleParameterWithWildCardGivesCorrectBody, + [], [], + [SynModuleOrNamespace + ([LambdaWithTupleParameterWithWildCardGivesCorrectBody], false, + AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (a, None, false, false, false, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,4--2,5))], + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,4--2,5)), + Lambda + (false, true, + SimplePats + ([Id + (b, None, false, false, false, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,7--2,8)); + Id + (_arg1, None, true, false, false, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,10--2,11))], + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,6--2,12)), + Lambda + (false, true, + SimplePats + ([Id + (c, None, false, false, false, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,13--2,14))], + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,13--2,14)), + Ident x, None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,0--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,15--2,17) }), + None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,0--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,15--2,17) }), + Some + ([Named + (SynIdent (a, None), false, None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,4--2,5)); + Paren + (Tuple + (false, + [Named + (SynIdent (b, None), false, None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,7--2,8)); + Wild + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,10--2,11)], + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,7--2,11)), + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,6--2,12)); + Named + (SynIdent (c, None), false, None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,13--2,14))], + Ident x), + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,0--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,15--2,17) }), + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,0--2,19))], + PreXmlDocEmpty, [], None, + /root/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs new file mode 100644 index 00000000000..3649d2412ff --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs @@ -0,0 +1,2 @@ + +fun a b -> x diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl new file mode 100644 index 00000000000..48e43ee677c --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl @@ -0,0 +1,44 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs", false, + QualifiedNameOfFile LambdaWithTwoParametersGivesCorrectBody, [], [], + [SynModuleOrNamespace + ([LambdaWithTwoParametersGivesCorrectBody], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (a, None, false, false, false, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,4--2,5))], + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,4--2,5)), + Lambda + (false, true, + SimplePats + ([Id + (b, None, false, false, false, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,6--2,7))], + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,6--2,7)), + Ident x, None, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,0--2,12), + { ArrowRange = + Some + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,8--2,10) }), + Some + ([Named + (SynIdent (a, None), false, None, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,4--2,5)); + Named + (SynIdent (b, None), false, None, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,6--2,7))], + Ident x), + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,0--2,12), + { ArrowRange = + Some + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,8--2,10) }), + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,0--2,12))], + PreXmlDocEmpty, [], None, + /root/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs new file mode 100644 index 00000000000..d1701622d03 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs @@ -0,0 +1,2 @@ + +fun a _ b -> x diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl new file mode 100644 index 00000000000..c074d9d4315 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs", false, + QualifiedNameOfFile LambdaWithWildCardParameterGivesCorrectBody, [], [], + [SynModuleOrNamespace + ([LambdaWithWildCardParameterGivesCorrectBody], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (a, None, false, false, false, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,4--2,5))], + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,4--2,5)), + Lambda + (false, true, + SimplePats + ([Id + (_arg1, None, true, false, false, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,6--2,7))], + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,6--2,7)), + Lambda + (false, true, + SimplePats + ([Id + (b, None, false, false, false, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,8--2,9))], + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,8--2,9)), + Ident x, None, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,0--2,14), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,10--2,12) }), + None, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,0--2,14), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,10--2,12) }), + Some + ([Named + (SynIdent (a, None), false, None, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,4--2,5)); + Wild + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,6--2,7); + Named + (SynIdent (b, None), false, None, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,8--2,9))], + Ident x), + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,0--2,14), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,10--2,12) }), + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,0--2,14))], + PreXmlDocEmpty, [], None, + /root/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs new file mode 100644 index 00000000000..26389628b0a --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs @@ -0,0 +1,2 @@ + +fun _ -> fun _ -> x diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl new file mode 100644 index 00000000000..155791b2382 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl @@ -0,0 +1,62 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs", + false, + QualifiedNameOfFile LambdaWithWildCardThatReturnsALambdaGivesCorrectBody, + [], [], + [SynModuleOrNamespace + ([LambdaWithWildCardThatReturnsALambdaGivesCorrectBody], false, + AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (_arg2, None, true, false, false, + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,4--2,5))], + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,4--2,5)), + Lambda + (false, false, + SimplePats + ([Id + (_arg1, None, true, false, false, + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14))], + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14)), + Ident x, + Some + ([Wild + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14)], + Ident x), + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,9--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,15--2,17) }), + Some + ([Wild + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,4--2,5)], + Lambda + (false, false, + SimplePats + ([Id + (_arg1, None, true, false, false, + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14))], + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14)), + Ident x, + Some + ([Wild + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,13--2,14)], + Ident x), + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,9--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,15--2,17) })), + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,0--2,19), + { ArrowRange = + Some + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,6--2,8) }), + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,0--2,19))], + PreXmlDocEmpty, [], None, + /root/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs new file mode 100644 index 00000000000..042611c3ee0 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs @@ -0,0 +1,4 @@ + +fun x y z + -> + x * y * z diff --git a/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl new file mode 100644 index 00000000000..d8042dd6a86 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl @@ -0,0 +1,112 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/MultilineLambdaHasArrowRange.fs", false, + QualifiedNameOfFile MultilineLambdaHasArrowRange, [], [], + [SynModuleOrNamespace + ([MultilineLambdaHasArrowRange], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (x, None, false, false, false, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,4--2,5))], + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,4--2,5)), + Lambda + (false, true, + SimplePats + ([Id + (y, None, false, false, false, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,6--2,7))], + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,6--2,7)), + Lambda + (false, true, + SimplePats + ([Id + (z, None, false, false, false, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,8--2,9))], + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,8--2,9)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,38--4,39)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,34--4,35)), + Ident x, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,35)), + Ident y, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,37)), + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,39)), + Ident z, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,41)), + None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,0--4,41), + { ArrowRange = + Some + /root/Lambda/MultilineLambdaHasArrowRange.fs (3,28--3,30) }), + None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,0--4,41), + { ArrowRange = + Some + /root/Lambda/MultilineLambdaHasArrowRange.fs (3,28--3,30) }), + Some + ([Named + (SynIdent (x, None), false, None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,4--2,5)); + Named + (SynIdent (y, None), false, None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,6--2,7)); + Named + (SynIdent (z, None), false, None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,8--2,9))], + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], [Some (OriginalNotation "*")]), + None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,38--4,39)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], + [Some (OriginalNotation "*")]), None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,34--4,35)), + Ident x, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,35)), + Ident y, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,37)), + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,39)), + Ident z, + /root/Lambda/MultilineLambdaHasArrowRange.fs (4,32--4,41))), + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,0--4,41), + { ArrowRange = + Some + /root/Lambda/MultilineLambdaHasArrowRange.fs (3,28--3,30) }), + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,0--4,41))], + PreXmlDocEmpty, [], None, + /root/Lambda/MultilineLambdaHasArrowRange.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs new file mode 100644 index 00000000000..4ed2878ab9d --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs @@ -0,0 +1,2 @@ + +fun x -> x diff --git a/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl new file mode 100644 index 00000000000..5b40dec3ad2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/SimpleLambdaHasArrowRange.fs", false, + QualifiedNameOfFile SimpleLambdaHasArrowRange, [], [], + [SynModuleOrNamespace + ([SimpleLambdaHasArrowRange], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (x, None, false, false, false, + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,4--2,5))], + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,4--2,5)), + Ident x, + Some + ([Named + (SynIdent (x, None), false, None, + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,4--2,5))], + Ident x), + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,0--2,10), + { ArrowRange = + Some /root/Lambda/SimpleLambdaHasArrowRange.fs (2,6--2,8) }), + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,0--2,10))], + PreXmlDocEmpty, [], None, + /root/Lambda/SimpleLambdaHasArrowRange.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs new file mode 100644 index 00000000000..d481f3351fd --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs @@ -0,0 +1,2 @@ + +fun (x, _) -> x * 3 diff --git a/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl new file mode 100644 index 00000000000..f7a18c3466e --- /dev/null +++ b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl @@ -0,0 +1,69 @@ +ImplFile + (ParsedImplFileInput + ("/root/Lambda/TupleInLambdaHasArrowRange.fs", false, + QualifiedNameOfFile TupleInLambdaHasArrowRange, [], [], + [SynModuleOrNamespace + ([TupleInLambdaHasArrowRange], false, AnonModule, + [Expr + (Lambda + (false, false, + SimplePats + ([Id + (x, None, false, false, false, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,5--2,6)); + Id + (_arg1, None, true, false, false, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,8--2,9))], + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,4--2,10)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], [Some (OriginalNotation "*")]), + None, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,16--2,17)), + Ident x, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,14--2,17)), + Const + (Int32 3, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,18--2,19)), + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,14--2,19)), + Some + ([Paren + (Tuple + (false, + [Named + (SynIdent (x, None), false, None, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,5--2,6)); + Wild + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,8--2,9)], + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,5--2,9)), + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,4--2,10))], + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Multiply], [], [Some (OriginalNotation "*")]), + None, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,16--2,17)), + Ident x, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,14--2,17)), + Const + (Int32 3, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,18--2,19)), + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,14--2,19))), + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,0--2,19), + { ArrowRange = + Some /root/Lambda/TupleInLambdaHasArrowRange.fs (2,11--2,13) }), + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,0--2,19))], + PreXmlDocEmpty, [], None, + /root/Lambda/TupleInLambdaHasArrowRange.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs new file mode 100644 index 00000000000..215f14af97c --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs @@ -0,0 +1,3 @@ + +type X = + abstract Y : int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl new file mode 100644 index 00000000000..80a0d86f80a --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/AbstractKeyword.fs", false, + QualifiedNameOfFile AbstractKeyword, [], [], + [SynModuleOrNamespace + ([AbstractKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/AbstractKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/LeadingKeyword/AbstractKeyword.fs (3,4--3,20), + { LeadingKeyword = + Abstract + /root/LeadingKeyword/AbstractKeyword.fs (3,4--3,12) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/LeadingKeyword/AbstractKeyword.fs (3,4--3,20), + { GetSetKeywords = None })], + /root/LeadingKeyword/AbstractKeyword.fs (3,4--3,20)), [], + None, /root/LeadingKeyword/AbstractKeyword.fs (2,5--3,20), + { LeadingKeyword = + Type /root/LeadingKeyword/AbstractKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/AbstractKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/AbstractKeyword.fs (2,0--3,20))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/AbstractKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs new file mode 100644 index 00000000000..6d1c926a3ff --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs @@ -0,0 +1,3 @@ + +type X = + abstract member Y : int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl new file mode 100644 index 00000000000..889c6c9a68a --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl @@ -0,0 +1,56 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/AbstractMemberKeyword.fs", false, + QualifiedNameOfFile AbstractMemberKeyword, [], [], + [SynModuleOrNamespace + ([AbstractMemberKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/LeadingKeyword/AbstractMemberKeyword.fs (3,4--3,27), + { LeadingKeyword = + AbstractMember + (/root/LeadingKeyword/AbstractMemberKeyword.fs (3,4--3,12), + /root/LeadingKeyword/AbstractMemberKeyword.fs (3,13--3,19)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/LeadingKeyword/AbstractMemberKeyword.fs (3,4--3,27), + { GetSetKeywords = None })], + /root/LeadingKeyword/AbstractMemberKeyword.fs (3,4--3,27)), + [], None, + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,5--3,27), + { LeadingKeyword = + Type + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,0--3,27))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/AbstractMemberKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs new file mode 100644 index 00000000000..146ef6918d9 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs @@ -0,0 +1,3 @@ + +let rec a b = b + 1 +and d e = e + 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl new file mode 100644 index 00000000000..75d4ad41ea4 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl @@ -0,0 +1,83 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/AndKeyword.fs", false, + QualifiedNameOfFile AndKeyword, [], [], + [SynModuleOrNamespace + ([AndKeyword], false, AnonModule, + [Let + (true, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some b)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([a], [], [None]), None, None, + Pats + [Named + (SynIdent (b, None), false, None, + /root/LeadingKeyword/AndKeyword.fs (2,10--2,11))], + None, /root/LeadingKeyword/AndKeyword.fs (2,8--2,11)), None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, /root/LeadingKeyword/AndKeyword.fs (2,16--2,17)), + Ident b, /root/LeadingKeyword/AndKeyword.fs (2,14--2,17)), + Const + (Int32 1, /root/LeadingKeyword/AndKeyword.fs (2,18--2,19)), + /root/LeadingKeyword/AndKeyword.fs (2,14--2,19)), + /root/LeadingKeyword/AndKeyword.fs (2,8--2,11), NoneAtLet, + { LeadingKeyword = + LetRec + (/root/LeadingKeyword/AndKeyword.fs (2,0--2,3), + /root/LeadingKeyword/AndKeyword.fs (2,4--2,7)) + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/AndKeyword.fs (2,12--2,13) }); + SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some e)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([d], [], [None]), None, None, + Pats + [Named + (SynIdent (e, None), false, None, + /root/LeadingKeyword/AndKeyword.fs (3,6--3,7))], None, + /root/LeadingKeyword/AndKeyword.fs (3,4--3,7)), None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, /root/LeadingKeyword/AndKeyword.fs (3,12--3,13)), + Ident e, /root/LeadingKeyword/AndKeyword.fs (3,10--3,13)), + Const + (Int32 1, /root/LeadingKeyword/AndKeyword.fs (3,14--3,15)), + /root/LeadingKeyword/AndKeyword.fs (3,10--3,15)), + /root/LeadingKeyword/AndKeyword.fs (3,4--3,7), NoneAtLet, + { LeadingKeyword = + And /root/LeadingKeyword/AndKeyword.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/AndKeyword.fs (3,8--3,9) })], + /root/LeadingKeyword/AndKeyword.fs (2,0--3,15))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/AndKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi new file mode 100644 index 00000000000..274cbcf4e09 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi @@ -0,0 +1,5 @@ + +namespace X + +type Y = + default F : int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi.bsl new file mode 100644 index 00000000000..af29702be01 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultKeyword.fsi.bsl @@ -0,0 +1,53 @@ +SigFile + (ParsedSigFileInput + ("/root/LeadingKeyword/DefaultKeyword.fsi", + QualifiedNameOfFile DefaultKeyword, [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/DefaultKeyword.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (F, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/LeadingKeyword/DefaultKeyword.fsi (5,4--5,19), + { LeadingKeyword = + Default + /root/LeadingKeyword/DefaultKeyword.fsi (5,4--5,11) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/LeadingKeyword/DefaultKeyword.fsi (5,4--5,19), + { GetSetKeywords = None })], + /root/LeadingKeyword/DefaultKeyword.fsi (5,4--5,19)), [], + /root/LeadingKeyword/DefaultKeyword.fsi (4,5--5,19), + { LeadingKeyword = + Type /root/LeadingKeyword/DefaultKeyword.fsi (4,0--4,4) + EqualsRange = + Some /root/LeadingKeyword/DefaultKeyword.fsi (4,7--4,8) + WithKeyword = None })], + /root/LeadingKeyword/DefaultKeyword.fsi (4,0--5,19))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/DefaultKeyword.fsi (2,0--5,19), + { LeadingKeyword = + Namespace /root/LeadingKeyword/DefaultKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs new file mode 100644 index 00000000000..0b81ec9ddc7 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs @@ -0,0 +1,3 @@ + +type Foo = + default val A : int = 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl new file mode 100644 index 00000000000..8c33ad5ca41 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/DefaultValKeyword.fs", false, + QualifiedNameOfFile DefaultValKeyword, [], [], + [SynModuleOrNamespace + ([DefaultValKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/DefaultValKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [AutoProperty + ([], false, A, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/LeadingKeyword/DefaultValKeyword.fs (3,26--3,27)), + /root/LeadingKeyword/DefaultValKeyword.fs (3,4--3,27), + { LeadingKeyword = + DefaultVal + (/root/LeadingKeyword/DefaultValKeyword.fs (3,4--3,11), + /root/LeadingKeyword/DefaultValKeyword.fs (3,12--3,15)) + WithKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/DefaultValKeyword.fs (3,24--3,25) + GetSetKeywords = None })], + /root/LeadingKeyword/DefaultValKeyword.fs (3,4--3,27)), [], + None, /root/LeadingKeyword/DefaultValKeyword.fs (2,5--3,27), + { LeadingKeyword = + Type /root/LeadingKeyword/DefaultValKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/DefaultValKeyword.fs (2,9--2,10) + WithKeyword = None })], + /root/LeadingKeyword/DefaultValKeyword.fs (2,0--3,27))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/DefaultValKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs new file mode 100644 index 00000000000..062a4ece226 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs @@ -0,0 +1,3 @@ + +type X = + do () diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl new file mode 100644 index 00000000000..b94cdf452de --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl @@ -0,0 +1,47 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/DoKeyword.fs", false, QualifiedNameOfFile DoKeyword, + [], [], + [SynModuleOrNamespace + ([DoKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, /root/LeadingKeyword/DoKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [LetBindings + ([SynBinding + (None, Do, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Const + (Unit, + /root/LeadingKeyword/DoKeyword.fs (3,4--3,9)), + None, + Const + (Unit, + /root/LeadingKeyword/DoKeyword.fs (3,7--3,9)), + /root/LeadingKeyword/DoKeyword.fs (3,4--3,9), + NoneAtDo, + { LeadingKeyword = + Do /root/LeadingKeyword/DoKeyword.fs (3,4--3,6) + InlineKeyword = None + EqualsRange = None })], false, false, + /root/LeadingKeyword/DoKeyword.fs (3,4--3,9))], + /root/LeadingKeyword/DoKeyword.fs (3,4--3,9)), [], None, + /root/LeadingKeyword/DoKeyword.fs (2,5--3,9), + { LeadingKeyword = + Type /root/LeadingKeyword/DoKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/DoKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/DoKeyword.fs (2,0--3,9))], PreXmlDocEmpty, [], + None, /root/LeadingKeyword/DoKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs new file mode 100644 index 00000000000..707510a6c69 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static do () diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl new file mode 100644 index 00000000000..d126c115261 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/DoStaticKeyword.fs", false, + QualifiedNameOfFile DoStaticKeyword, [], [], + [SynModuleOrNamespace + ([DoStaticKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/DoStaticKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [LetBindings + ([SynBinding + (None, Do, false, false, [], PreXmlDocEmpty, + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Const + (Unit, + /root/LeadingKeyword/DoStaticKeyword.fs (3,11--3,16)), + None, + Const + (Unit, + /root/LeadingKeyword/DoStaticKeyword.fs (3,14--3,16)), + /root/LeadingKeyword/DoStaticKeyword.fs (3,11--3,16), + NoneAtDo, + { LeadingKeyword = + StaticDo + (/root/LeadingKeyword/DoStaticKeyword.fs (3,4--3,10), + /root/LeadingKeyword/DoStaticKeyword.fs (3,11--3,13)) + InlineKeyword = None + EqualsRange = None })], true, false, + /root/LeadingKeyword/DoStaticKeyword.fs (3,4--3,16))], + /root/LeadingKeyword/DoStaticKeyword.fs (3,4--3,16)), [], + None, /root/LeadingKeyword/DoStaticKeyword.fs (2,5--3,16), + { LeadingKeyword = + Type /root/LeadingKeyword/DoStaticKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/DoStaticKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/DoStaticKeyword.fs (2,0--3,16))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/DoStaticKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs new file mode 100644 index 00000000000..48352eb8912 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs @@ -0,0 +1,2 @@ + +extern void Meh() diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl new file mode 100644 index 00000000000..bd147849b80 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl @@ -0,0 +1,60 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/ExternKeyword.fs", false, + QualifiedNameOfFile ExternKeyword, [], [], + [SynModuleOrNamespace + ([ExternKeyword], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([Meh], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Tuple + (false, [], + /root/LeadingKeyword/ExternKeyword.fs (2,15--2,16))], + None, /root/LeadingKeyword/ExternKeyword.fs (2,12--2,15)), + Some + (SynBindingReturnInfo + (App + (LongIdent + (SynLongIdent + ([unit], [], [Some (OriginalNotation "void")])), + None, [], [], None, false, + /root/LeadingKeyword/ExternKeyword.fs (2,7--2,11)), + /root/LeadingKeyword/ExternKeyword.fs (2,7--2,11), [], + { ColonRange = None })), + Typed + (App + (NonAtomic, false, Ident failwith, + Const + (String + ("extern was not given a DllImport attribute", + Regular, + /root/LeadingKeyword/ExternKeyword.fs (2,16--2,17)), + /root/LeadingKeyword/ExternKeyword.fs (2,16--2,17)), + /root/LeadingKeyword/ExternKeyword.fs (2,0--2,17)), + App + (LongIdent + (SynLongIdent + ([unit], [], [Some (OriginalNotation "void")])), + None, [], [], None, false, + /root/LeadingKeyword/ExternKeyword.fs (2,7--2,11)), + /root/LeadingKeyword/ExternKeyword.fs (2,0--2,17)), + /root/LeadingKeyword/ExternKeyword.fs (2,0--2,17), + NoneAtInvisible, + { LeadingKeyword = + Extern /root/LeadingKeyword/ExternKeyword.fs (2,0--2,6) + InlineKeyword = None + EqualsRange = None })], + /root/LeadingKeyword/ExternKeyword.fs (2,0--2,17))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/ExternKeyword.fs (2,0--2,17), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs new file mode 100644 index 00000000000..1c38d90c379 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs @@ -0,0 +1,2 @@ + +let a b = b + 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl new file mode 100644 index 00000000000..c2238b54871 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl @@ -0,0 +1,47 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/LetKeyword.fs", false, + QualifiedNameOfFile LetKeyword, [], [], + [SynModuleOrNamespace + ([LetKeyword], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some b)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([a], [], [None]), None, None, + Pats + [Named + (SynIdent (b, None), false, None, + /root/LeadingKeyword/LetKeyword.fs (2,6--2,7))], None, + /root/LeadingKeyword/LetKeyword.fs (2,4--2,7)), None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, /root/LeadingKeyword/LetKeyword.fs (2,12--2,13)), + Ident b, /root/LeadingKeyword/LetKeyword.fs (2,10--2,13)), + Const + (Int32 1, /root/LeadingKeyword/LetKeyword.fs (2,14--2,15)), + /root/LeadingKeyword/LetKeyword.fs (2,10--2,15)), + /root/LeadingKeyword/LetKeyword.fs (2,4--2,7), NoneAtLet, + { LeadingKeyword = + Let /root/LeadingKeyword/LetKeyword.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/LetKeyword.fs (2,8--2,9) })], + /root/LeadingKeyword/LetKeyword.fs (2,0--2,15))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/LetKeyword.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs new file mode 100644 index 00000000000..5d0dc5b2e22 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs @@ -0,0 +1,2 @@ + +let rec a b = b + 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl new file mode 100644 index 00000000000..5fe88045ea8 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl @@ -0,0 +1,54 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/LetRecKeyword.fs", false, + QualifiedNameOfFile LetRecKeyword, [], [], + [SynModuleOrNamespace + ([LetRecKeyword], false, AnonModule, + [Let + (true, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some b)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([a], [], [None]), None, None, + Pats + [Named + (SynIdent (b, None), false, None, + /root/LeadingKeyword/LetRecKeyword.fs (2,10--2,11))], + None, /root/LeadingKeyword/LetRecKeyword.fs (2,8--2,11)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, + /root/LeadingKeyword/LetRecKeyword.fs (2,16--2,17)), + Ident b, + /root/LeadingKeyword/LetRecKeyword.fs (2,14--2,17)), + Const + (Int32 1, + /root/LeadingKeyword/LetRecKeyword.fs (2,18--2,19)), + /root/LeadingKeyword/LetRecKeyword.fs (2,14--2,19)), + /root/LeadingKeyword/LetRecKeyword.fs (2,8--2,11), NoneAtLet, + { LeadingKeyword = + LetRec + (/root/LeadingKeyword/LetRecKeyword.fs (2,0--2,3), + /root/LeadingKeyword/LetRecKeyword.fs (2,4--2,7)) + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/LetRecKeyword.fs (2,12--2,13) })], + /root/LeadingKeyword/LetRecKeyword.fs (2,0--2,19))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/LetRecKeyword.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs new file mode 100644 index 00000000000..86e14588764 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs @@ -0,0 +1,3 @@ + +type X = + member this.Y () = () diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl new file mode 100644 index 00000000000..6299a61343b --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl @@ -0,0 +1,69 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/MemberKeyword.fs", false, + QualifiedNameOfFile MemberKeyword, [], [], + [SynModuleOrNamespace + ([MemberKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/MemberKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Y], + [/root/LeadingKeyword/MemberKeyword.fs (3,15--3,16)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/LeadingKeyword/MemberKeyword.fs (3,18--3,20)), + /root/LeadingKeyword/MemberKeyword.fs (3,18--3,20))], + None, + /root/LeadingKeyword/MemberKeyword.fs (3,11--3,20)), + None, + Const + (Unit, + /root/LeadingKeyword/MemberKeyword.fs (3,24--3,26)), + /root/LeadingKeyword/MemberKeyword.fs (3,11--3,20), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/LeadingKeyword/MemberKeyword.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/MemberKeyword.fs (3,22--3,23) }), + /root/LeadingKeyword/MemberKeyword.fs (3,4--3,26))], + /root/LeadingKeyword/MemberKeyword.fs (3,4--3,26)), [], + None, /root/LeadingKeyword/MemberKeyword.fs (2,5--3,26), + { LeadingKeyword = + Type /root/LeadingKeyword/MemberKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/MemberKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/MemberKeyword.fs (2,0--3,26))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/MemberKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs new file mode 100644 index 00000000000..1f187569dfd --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs @@ -0,0 +1,3 @@ + +type X = + member val Y : int = 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl new file mode 100644 index 00000000000..c95a8bb446e --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/MemberValKeyword.fs", false, + QualifiedNameOfFile MemberValKeyword, [], [], + [SynModuleOrNamespace + ([MemberValKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/MemberValKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AutoProperty + ([], false, Y, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/LeadingKeyword/MemberValKeyword.fs (3,25--3,26)), + /root/LeadingKeyword/MemberValKeyword.fs (3,4--3,26), + { LeadingKeyword = + MemberVal + (/root/LeadingKeyword/MemberValKeyword.fs (3,4--3,10), + /root/LeadingKeyword/MemberValKeyword.fs (3,11--3,14)) + WithKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/MemberValKeyword.fs (3,23--3,24) + GetSetKeywords = None })], + /root/LeadingKeyword/MemberValKeyword.fs (3,4--3,26)), [], + None, /root/LeadingKeyword/MemberValKeyword.fs (2,5--3,26), + { LeadingKeyword = + Type /root/LeadingKeyword/MemberValKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/MemberValKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/MemberValKeyword.fs (2,0--3,26))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/MemberValKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs new file mode 100644 index 00000000000..0a7cb11a87a --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs @@ -0,0 +1,3 @@ + +type Y() = + new (message:string) = Y() diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl new file mode 100644 index 00000000000..a2eafa984b5 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl @@ -0,0 +1,88 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/NewKeyword.fs", false, + QualifiedNameOfFile NewKeyword, [], [], + [SynModuleOrNamespace + ([NewKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, /root/LeadingKeyword/NewKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], /root/LeadingKeyword/NewKeyword.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/LeadingKeyword/NewKeyword.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + SynValInfo + ([[SynArgInfo ([], false, Some message)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([new], [], [None]), None, + Some (SynValTyparDecls (None, false)), + Pats + [Paren + (Typed + (Named + (SynIdent (message, None), false, None, + /root/LeadingKeyword/NewKeyword.fs (3,9--3,16)), + LongIdent + (SynLongIdent ([string], [], [None])), + /root/LeadingKeyword/NewKeyword.fs (3,9--3,23)), + /root/LeadingKeyword/NewKeyword.fs (3,8--3,24))], + None, + /root/LeadingKeyword/NewKeyword.fs (3,4--3,7)), + None, + App + (Atomic, false, Ident Y, + Const + (Unit, + /root/LeadingKeyword/NewKeyword.fs (3,28--3,30)), + /root/LeadingKeyword/NewKeyword.fs (3,27--3,30)), + /root/LeadingKeyword/NewKeyword.fs (3,4--3,24), + NoneAtInvisible, + { LeadingKeyword = + New /root/LeadingKeyword/NewKeyword.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/NewKeyword.fs (3,25--3,26) }), + /root/LeadingKeyword/NewKeyword.fs (3,4--3,30))], + /root/LeadingKeyword/NewKeyword.fs (3,4--3,30)), [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], /root/LeadingKeyword/NewKeyword.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/LeadingKeyword/NewKeyword.fs (2,5--2,6), + { AsKeyword = None })), + /root/LeadingKeyword/NewKeyword.fs (2,5--3,30), + { LeadingKeyword = + Type /root/LeadingKeyword/NewKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/NewKeyword.fs (2,9--2,10) + WithKeyword = None })], + /root/LeadingKeyword/NewKeyword.fs (2,0--3,30))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/NewKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs new file mode 100644 index 00000000000..5d2013f36a6 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs @@ -0,0 +1,3 @@ + +type D = + override E : string = "" diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl new file mode 100644 index 00000000000..82cce9a9d53 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl @@ -0,0 +1,73 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/OverrideKeyword.fs", false, + QualifiedNameOfFile OverrideKeyword, [], [], + [SynModuleOrNamespace + ([OverrideKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [D], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/OverrideKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([E], [], [None]), None, None, + Pats [], None, + /root/LeadingKeyword/OverrideKeyword.fs (3,13--3,14)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([string], [], [None])), + /root/LeadingKeyword/OverrideKeyword.fs (3,17--3,23), + [], + { ColonRange = + Some + /root/LeadingKeyword/OverrideKeyword.fs (3,15--3,16) })), + Typed + (Const + (String + ("", Regular, + /root/LeadingKeyword/OverrideKeyword.fs (3,26--3,28)), + /root/LeadingKeyword/OverrideKeyword.fs (3,26--3,28)), + LongIdent (SynLongIdent ([string], [], [None])), + /root/LeadingKeyword/OverrideKeyword.fs (3,26--3,28)), + /root/LeadingKeyword/OverrideKeyword.fs (3,13--3,14), + NoneAtInvisible, + { LeadingKeyword = + Override + /root/LeadingKeyword/OverrideKeyword.fs (3,4--3,12) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/OverrideKeyword.fs (3,24--3,25) }), + /root/LeadingKeyword/OverrideKeyword.fs (3,4--3,28))], + /root/LeadingKeyword/OverrideKeyword.fs (3,4--3,28)), [], + None, /root/LeadingKeyword/OverrideKeyword.fs (2,5--3,28), + { LeadingKeyword = + Type /root/LeadingKeyword/OverrideKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/OverrideKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/OverrideKeyword.fs (2,0--3,28))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/OverrideKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs new file mode 100644 index 00000000000..3732a2566ec --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs @@ -0,0 +1,3 @@ + +type X = + override val Y : int = 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl new file mode 100644 index 00000000000..8b2b06d9978 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/OverrideValKeyword.fs", false, + QualifiedNameOfFile OverrideValKeyword, [], [], + [SynModuleOrNamespace + ([OverrideValKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/OverrideValKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AutoProperty + ([], false, Y, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/LeadingKeyword/OverrideValKeyword.fs (3,27--3,28)), + /root/LeadingKeyword/OverrideValKeyword.fs (3,4--3,28), + { LeadingKeyword = + OverrideVal + (/root/LeadingKeyword/OverrideValKeyword.fs (3,4--3,12), + /root/LeadingKeyword/OverrideValKeyword.fs (3,13--3,16)) + WithKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/OverrideValKeyword.fs (3,25--3,26) + GetSetKeywords = None })], + /root/LeadingKeyword/OverrideValKeyword.fs (3,4--3,28)), [], + None, /root/LeadingKeyword/OverrideValKeyword.fs (2,5--3,28), + { LeadingKeyword = + Type /root/LeadingKeyword/OverrideValKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/OverrideValKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/OverrideValKeyword.fs (2,0--3,28))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/OverrideValKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs new file mode 100644 index 00000000000..2571b09392d --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static abstract Y : int -> int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl new file mode 100644 index 00000000000..c340e7daf15 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl @@ -0,0 +1,62 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticAbstractKeyword.fs", false, + QualifiedNameOfFile StaticAbstractKeyword, [], [], + [SynModuleOrNamespace + ([StaticAbstractKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,24--3,34), + { ArrowRange = + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,28--3,30) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,4--3,34), + { LeadingKeyword = + StaticAbstract + (/root/LeadingKeyword/StaticAbstractKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,11--3,19)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,4--3,34), + { GetSetKeywords = None })], + /root/LeadingKeyword/StaticAbstractKeyword.fs (3,4--3,34)), + [], None, + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,5--3,34), + { LeadingKeyword = + Type + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,0--3,34))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticAbstractKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs new file mode 100644 index 00000000000..3931558ca1f --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static abstract member Y : int -> int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl new file mode 100644 index 00000000000..f5ac2e68d91 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl @@ -0,0 +1,63 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticAbstractMemberKeyword.fs", false, + QualifiedNameOfFile StaticAbstractMemberKeyword, [], [], + [SynModuleOrNamespace + ([StaticAbstractMemberKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,31--3,41), + { ArrowRange = + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,35--3,37) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,4--3,41), + { LeadingKeyword = + StaticAbstractMember + (/root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,11--3,19), + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,20--3,26)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,4--3,41), + { GetSetKeywords = None })], + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (3,4--3,41)), + [], None, + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,5--3,41), + { LeadingKeyword = + Type + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,0--3,41))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticAbstractMemberKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs new file mode 100644 index 00000000000..18c537277e0 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static let PI = 3.14 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl new file mode 100644 index 00000000000..fad85a380b9 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl @@ -0,0 +1,57 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticLetKeyword.fs", false, + QualifiedNameOfFile StaticLetKeyword, [], [], + [SynModuleOrNamespace + ([StaticLetKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticLetKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [LetBindings + ([SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([PI], [], [None]), None, None, + Pats [], None, + /root/LeadingKeyword/StaticLetKeyword.fs (3,15--3,17)), + None, + Const + (Double 3.14, + /root/LeadingKeyword/StaticLetKeyword.fs (3,20--3,24)), + /root/LeadingKeyword/StaticLetKeyword.fs (3,15--3,17), + Yes + /root/LeadingKeyword/StaticLetKeyword.fs (3,11--3,24), + { LeadingKeyword = + StaticLet + (/root/LeadingKeyword/StaticLetKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticLetKeyword.fs (3,11--3,14)) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/StaticLetKeyword.fs (3,18--3,19) })], + true, false, + /root/LeadingKeyword/StaticLetKeyword.fs (3,4--3,24))], + /root/LeadingKeyword/StaticLetKeyword.fs (3,4--3,24)), [], + None, /root/LeadingKeyword/StaticLetKeyword.fs (2,5--3,24), + { LeadingKeyword = + Type /root/LeadingKeyword/StaticLetKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/StaticLetKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticLetKeyword.fs (2,0--3,24))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticLetKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs new file mode 100644 index 00000000000..41e13890713 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static let rec forever () = forever() diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl new file mode 100644 index 00000000000..f8a8bd2aacc --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl @@ -0,0 +1,67 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticLetRecKeyword.fs", false, + QualifiedNameOfFile StaticLetRecKeyword, [], [], + [SynModuleOrNamespace + ([StaticLetRecKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticLetRecKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [LetBindings + ([SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([forever], [], [None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,27--3,29)), + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,27--3,29))], + None, + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,19--3,29)), + None, + App + (Atomic, false, Ident forever, + Const + (Unit, + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,39--3,41)), + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,32--3,41)), + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,19--3,29), + NoneAtLet, + { LeadingKeyword = + StaticLetRec + (/root/LeadingKeyword/StaticLetRecKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,11--3,14), + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,15--3,18)) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,30--3,31) })], + true, true, + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,4--3,41))], + /root/LeadingKeyword/StaticLetRecKeyword.fs (3,4--3,41)), + [], None, + /root/LeadingKeyword/StaticLetRecKeyword.fs (2,5--3,41), + { LeadingKeyword = + Type /root/LeadingKeyword/StaticLetRecKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/StaticLetRecKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticLetRecKeyword.fs (2,0--3,41))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticLetRecKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs new file mode 100644 index 00000000000..7e4ad73e7c0 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static member Y : int = 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl new file mode 100644 index 00000000000..3890539054d --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl @@ -0,0 +1,71 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticMemberKeyword.fs", false, + QualifiedNameOfFile StaticMemberKeyword, [], [], + [SynModuleOrNamespace + ([StaticMemberKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticMemberKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent ([Y], [], [None]), None, None, + Pats [], None, + /root/LeadingKeyword/StaticMemberKeyword.fs (3,18--3,19)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([int], [], [None])), + /root/LeadingKeyword/StaticMemberKeyword.fs (3,22--3,25), + [], + { ColonRange = + Some + /root/LeadingKeyword/StaticMemberKeyword.fs (3,20--3,21) })), + Typed + (Const + (Int32 1, + /root/LeadingKeyword/StaticMemberKeyword.fs (3,28--3,29)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/LeadingKeyword/StaticMemberKeyword.fs (3,28--3,29)), + /root/LeadingKeyword/StaticMemberKeyword.fs (3,18--3,19), + NoneAtInvisible, + { LeadingKeyword = + StaticMember + (/root/LeadingKeyword/StaticMemberKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticMemberKeyword.fs (3,11--3,17)) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/StaticMemberKeyword.fs (3,26--3,27) }), + /root/LeadingKeyword/StaticMemberKeyword.fs (3,4--3,29))], + /root/LeadingKeyword/StaticMemberKeyword.fs (3,4--3,29)), + [], None, + /root/LeadingKeyword/StaticMemberKeyword.fs (2,5--3,29), + { LeadingKeyword = + Type /root/LeadingKeyword/StaticMemberKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/LeadingKeyword/StaticMemberKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticMemberKeyword.fs (2,0--3,29))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticMemberKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs new file mode 100644 index 00000000000..13b671fb5ea --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs @@ -0,0 +1,3 @@ + +type X = + static member val Y : int = 1 diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl new file mode 100644 index 00000000000..38543edeec8 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl @@ -0,0 +1,62 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/StaticMemberValKeyword.fs", false, + QualifiedNameOfFile StaticMemberValKeyword, [], [], + [SynModuleOrNamespace + ([StaticMemberValKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AutoProperty + ([], true, Y, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,32--3,33)), + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,4--3,33), + { LeadingKeyword = + StaticMemberVal + (/root/LeadingKeyword/StaticMemberValKeyword.fs (3,4--3,10), + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,11--3,17), + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,18--3,21)) + WithKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,30--3,31) + GetSetKeywords = None })], + /root/LeadingKeyword/StaticMemberValKeyword.fs (3,4--3,33)), + [], None, + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,5--3,33), + { LeadingKeyword = + Type + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,0--3,33))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticMemberValKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi b/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi new file mode 100644 index 00000000000..fda6848e2e5 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi @@ -0,0 +1,5 @@ + +namespace Meh + +type X = + static val Y : int -> int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi.bsl new file mode 100644 index 00000000000..3eccaa6257d --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticValKeyword.fsi.bsl @@ -0,0 +1,48 @@ +SigFile + (ParsedSigFileInput + ("/root/LeadingKeyword/StaticValKeyword.fsi", + QualifiedNameOfFile StaticValKeyword, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/LeadingKeyword/StaticValKeyword.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [ValField + (SynField + ([], true, Some Y, + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/LeadingKeyword/StaticValKeyword.fsi (5,19--5,29), + { ArrowRange = + /root/LeadingKeyword/StaticValKeyword.fsi (5,23--5,25) }), + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/LeadingKeyword/StaticValKeyword.fsi (5,4--5,29), + { LeadingKeyword = + Some + (StaticVal + (/root/LeadingKeyword/StaticValKeyword.fsi (5,4--5,10), + /root/LeadingKeyword/StaticValKeyword.fsi (5,11--5,14))) }), + /root/LeadingKeyword/StaticValKeyword.fsi (5,4--5,29))], + /root/LeadingKeyword/StaticValKeyword.fsi (5,4--5,29)), [], + /root/LeadingKeyword/StaticValKeyword.fsi (4,5--5,29), + { LeadingKeyword = + Type /root/LeadingKeyword/StaticValKeyword.fsi (4,0--4,4) + EqualsRange = + Some /root/LeadingKeyword/StaticValKeyword.fsi (4,7--4,8) + WithKeyword = None })], + /root/LeadingKeyword/StaticValKeyword.fsi (4,0--5,29))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/StaticValKeyword.fsi (2,0--5,29), + { LeadingKeyword = + Namespace /root/LeadingKeyword/StaticValKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs new file mode 100644 index 00000000000..2aa18fcd8e8 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs @@ -0,0 +1,3 @@ + +{ new ISomething with + a = () } diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl new file mode 100644 index 00000000000..613a3a495bf --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl @@ -0,0 +1,36 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/SyntheticKeyword.fs", false, + QualifiedNameOfFile SyntheticKeyword, [], [], + [SynModuleOrNamespace + ([SyntheticKeyword], false, AnonModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([ISomething], [], [None])), None, + Some /root/LeadingKeyword/SyntheticKeyword.fs (2,17--2,21), + [SynBinding + (None, Normal, false, false, [], PreXmlDocEmpty, + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (a, None), false, None, + /root/LeadingKeyword/SyntheticKeyword.fs (3,4--3,5)), + None, + Const + (Unit, + /root/LeadingKeyword/SyntheticKeyword.fs (3,8--3,10)), + /root/LeadingKeyword/SyntheticKeyword.fs (3,4--3,5), + Yes /root/LeadingKeyword/SyntheticKeyword.fs (3,8--3,10), + { LeadingKeyword = Synthetic + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/SyntheticKeyword.fs (3,6--3,7) })], + [], [], /root/LeadingKeyword/SyntheticKeyword.fs (2,2--2,16), + /root/LeadingKeyword/SyntheticKeyword.fs (2,0--3,12)), + /root/LeadingKeyword/SyntheticKeyword.fs (2,0--3,12))], + PreXmlDocEmpty, [], None, + /root/LeadingKeyword/SyntheticKeyword.fs (2,0--3,12), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs new file mode 100644 index 00000000000..33c3623b955 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs @@ -0,0 +1,4 @@ + +do + use x = X() + () diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl new file mode 100644 index 00000000000..86f7cf4fef4 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/UseKeyword.fs", false, + QualifiedNameOfFile UseKeyword, [], [], + [SynModuleOrNamespace + ([UseKeyword], false, AnonModule, + [Expr + (Do + (LetOrUse + (false, true, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/LeadingKeyword/UseKeyword.fs (3,8--3,9)), None, + App + (Atomic, false, Ident X, + Const + (Unit, + /root/LeadingKeyword/UseKeyword.fs (3,13--3,15)), + /root/LeadingKeyword/UseKeyword.fs (3,12--3,15)), + /root/LeadingKeyword/UseKeyword.fs (3,8--3,9), + Yes /root/LeadingKeyword/UseKeyword.fs (3,4--3,15), + { LeadingKeyword = + Use /root/LeadingKeyword/UseKeyword.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some /root/LeadingKeyword/UseKeyword.fs (3,10--3,11) })], + Const (Unit, /root/LeadingKeyword/UseKeyword.fs (4,4--4,6)), + /root/LeadingKeyword/UseKeyword.fs (3,4--4,6), + { InKeyword = None }), + /root/LeadingKeyword/UseKeyword.fs (2,0--4,6)), + /root/LeadingKeyword/UseKeyword.fs (2,0--4,6))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/UseKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs new file mode 100644 index 00000000000..94da62460a1 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs @@ -0,0 +1,4 @@ + +do + use rec x = X() + () diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl new file mode 100644 index 00000000000..06ea547ec81 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/LeadingKeyword/UseRecKeyword.fs", false, + QualifiedNameOfFile UseRecKeyword, [], [], + [SynModuleOrNamespace + ([UseRecKeyword], false, AnonModule, + [Expr + (Do + (LetOrUse + (true, true, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, + /root/LeadingKeyword/UseRecKeyword.fs (3,12--3,13)), + None, + App + (Atomic, false, Ident X, + Const + (Unit, + /root/LeadingKeyword/UseRecKeyword.fs (3,17--3,19)), + /root/LeadingKeyword/UseRecKeyword.fs (3,16--3,19)), + /root/LeadingKeyword/UseRecKeyword.fs (3,12--3,13), + Yes /root/LeadingKeyword/UseRecKeyword.fs (3,4--3,19), + { LeadingKeyword = + UseRec + (/root/LeadingKeyword/UseRecKeyword.fs (3,4--3,7), + /root/LeadingKeyword/UseRecKeyword.fs (3,8--3,11)) + InlineKeyword = None + EqualsRange = + Some + /root/LeadingKeyword/UseRecKeyword.fs (3,14--3,15) })], + Const + (Unit, /root/LeadingKeyword/UseRecKeyword.fs (4,4--4,6)), + /root/LeadingKeyword/UseRecKeyword.fs (3,4--4,6), + { InKeyword = None }), + /root/LeadingKeyword/UseRecKeyword.fs (2,0--4,6)), + /root/LeadingKeyword/UseRecKeyword.fs (2,0--4,6))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/UseRecKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi b/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi new file mode 100644 index 00000000000..5b3ac02285b --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi @@ -0,0 +1,5 @@ + +namespace X + +type Y = + val F : int diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi.bsl new file mode 100644 index 00000000000..85cc78b8761 --- /dev/null +++ b/tests/service/data/SyntaxTree/LeadingKeyword/ValKeyword.fsi.bsl @@ -0,0 +1,39 @@ +SigFile + (ParsedSigFileInput + ("/root/LeadingKeyword/ValKeyword.fsi", QualifiedNameOfFile ValKeyword, [], + [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, /root/LeadingKeyword/ValKeyword.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [ValField + (SynField + ([], false, Some F, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/LeadingKeyword/ValKeyword.fsi (5,4--5,15), + { LeadingKeyword = + Some + (Val + /root/LeadingKeyword/ValKeyword.fsi (5,4--5,7)) }), + /root/LeadingKeyword/ValKeyword.fsi (5,4--5,15))], + /root/LeadingKeyword/ValKeyword.fsi (5,4--5,15)), [], + /root/LeadingKeyword/ValKeyword.fsi (4,5--5,15), + { LeadingKeyword = + Type /root/LeadingKeyword/ValKeyword.fsi (4,0--4,4) + EqualsRange = + Some /root/LeadingKeyword/ValKeyword.fsi (4,7--4,8) + WithKeyword = None })], + /root/LeadingKeyword/ValKeyword.fsi (4,0--5,15))], PreXmlDocEmpty, + [], None, /root/LeadingKeyword/ValKeyword.fsi (2,0--5,15), + { LeadingKeyword = + Namespace /root/LeadingKeyword/ValKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs new file mode 100644 index 00000000000..99b5553f5e8 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs @@ -0,0 +1,6 @@ + +try + foo () +with exn -> + // some comment + () diff --git a/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl new file mode 100644 index 00000000000..949a16881ff --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl @@ -0,0 +1,53 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs", + false, + QualifiedNameOfFile NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith, + [], [], + [SynModuleOrNamespace + ([NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith], false, + AnonModule, + [Expr + (TryWith + (App + (NonAtomic, false, Ident foo, + Const + (Unit, + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (3,8--3,10)), + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (3,4--3,10)), + [SynMatchClause + (Named + (SynIdent (exn, None), false, None, + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,5--4,8)), + None, + Const + (Unit, + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (6,4--6,6)), + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,5--6,6), + Yes, + { ArrowRange = + Some + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,9--4,11) + BarRange = None })], + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--6,6), + Yes + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--2,3), + Yes + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--4,4), + { TryKeyword = + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--4,4) + WithKeyword = + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--4,4) + WithToEndRange = + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--6,6) }), + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--6,6))], + PreXmlDocEmpty, [], None, + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,4--5,19)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs new file mode 100644 index 00000000000..e9febd493cd --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs @@ -0,0 +1,3 @@ + +match foo with +| Bar bar -> () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl new file mode 100644 index 00000000000..6af5f51d5cb --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl @@ -0,0 +1,43 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfArrowInSynMatchClause.fs", false, + QualifiedNameOfFile RangeOfArrowInSynMatchClause, [], [], + [SynModuleOrNamespace + ([RangeOfArrowInSynMatchClause], false, AnonModule, + [Expr + (Match + (Yes + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,0--2,14), + Ident foo, + [SynMatchClause + (LongIdent + (SynLongIdent ([Bar], [], [None]), None, None, + Pats + [Named + (SynIdent (bar, None), false, None, + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,6--3,9))], + None, + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,2--3,9)), + None, + Const + (Unit, + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,13--3,15)), + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,2--3,15), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,10--3,12) + BarRange = + Some + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (3,0--3,1) })], + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,0--3,15), + { MatchKeyword = + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,0--2,5) + WithKeyword = + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,10--2,14) }), + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,0--3,15))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfArrowInSynMatchClause.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs new file mode 100644 index 00000000000..85ef7900a4b --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs @@ -0,0 +1,3 @@ + +match foo with +| Bar bar when (someCheck bar) -> () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl new file mode 100644 index 00000000000..818f50a6ce2 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs", false, + QualifiedNameOfFile RangeOfArrowInSynMatchClauseWithWhenClause, [], [], + [SynModuleOrNamespace + ([RangeOfArrowInSynMatchClauseWithWhenClause], false, AnonModule, + [Expr + (Match + (Yes + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,0--2,14), + Ident foo, + [SynMatchClause + (LongIdent + (SynLongIdent ([Bar], [], [None]), None, None, + Pats + [Named + (SynIdent (bar, None), false, None, + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,6--3,9))], + None, + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,2--3,9)), + Some + (Paren + (App + (NonAtomic, false, Ident someCheck, Ident bar, + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,16--3,29)), + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,15--3,16), + Some + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,29--3,30), + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,15--3,30))), + Const + (Unit, + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,34--3,36)), + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,2--3,36), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,31--3,33) + BarRange = + Some + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (3,0--3,1) })], + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,0--3,36), + { MatchKeyword = + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,0--2,5) + WithKeyword = + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,10--2,14) }), + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,0--3,36))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs new file mode 100644 index 00000000000..7c4972e19ba --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs @@ -0,0 +1,8 @@ + +try + foo () +with +| IOException as ioex -> + // some comment + () +| ex -> () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl new file mode 100644 index 00000000000..d372745cdc5 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl @@ -0,0 +1,77 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs", + false, + QualifiedNameOfFile RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith, + [], [], + [SynModuleOrNamespace + ([RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith], false, + AnonModule, + [Expr + (TryWith + (App + (NonAtomic, false, Ident foo, + Const + (Unit, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (3,8--3,10)), + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (3,4--3,10)), + [SynMatchClause + (As + (LongIdent + (SynLongIdent ([IOException], [], [None]), None, None, + Pats [], None, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,2--5,13)), + Named + (SynIdent (ioex, None), false, None, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,17--5,21)), + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,2--5,21)), + None, + Const + (Unit, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (7,4--7,6)), + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,2--7,6), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,22--5,24) + BarRange = + Some + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (5,0--5,1) }); + SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (8,2--8,4)), + None, + Const + (Unit, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (8,8--8,10)), + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (8,2--8,10), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (8,5--8,7) + BarRange = + Some + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (8,0--8,1) })], + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--8,10), + Yes + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (4,0--4,4), + { TryKeyword = + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--4,4) + WithKeyword = + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (4,0--4,4) + WithToEndRange = + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (4,0--8,10) }), + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--8,10))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (2,0--9,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs (6,4--6,19)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs new file mode 100644 index 00000000000..85ef7900a4b --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs @@ -0,0 +1,3 @@ + +match foo with +| Bar bar when (someCheck bar) -> () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl new file mode 100644 index 00000000000..6c9e307049c --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs", + false, QualifiedNameOfFile RangeOfBarInASingleSynMatchClauseInSynExprMatch, + [], [], + [SynModuleOrNamespace + ([RangeOfBarInASingleSynMatchClauseInSynExprMatch], false, AnonModule, + [Expr + (Match + (Yes + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,0--2,14), + Ident foo, + [SynMatchClause + (LongIdent + (SynLongIdent ([Bar], [], [None]), None, None, + Pats + [Named + (SynIdent (bar, None), false, None, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,6--3,9))], + None, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,2--3,9)), + Some + (Paren + (App + (NonAtomic, false, Ident someCheck, Ident bar, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,16--3,29)), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,15--3,16), + Some + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,29--3,30), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,15--3,30))), + Const + (Unit, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,34--3,36)), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,2--3,36), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,31--3,33) + BarRange = + Some + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (3,0--3,1) })], + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,0--3,36), + { MatchKeyword = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,0--2,5) + WithKeyword = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,10--2,14) }), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,0--3,36))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs new file mode 100644 index 00000000000..b61fcc84b59 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs @@ -0,0 +1,5 @@ + +try + foo () +with +| exn -> () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl new file mode 100644 index 00000000000..8397631e873 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs", + false, + QualifiedNameOfFile RangeOfBarInASingleSynMatchClauseInSynExprTryWith, [], + [], + [SynModuleOrNamespace + ([RangeOfBarInASingleSynMatchClauseInSynExprTryWith], false, AnonModule, + [Expr + (TryWith + (App + (NonAtomic, false, Ident foo, + Const + (Unit, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (3,8--3,10)), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (3,4--3,10)), + [SynMatchClause + (Named + (SynIdent (exn, None), false, None, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,2--5,5)), + None, + Const + (Unit, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,9--5,11)), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,2--5,11), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,6--5,8) + BarRange = + Some + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (5,0--5,1) })], + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--5,11), + Yes + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--4,4), + { TryKeyword = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--4,4) + WithKeyword = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--4,4) + WithToEndRange = + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (4,0--5,11) }), + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--5,11))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs new file mode 100644 index 00000000000..2cd8716c9a5 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs @@ -0,0 +1,4 @@ + +match foo with +| Bar bar when (someCheck bar) -> () +| Far too -> near () diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl new file mode 100644 index 00000000000..c74fda4a087 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl @@ -0,0 +1,77 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs", + false, + QualifiedNameOfFile RangeOfBarInMultipleSynMatchClausesInSynExprMatch, [], + [], + [SynModuleOrNamespace + ([RangeOfBarInMultipleSynMatchClausesInSynExprMatch], false, AnonModule, + [Expr + (Match + (Yes + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,0--2,14), + Ident foo, + [SynMatchClause + (LongIdent + (SynLongIdent ([Bar], [], [None]), None, None, + Pats + [Named + (SynIdent (bar, None), false, None, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,6--3,9))], + None, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,2--3,9)), + Some + (Paren + (App + (NonAtomic, false, Ident someCheck, Ident bar, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,16--3,29)), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,15--3,16), + Some + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,29--3,30), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,15--3,30))), + Const + (Unit, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,34--3,36)), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,2--3,36), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,31--3,33) + BarRange = + Some + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (3,0--3,1) }); + SynMatchClause + (LongIdent + (SynLongIdent ([Far], [], [None]), None, None, + Pats + [Named + (SynIdent (too, None), false, None, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,6--4,9))], + None, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,2--4,9)), + None, + App + (NonAtomic, false, Ident near, + Const + (Unit, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,18--4,20)), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,13--4,20)), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,2--4,20), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,10--4,12) + BarRange = + Some + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (4,0--4,1) })], + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,0--4,20), + { MatchKeyword = + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,0--2,5) + WithKeyword = + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,10--2,14) }), + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,0--4,20))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs new file mode 100644 index 00000000000..f55c5019485 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs @@ -0,0 +1,10 @@ + +try + let content = tryDownloadFile url + Some content +with +| ex -> + Infrastructure.ReportWarning ex + None +| exx -> + None diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl new file mode 100644 index 00000000000..2df35a41fde --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl @@ -0,0 +1,98 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfMultipleSynMatchClause.fs", false, + QualifiedNameOfFile RangeOfMultipleSynMatchClause, [], [], + [SynModuleOrNamespace + ([RangeOfMultipleSynMatchClause], false, AnonModule, + [Expr + (TryWith + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (content, None), false, None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,8--3,15)), + None, + App + (NonAtomic, false, Ident tryDownloadFile, Ident url, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,18--3,37)), + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,8--3,15), + Yes + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,4--3,37), + { LeadingKeyword = + Let + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,16--3,17) })], + App + (NonAtomic, false, Ident Some, Ident content, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (4,4--4,16)), + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (3,4--4,16), + { InKeyword = None }), + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (6,2--6,4)), + None, + Sequential + (SuppressNeither, true, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([Infrastructure; ReportWarning], + [/root/MatchClause/RangeOfMultipleSynMatchClause.fs (7,18--7,19)], + [None; None]), None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (7,4--7,32)), + Ident ex, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (7,4--7,35)), + Ident None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (7,4--8,8)), + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (6,2--8,8), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (6,5--6,7) + BarRange = + Some + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (6,0--6,1) }); + SynMatchClause + (Named + (SynIdent (exx, None), false, None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (9,2--9,5)), + None, Ident None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (9,2--10,8), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (9,6--9,8) + BarRange = + Some + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (9,0--9,1) })], + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--10,8), + Yes + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (5,0--5,4), + { TryKeyword = + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--5,4) + WithKeyword = + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (5,0--5,4) + WithToEndRange = + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (5,0--10,8) }), + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--10,8))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfMultipleSynMatchClause.fs (2,0--11,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs new file mode 100644 index 00000000000..56e71c0fbc7 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs @@ -0,0 +1,7 @@ + +try + let content = tryDownloadFile url + Some content +with ex -> + Infrastructure.ReportWarning ex + None diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl new file mode 100644 index 00000000000..48997e79698 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl @@ -0,0 +1,81 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfSingleSynMatchClause.fs", false, + QualifiedNameOfFile RangeOfSingleSynMatchClause, [], [], + [SynModuleOrNamespace + ([RangeOfSingleSynMatchClause], false, AnonModule, + [Expr + (TryWith + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (content, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,8--3,15)), + None, + App + (NonAtomic, false, Ident tryDownloadFile, Ident url, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,18--3,37)), + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,8--3,15), + Yes + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,4--3,37), + { LeadingKeyword = + Let + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,16--3,17) })], + App + (NonAtomic, false, Ident Some, Ident content, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (4,4--4,16)), + /root/MatchClause/RangeOfSingleSynMatchClause.fs (3,4--4,16), + { InKeyword = None }), + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,5--5,7)), + None, + Sequential + (SuppressNeither, true, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([Infrastructure; ReportWarning], + [/root/MatchClause/RangeOfSingleSynMatchClause.fs (6,18--6,19)], + [None; None]), None, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (6,4--6,32)), + Ident ex, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (6,4--6,35)), + Ident None, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (6,4--7,8)), + /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,5--7,8), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,8--5,10) + BarRange = None })], + /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--7,8), + Yes /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--2,3), + Yes /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,0--5,4), + { TryKeyword = + /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--5,4) + WithKeyword = + /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,0--5,4) + WithToEndRange = + /root/MatchClause/RangeOfSingleSynMatchClause.fs (5,0--7,8) }), + /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--7,8))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfSingleSynMatchClause.fs (2,0--8,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs new file mode 100644 index 00000000000..d523de5818f --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs @@ -0,0 +1,8 @@ + +try + let content = tryDownloadFile url + Some content +with +| ex -> + () +| diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl new file mode 100644 index 00000000000..0a36e08ecf5 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl @@ -0,0 +1,73 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs", false, + QualifiedNameOfFile RangeOfSingleSynMatchClauseFollowedByBar, [], [], + [SynModuleOrNamespace + ([RangeOfSingleSynMatchClauseFollowedByBar], false, AnonModule, + [Expr + (TryWith + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (content, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,8--3,15)), + None, + App + (NonAtomic, false, Ident tryDownloadFile, Ident url, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,18--3,37)), + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,8--3,15), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,4--3,37), + { LeadingKeyword = + Let + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,16--3,17) })], + App + (NonAtomic, false, Ident Some, Ident content, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (4,4--4,16)), + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (3,4--4,16), + { InKeyword = None }), + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (6,2--6,4)), + None, + Const + (Unit, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (7,4--7,6)), + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (6,2--7,6), + Yes, + { ArrowRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (6,5--6,7) + BarRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (6,0--6,1) })], + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--8,1), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (5,0--5,4), + { TryKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--5,4) + WithKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (5,0--5,4) + WithToEndRange = + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (5,0--8,1) }), + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--8,1))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs (2,0--9,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs new file mode 100644 index 00000000000..9d4a1df901d --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs @@ -0,0 +1,6 @@ + +try + let content = tryDownloadFile url + Some content +with +| ex -> diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs.bsl new file mode 100644 index 00000000000..eb85286e3c4 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs.bsl @@ -0,0 +1,71 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs", false, + QualifiedNameOfFile RangeOfSingleSynMatchClauseWithMissingBody, [], [], + [SynModuleOrNamespace + ([RangeOfSingleSynMatchClauseWithMissingBody], false, AnonModule, + [Expr + (TryWith + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (content, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,8--3,15)), + None, + App + (NonAtomic, false, Ident tryDownloadFile, Ident url, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,18--3,37)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,8--3,15), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,4--3,37), + { LeadingKeyword = + Let + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,16--3,17) })], + App + (NonAtomic, false, Ident Some, Ident content, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (4,4--4,16)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (3,4--4,16), + { InKeyword = None }), + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (6,2--6,4)), + None, + ArbitraryAfterError + ("patternClauses2", + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (6,4--6,4)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (6,2--6,4), + Yes, + { ArrowRange = None + BarRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (6,0--6,1) })], + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--6,4), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (5,0--5,4), + { TryKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--5,4) + WithKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (5,0--5,4) + WithToEndRange = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (5,0--6,4) }), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--6,4))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBody.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs new file mode 100644 index 00000000000..9740c151f9e --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs @@ -0,0 +1,6 @@ + +try + let content = tryDownloadFile url + Some content +with +| ex when (isNull ex) -> diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs.bsl new file mode 100644 index 00000000000..5f360110379 --- /dev/null +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs.bsl @@ -0,0 +1,82 @@ +ImplFile + (ParsedImplFileInput + ("/root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs", + false, + QualifiedNameOfFile RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr, + [], [], + [SynModuleOrNamespace + ([RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr], false, + AnonModule, + [Expr + (TryWith + (LetOrUse + (false, false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (content, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,8--3,15)), + None, + App + (NonAtomic, false, Ident tryDownloadFile, Ident url, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,18--3,37)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,8--3,15), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,4--3,37), + { LeadingKeyword = + Let + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,16--3,17) })], + App + (NonAtomic, false, Ident Some, Ident content, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (4,4--4,16)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (3,4--4,16), + { InKeyword = None }), + [SynMatchClause + (Named + (SynIdent (ex, None), false, None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,2--6,4)), + Some + (Paren + (App + (NonAtomic, false, Ident isNull, Ident ex, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,11--6,20)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,10--6,11), + Some + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,20--6,21), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,10--6,21))), + ArbitraryAfterError + ("patternClauses2", + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,21--6,21)), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,2--6,21), + Yes, + { ArrowRange = None + BarRange = + Some + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (6,0--6,1) })], + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--6,21), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--2,3), + Yes + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (5,0--5,4), + { TryKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--2,3) + TryToWithRange = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--5,4) + WithKeyword = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (5,0--5,4) + WithToEndRange = + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (5,0--6,21) }), + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--6,21))], + PreXmlDocEmpty, [], None, + /root/MatchClause/RangeOfSingleSynMatchClauseWithMissingBodyAndWhenExpr.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs new file mode 100644 index 00000000000..c5e61fb1761 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs @@ -0,0 +1,3 @@ + +let n = 1.0m +let m = 7.000 diff --git a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl new file mode 100644 index 00000000000..1304f00c6a6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl @@ -0,0 +1,75 @@ +ImplFile + (ParsedImplFileInput + ("/root/Measure/MeasureContainsTheRangeOfTheConstant.fs", false, + QualifiedNameOfFile MeasureContainsTheRangeOfTheConstant, [], [], + [SynModuleOrNamespace + ([MeasureContainsTheRangeOfTheConstant], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (n, None), false, None, + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,4--2,5)), + None, + Const + (Measure + (Decimal 1.0M, + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,8--2,12), + Seq + ([Named + ([cm], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,13--2,15))], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,13--2,15))), + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,8--2,16)), + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,4--2,5), + Yes + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,0--2,16), + { LeadingKeyword = + Let + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,6--2,7) })], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,0--2,16)); + Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (m, None), false, None, + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,4--3,5)), + None, + Const + (Measure + (Double 7.0, + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,8--3,13), + Seq + ([Named + ([cm], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,14--3,16))], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,14--3,16))), + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,8--3,17)), + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,4--3,5), + Yes + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,0--3,17), + { LeadingKeyword = + Let + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,0--3,3) + InlineKeyword = None + EqualsRange = + Some + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,6--3,7) })], + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (3,0--3,17))], + PreXmlDocEmpty, [], None, + /root/Measure/MeasureContainsTheRangeOfTheConstant.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs b/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs new file mode 100644 index 00000000000..ddd1f2dff89 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs @@ -0,0 +1,2 @@ + +40u
diff --git a/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs.bsl new file mode 100644 index 00000000000..2fea5fd31c5 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynMeasureParenHasCorrectRange.fs.bsl @@ -0,0 +1,37 @@ +ImplFile + (ParsedImplFileInput + ("/root/Measure/SynMeasureParenHasCorrectRange.fs", false, + QualifiedNameOfFile SynMeasureParenHasCorrectRange, [], [], + [SynModuleOrNamespace + ([SynMeasureParenHasCorrectRange], false, AnonModule, + [Expr + (Const + (Measure + (UInt32 40u, + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,0--2,3), + Divide + (Seq + ([Named + ([hr], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,4--2,6))], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,4--2,6)), + Seq + ([Paren + (Seq + ([Named + ([staff], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,10--2,15)); + Named + ([weeks], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,16--2,21))], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,10--2,21)), + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,9--2,22))], + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,9--2,22)), + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,4--2,22))), + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,0--2,23)), + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,0--2,23))], + PreXmlDocEmpty, [], None, + /root/Measure/SynMeasureParenHasCorrectRange.fs (2,0--2,23), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs new file mode 100644 index 00000000000..27bbf055077 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs @@ -0,0 +1,2 @@ + +[] type X = / second diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl new file mode 100644 index 00000000000..7c29306d461 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs", false, + QualifiedNameOfFile SynTypeTupleInMeasureTypeWithLeadingSlash, [], [], + [SynModuleOrNamespace + ([SynTypeTupleInMeasureTypeWithLeadingSlash], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Measure], [], [None]) + ArgExpr = + Const + (Unit, + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,2--2,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,2--2,9) }] + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,0--2,11) }], + None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,17--2,18)), + Simple + (TypeAbbrev + (Ok, + Tuple + (false, + [Slash + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,21--2,22); + Type + (LongIdent (SynLongIdent ([second], [], [None])))], + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,21--2,29)), + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,21--2,29)), + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,21--2,29)), + [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,0--2,29), + { LeadingKeyword = + Type + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,12--2,16) + EqualsRange = + Some + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,19--2,20) + WithKeyword = None })], + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,0--2,29))], + PreXmlDocEmpty, [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs new file mode 100644 index 00000000000..9d2561f5acb --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs @@ -0,0 +1,2 @@ + +[] type X = Y * Z diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl new file mode 100644 index 00000000000..e950520b107 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs", false, + QualifiedNameOfFile SynTypeTupleInMeasureTypeWithNoSlashes, [], [], + [SynModuleOrNamespace + ([SynTypeTupleInMeasureTypeWithNoSlashes], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Measure], [], [None]) + ArgExpr = + Const + (Unit, + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,2--2,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,2--2,9) }] + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,0--2,11) }], + None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,17--2,18)), + Simple + (TypeAbbrev + (Ok, + Tuple + (false, + [Type (LongIdent (SynLongIdent ([Y], [], [None]))); + Star + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,23--2,24); + Type (LongIdent (SynLongIdent ([Z], [], [None])))], + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,21--2,26)), + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,21--2,26)), + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,21--2,26)), + [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,0--2,26), + { LeadingKeyword = + Type + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,12--2,16) + EqualsRange = + Some + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,19--2,20) + WithKeyword = None })], + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,0--2,26))], + PreXmlDocEmpty, [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs new file mode 100644 index 00000000000..c1b617ede06 --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs @@ -0,0 +1,2 @@ + +[] type R = X * Y / Z diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl new file mode 100644 index 00000000000..258f33298bb --- /dev/null +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl @@ -0,0 +1,55 @@ +ImplFile + (ParsedImplFileInput + ("/root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs", false, + QualifiedNameOfFile SynTypeTupleInMeasureTypeWithStartAndSlash, [], [], + [SynModuleOrNamespace + ([SynTypeTupleInMeasureTypeWithStartAndSlash], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Measure], [], [None]) + ArgExpr = + Const + (Unit, + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,2--2,9)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,2--2,9) }] + Range = + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,0--2,11) }], + None, [], [R], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,17--2,18)), + Simple + (TypeAbbrev + (Ok, + Tuple + (false, + [Type (LongIdent (SynLongIdent ([X], [], [None]))); + Star + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,23--2,24); + Type (LongIdent (SynLongIdent ([Y], [], [None]))); + Slash + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,27--2,28); + Type (LongIdent (SynLongIdent ([Z], [], [None])))], + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,21--2,30)), + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,21--2,30)), + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,21--2,30)), + [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,0--2,30), + { LeadingKeyword = + Type + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,12--2,16) + EqualsRange = + Some + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,19--2,20) + WithKeyword = None })], + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,0--2,30))], + PreXmlDocEmpty, [], None, + /root/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs new file mode 100644 index 00000000000..deacb2fc635 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs @@ -0,0 +1,5 @@ + +type X = + member inline x.Y + with inline get () = 4 + and inline set y = () diff --git a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl new file mode 100644 index 00000000000..9662ed0caa2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl @@ -0,0 +1,134 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/GetSetMemberWithInlineKeyword.fs", false, + QualifiedNameOfFile GetSetMemberWithInlineKeyword, [], [], + [SynModuleOrNamespace + ([GetSetMemberWithInlineKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/GetSetMemberWithInlineKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [GetSetMember + (Some + (SynBinding + (None, Normal, true, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; Y], + [/root/Member/GetSetMemberWithInlineKeyword.fs (3,19--3,20)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/GetSetMemberWithInlineKeyword.fs (4,24--4,26)), + /root/Member/GetSetMemberWithInlineKeyword.fs (4,24--4,26))], + None, + /root/Member/GetSetMemberWithInlineKeyword.fs (4,20--4,26)), + None, + Const + (Int32 4, + /root/Member/GetSetMemberWithInlineKeyword.fs (4,29--4,30)), + /root/Member/GetSetMemberWithInlineKeyword.fs (4,20--4,26), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/GetSetMemberWithInlineKeyword.fs (3,4--3,10) + InlineKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (4,13--4,19) + EqualsRange = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (4,27--4,28) })), + Some + (SynBinding + (None, Normal, true, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some y)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; Y], + [/root/Member/GetSetMemberWithInlineKeyword.fs (3,19--3,20)], + [None; None]), Some set, None, + Pats + [Named + (SynIdent (y, None), false, None, + /root/Member/GetSetMemberWithInlineKeyword.fs (5,23--5,24))], + None, + /root/Member/GetSetMemberWithInlineKeyword.fs (5,19--5,24)), + None, + Const + (Unit, + /root/Member/GetSetMemberWithInlineKeyword.fs (5,27--5,29)), + /root/Member/GetSetMemberWithInlineKeyword.fs (5,19--5,24), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/GetSetMemberWithInlineKeyword.fs (3,4--3,10) + InlineKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (5,12--5,18) + EqualsRange = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (5,25--5,26) })), + /root/Member/GetSetMemberWithInlineKeyword.fs (3,4--5,29), + { InlineKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (3,11--3,17) + WithKeyword = + /root/Member/GetSetMemberWithInlineKeyword.fs (4,8--4,12) + GetKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (4,20--4,23) + AndKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (5,8--5,11) + SetKeyword = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (5,19--5,22) })], + /root/Member/GetSetMemberWithInlineKeyword.fs (3,4--5,29)), + [], None, + /root/Member/GetSetMemberWithInlineKeyword.fs (2,5--5,29), + { LeadingKeyword = + Type + /root/Member/GetSetMemberWithInlineKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/GetSetMemberWithInlineKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/Member/GetSetMemberWithInlineKeyword.fs (2,0--5,29))], + PreXmlDocEmpty, [], None, + /root/Member/GetSetMemberWithInlineKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs new file mode 100644 index 00000000000..5665be1862b --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs @@ -0,0 +1,8 @@ + +type internal CompilerStateCache(readAllBytes: string -> byte[], projectOptions: FSharpProjectOptions) +//#if !NO_TYPEPROVIDERS + as this = +//#else +// = +// #endif + class end diff --git a/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl new file mode 100644 index 00000000000..1fba2babf6d --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl @@ -0,0 +1,105 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/ImplicitCtorWithAsKeyword.fs", false, + QualifiedNameOfFile ImplicitCtorWithAsKeyword, [], [], + [SynModuleOrNamespace + ([ImplicitCtorWithAsKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [CompilerStateCache], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, + Some + (Internal + /root/Member/ImplicitCtorWithAsKeyword.fs (2,5--2,13)), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,14--2,32)), + ObjectModel + (Class, + [ImplicitCtor + (None, [], + SimplePats + ([Typed + (Id + (readAllBytes, None, false, false, false, + /root/Member/ImplicitCtorWithAsKeyword.fs (2,33--2,45)), + Fun + (LongIdent + (SynLongIdent ([string], [], [None])), + Array + (1, + LongIdent + (SynLongIdent ([byte], [], [None])), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,57--2,63)), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,47--2,63), + { ArrowRange = + /root/Member/ImplicitCtorWithAsKeyword.fs (2,54--2,56) }), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,33--2,63)); + Typed + (Id + (projectOptions, None, false, false, false, + /root/Member/ImplicitCtorWithAsKeyword.fs (2,65--2,79)), + LongIdent + (SynLongIdent + ([FSharpProjectOptions], [], [None])), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,65--2,101))], + /root/Member/ImplicitCtorWithAsKeyword.fs (2,32--2,102)), + Some this, + PreXmlDoc ((2,32), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,14--2,32), + { AsKeyword = + Some + /root/Member/ImplicitCtorWithAsKeyword.fs (4,4--4,6) })], + /root/Member/ImplicitCtorWithAsKeyword.fs (8,4--8,13)), [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([Typed + (Id + (readAllBytes, None, false, false, false, + /root/Member/ImplicitCtorWithAsKeyword.fs (2,33--2,45)), + Fun + (LongIdent + (SynLongIdent ([string], [], [None])), + Array + (1, + LongIdent + (SynLongIdent ([byte], [], [None])), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,57--2,63)), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,47--2,63), + { ArrowRange = + /root/Member/ImplicitCtorWithAsKeyword.fs (2,54--2,56) }), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,33--2,63)); + Typed + (Id + (projectOptions, None, false, false, false, + /root/Member/ImplicitCtorWithAsKeyword.fs (2,65--2,79)), + LongIdent + (SynLongIdent + ([FSharpProjectOptions], [], [None])), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,65--2,101))], + /root/Member/ImplicitCtorWithAsKeyword.fs (2,32--2,102)), + Some this, + PreXmlDoc ((2,32), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,14--2,32), + { AsKeyword = + Some + /root/Member/ImplicitCtorWithAsKeyword.fs (4,4--4,6) })), + /root/Member/ImplicitCtorWithAsKeyword.fs (2,5--8,13), + { LeadingKeyword = + Type /root/Member/ImplicitCtorWithAsKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/Member/ImplicitCtorWithAsKeyword.fs (4,12--4,13) + WithKeyword = None })], + /root/Member/ImplicitCtorWithAsKeyword.fs (2,0--8,13))], + PreXmlDocEmpty, [], None, + /root/Member/ImplicitCtorWithAsKeyword.fs (2,0--9,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/Member/ImplicitCtorWithAsKeyword.fs (3,0--3,23); + LineComment /root/Member/ImplicitCtorWithAsKeyword.fs (5,0--5,7); + LineComment /root/Member/ImplicitCtorWithAsKeyword.fs (6,0--6,8); + LineComment /root/Member/ImplicitCtorWithAsKeyword.fs (7,0--7,9)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs new file mode 100644 index 00000000000..fd19ad0caa2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs @@ -0,0 +1,3 @@ + +type X = + member inline x.Y () = () diff --git a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl new file mode 100644 index 00000000000..79e8180bc6e --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl @@ -0,0 +1,71 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/MemberWithInlineKeyword.fs", false, + QualifiedNameOfFile MemberWithInlineKeyword, [], [], + [SynModuleOrNamespace + ([MemberWithInlineKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/MemberWithInlineKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; Y], + [/root/Member/MemberWithInlineKeyword.fs (3,19--3,20)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/Member/MemberWithInlineKeyword.fs (3,22--3,24)), + /root/Member/MemberWithInlineKeyword.fs (3,22--3,24))], + None, + /root/Member/MemberWithInlineKeyword.fs (3,18--3,24)), + None, + Const + (Unit, + /root/Member/MemberWithInlineKeyword.fs (3,27--3,29)), + /root/Member/MemberWithInlineKeyword.fs (3,18--3,24), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/MemberWithInlineKeyword.fs (3,4--3,10) + InlineKeyword = + Some + /root/Member/MemberWithInlineKeyword.fs (3,11--3,17) + EqualsRange = + Some + /root/Member/MemberWithInlineKeyword.fs (3,25--3,26) }), + /root/Member/MemberWithInlineKeyword.fs (3,4--3,29))], + /root/Member/MemberWithInlineKeyword.fs (3,4--3,29)), [], + None, /root/Member/MemberWithInlineKeyword.fs (2,5--3,29), + { LeadingKeyword = + Type /root/Member/MemberWithInlineKeyword.fs (2,0--2,4) + EqualsRange = + Some /root/Member/MemberWithInlineKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/Member/MemberWithInlineKeyword.fs (2,0--3,29))], + PreXmlDocEmpty, [], None, + /root/Member/MemberWithInlineKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..ca1f783a2c3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,4 @@ + +type Foo() = + // A read-only property. + member this.MyReadProperty with get () = myInternalValue diff --git a/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..f31a00961d2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,107 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyReadProperty], + [/root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,15--4,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,40--4,42)), + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,40--4,42))], + None, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,36--4,42)), + None, Ident myInternalValue, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,36--4,42), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,43--4,44) })), + None, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,60), + { InlineKeyword = None + WithKeyword = + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,31--4,35) + GetKeyword = + Some + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,36--4,39) + AndKeyword = None + SetKeyword = None })], + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,60)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--4,60), + { LeadingKeyword = + Type + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--4,60))], + PreXmlDocEmpty, [], None, + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (3,4--3,28)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..a08b721bb35 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,6 @@ + +type Foo() = + // A read-write property. + member this.MyReadWriteProperty + with get () = myInternalValue + and set (value) = myInternalValue <- value diff --git a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..f2a23c60aa8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,154 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyReadWriteProperty], + [/root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,15--4,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,17--5,19)), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,17--5,19))], + None, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,13--5,19)), + None, Ident myInternalValue, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,13--5,19), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,20--5,21) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyReadWriteProperty], + [/root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,15--4,16)], + [None; None]), Some set, None, + Pats + [Paren + (Named + (SynIdent (value, None), false, None, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,17--6,22)), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,16--6,23))], + None, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,12--6,23)), + None, + LongIdentSet + (SynLongIdent ([myInternalValue], [], [None]), + Ident value, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,26--6,50)), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,12--6,23), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,24--6,25) })), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--6,50), + { InlineKeyword = None + WithKeyword = + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,8--5,12) + GetKeyword = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (5,13--5,16) + AndKeyword = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,8--6,11) + SetKeyword = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (6,12--6,15) })], + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--6,50)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--6,50), + { LeadingKeyword = + Type + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--6,50))], + PreXmlDocEmpty, [], None, + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (3,4--3,29)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi b/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi new file mode 100644 index 00000000000..4810bfe32ee --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi @@ -0,0 +1,8 @@ + +module Meh + +type X = + // MemberSig.Member + member Y : int + with + get diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi.bsl b/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi.bsl new file mode 100644 index 00000000000..2f830378a7e --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithGet.fsi.bsl @@ -0,0 +1,59 @@ +SigFile + (ParsedSigFileInput + ("/root/Member/SignatureMemberWithGet.fsi", QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SignatureMemberWithGet.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Member/SignatureMemberWithGet.fsi (6,4--8,35), + { LeadingKeyword = + Member + /root/Member/SignatureMemberWithGet.fsi (6,4--6,10) + InlineKeyword = None + WithKeyword = + Some + /root/Member/SignatureMemberWithGet.fsi (7,20--7,24) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/Member/SignatureMemberWithGet.fsi (6,4--8,35), + { GetSetKeywords = + Some + (Get + /root/Member/SignatureMemberWithGet.fsi (8,32--8,35)) })], + /root/Member/SignatureMemberWithGet.fsi (6,4--8,35)), [], + /root/Member/SignatureMemberWithGet.fsi (4,5--8,35), + { LeadingKeyword = + Type /root/Member/SignatureMemberWithGet.fsi (4,0--4,4) + EqualsRange = + Some /root/Member/SignatureMemberWithGet.fsi (4,7--4,8) + WithKeyword = None })], + /root/Member/SignatureMemberWithGet.fsi (4,0--8,35))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/Member/SignatureMemberWithGet.fsi (2,0--8,35), + { LeadingKeyword = + Module /root/Member/SignatureMemberWithGet.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/Member/SignatureMemberWithGet.fsi (5,4--5,23)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi new file mode 100644 index 00000000000..e20ff57b323 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi @@ -0,0 +1,8 @@ + +module Meh + +type X = + // MemberSig.Member + member Y : int + with + set diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi.bsl b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi.bsl new file mode 100644 index 00000000000..e3ce179860d --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSet.fsi.bsl @@ -0,0 +1,59 @@ +SigFile + (ParsedSigFileInput + ("/root/Member/SignatureMemberWithSet.fsi", QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SignatureMemberWithSet.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Member/SignatureMemberWithSet.fsi (6,4--8,31), + { LeadingKeyword = + Member + /root/Member/SignatureMemberWithSet.fsi (6,4--6,10) + InlineKeyword = None + WithKeyword = + Some + /root/Member/SignatureMemberWithSet.fsi (7,20--7,24) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + /root/Member/SignatureMemberWithSet.fsi (6,4--8,31), + { GetSetKeywords = + Some + (Set + /root/Member/SignatureMemberWithSet.fsi (8,28--8,31)) })], + /root/Member/SignatureMemberWithSet.fsi (6,4--8,31)), [], + /root/Member/SignatureMemberWithSet.fsi (4,5--8,31), + { LeadingKeyword = + Type /root/Member/SignatureMemberWithSet.fsi (4,0--4,4) + EqualsRange = + Some /root/Member/SignatureMemberWithSet.fsi (4,7--4,8) + WithKeyword = None })], + /root/Member/SignatureMemberWithSet.fsi (4,0--8,31))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/Member/SignatureMemberWithSet.fsi (2,0--8,31), + { LeadingKeyword = + Module /root/Member/SignatureMemberWithSet.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/Member/SignatureMemberWithSet.fsi (5,4--5,23)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi new file mode 100644 index 00000000000..291d0e631d3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi @@ -0,0 +1,8 @@ + +module Meh + +type X = + // MemberSig.Member + member Y : int + with + set , get diff --git a/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi.bsl b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi.bsl new file mode 100644 index 00000000000..c206b141a84 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SignatureMemberWithSetget.fsi.bsl @@ -0,0 +1,61 @@ +SigFile + (ParsedSigFileInput + ("/root/Member/SignatureMemberWithSetget.fsi", QualifiedNameOfFile Meh, [], + [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SignatureMemberWithSetget.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Member/SignatureMemberWithSetget.fsi (6,4--8,39), + { LeadingKeyword = + Member + /root/Member/SignatureMemberWithSetget.fsi (6,4--6,10) + InlineKeyword = None + WithKeyword = + Some + /root/Member/SignatureMemberWithSetget.fsi (7,20--7,24) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGetSet }, + /root/Member/SignatureMemberWithSetget.fsi (6,4--8,39), + { GetSetKeywords = + Some + (GetSet + (/root/Member/SignatureMemberWithSetget.fsi (8,36--8,39), + /root/Member/SignatureMemberWithSetget.fsi (8,28--8,31))) })], + /root/Member/SignatureMemberWithSetget.fsi (6,4--8,39)), [], + /root/Member/SignatureMemberWithSetget.fsi (4,5--8,39), + { LeadingKeyword = + Type /root/Member/SignatureMemberWithSetget.fsi (4,0--4,4) + EqualsRange = + Some /root/Member/SignatureMemberWithSetget.fsi (4,7--4,8) + WithKeyword = None })], + /root/Member/SignatureMemberWithSetget.fsi (4,0--8,39))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/Member/SignatureMemberWithSetget.fsi (2,0--8,39), + { LeadingKeyword = + Module /root/Member/SignatureMemberWithSetget.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/Member/SignatureMemberWithSetget.fsi (5,4--5,23)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..3e8ff7cc7e2 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,3 @@ + +type Foo() = + abstract member Bar : int with get,set diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..b0171012d11 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,84 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + AbstractSlot + (SynValSig + ([], SynIdent (Bar, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,4--3,42), + { LeadingKeyword = + AbstractMember + (/root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,4--3,12), + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,13--3,19)) + InlineKeyword = None + WithKeyword = + Some + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,30--3,34) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGetSet }, + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,4--3,42), + { GetSetKeywords = + Some + (GetSet + (/root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,35--3,38), + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,39--3,42))) })], + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (3,4--3,42)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,5--3,42), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,0--3,42))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..97b59c76fd0 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,5 @@ + +/// mutable class with auto-properties +type Person(name : string, age : int) = + /// Full name + member val Name = name with get, set diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..865c851037b --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,107 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Person], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,5--3,11)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([Typed + (Id + (name, None, false, false, false, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,12--3,16)), + LongIdent (SynLongIdent ([string], [], [None])), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,12--3,25)); + Typed + (Id + (age, None, false, false, false, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,27--3,30)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,27--3,36))], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,11--3,37)), + None, + PreXmlDoc ((3,11), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,5--3,11), + { AsKeyword = None }); + AutoProperty + ([], false, Name, None, PropertyGetSet, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, Ident name, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (4,4--5,26), + { LeadingKeyword = + MemberVal + (/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,4--5,10), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,11--5,14)) + WithKeyword = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,27--5,31) + EqualsRange = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,20--5,21) + GetSetKeywords = + Some + (GetSet + (/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,32--5,35), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (5,37--5,40))) })], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (4,4--5,26)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([Typed + (Id + (name, None, false, false, false, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,12--3,16)), + LongIdent (SynLongIdent ([string], [], [None])), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,12--3,25)); + Typed + (Id + (age, None, false, false, false, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,27--3,30)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,27--3,36))], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,11--3,37)), + None, + PreXmlDoc ((3,11), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,5--3,11), + { AsKeyword = None })), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (2,0--5,26), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,0--3,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,38--3,39) + WithKeyword = None })], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (2,0--5,26))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs (3,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..599f6012137 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,4 @@ + +type Foo() = + member val AutoProperty = autoProp with get, set + member val AutoProperty2 = autoProp diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..4750516379a --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,111 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + AutoProperty + ([], false, AutoProperty, None, PropertyGetSet, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, Ident autoProp, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,4--3,38), + { LeadingKeyword = + MemberVal + (/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,4--3,10), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,11--3,14)) + WithKeyword = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,39--3,43) + EqualsRange = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,28--3,29) + GetSetKeywords = + Some + (GetSet + (/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,44--3,47), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,49--3,52))) }); + AutoProperty + ([], false, AutoProperty2, None, Member, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, Ident autoProp, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (4,4--4,39), + { LeadingKeyword = + MemberVal + (/root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (4,4--4,10), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (4,11--4,14)) + WithKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (4,29--4,30) + GetSetKeywords = None })], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (3,4--4,39)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,5--4,39), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,0--4,39))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs new file mode 100644 index 00000000000..381075329a8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs @@ -0,0 +1,4 @@ + +type A = + /// B + member x.B with get() = 5 diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl new file mode 100644 index 00000000000..5d2b901a8c7 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl @@ -0,0 +1,84 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs", false, + QualifiedNameOfFile SynTypeDefnWithMemberWithGetHasXmlComment, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithMemberWithGetHasXmlComment], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([x; B], + [/root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,12--4,13)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,23--4,25)), + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,23--4,25))], + None, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,20--4,25)), + None, + Const + (Int32 5, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,28--4,29)), + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (3,4--4,25), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,26--4,27) })), + None, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (3,4--4,29), + { InlineKeyword = None + WithKeyword = + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,15--4,19) + GetKeyword = + Some + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (4,20--4,23) + AndKeyword = None + SetKeyword = None })], + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (3,4--4,29)), + [], None, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,5--4,29), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,7--2,8) + WithKeyword = None })], + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,0--4,29))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs new file mode 100644 index 00000000000..ac8471ff188 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs @@ -0,0 +1,3 @@ + +type A() = + member this.Z with set (_:int):unit = () and get():int = 1 diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl new file mode 100644 index 00000000000..0732b13d059 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl @@ -0,0 +1,174 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithMemberWithSetget.fs", false, + QualifiedNameOfFile SynTypeDefnWithMemberWithSetget, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithMemberWithSetget], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,5--2,6), + { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Z], + [/root/Member/SynTypeDefnWithMemberWithSetget.fs (3,15--3,16)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,52--3,54)), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,52--3,54))], + None, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,49--3,54)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([int], [], [None])), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,55--3,58), + [], + { ColonRange = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,54--3,55) })), + Typed + (Const + (Int32 1, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,61--3,62)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,61--3,62)), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,49--3,54), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,59--3,60) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Z], + [/root/Member/SynTypeDefnWithMemberWithSetget.fs (3,15--3,16)], + [None; None]), Some set, None, + Pats + [Paren + (Typed + (Wild + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,28--3,29), + LongIdent + (SynLongIdent ([int], [], [None])), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,28--3,33)), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,27--3,34))], + None, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,23--3,34)), + Some + (SynBindingReturnInfo + (LongIdent + (SynLongIdent ([unit], [], [None])), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,35--3,39), + [], + { ColonRange = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,34--3,35) })), + Typed + (Const + (Unit, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,42--3,44)), + LongIdent (SynLongIdent ([unit], [], [None])), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,42--3,44)), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,23--3,34), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,40--3,41) })), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,4--3,62), + { InlineKeyword = None + WithKeyword = + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,18--3,22) + GetKeyword = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,49--3,52) + AndKeyword = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,45--3,48) + SetKeyword = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,23--3,26) })], + /root/Member/SynTypeDefnWithMemberWithSetget.fs (3,4--3,62)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,5--2,6), + { AsKeyword = None })), + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,5--3,62), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,9--2,10) + WithKeyword = None })], + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,0--3,62))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithMemberWithSetget.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs new file mode 100644 index 00000000000..02b35e27497 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs @@ -0,0 +1,5 @@ + +type Foo = + static member ReadWrite2 + with set x = lastUsed <- ("ReadWrite2", x) + and get () = lastUsed <- ("ReadWrite2", 0); 4 diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl new file mode 100644 index 00000000000..f48ba78e8ae --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl @@ -0,0 +1,162 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/SynTypeDefnWithStaticMemberWithGetset.fs", false, + QualifiedNameOfFile SynTypeDefnWithStaticMemberWithGetset, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithStaticMemberWithGetset], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([ReadWrite2], [], [None]), + Some get, None, + Pats + [Paren + (Const + (Unit, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,17--5,19)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,17--5,19))], + None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,13--5,19)), + None, + Sequential + (SuppressNeither, true, + LongIdentSet + (SynLongIdent ([lastUsed], [], [None]), + Paren + (Tuple + (false, + [Const + (String + ("ReadWrite2", Regular, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,35--5,47)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,35--5,47)); + Const + (Int32 0, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,49--5,50))], + [/root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,47--5,48)], + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,35--5,50)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,34--5,35), + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,50--5,51), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,34--5,51)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,22--5,51)), + Const + (Int32 4, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,53--5,54)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,22--5,54)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,13--5,19), + NoneAtInvisible, + { LeadingKeyword = + StaticMember + (/root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,4--3,10), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,11--3,17)) + InlineKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,20--5,21) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, Some x)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([ReadWrite2], [], [None]), + Some set, None, + Pats + [Named + (SynIdent (x, None), false, None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,18--4,19))], + None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,13--4,19)), + None, + LongIdentSet + (SynLongIdent ([lastUsed], [], [None]), + Paren + (Tuple + (false, + [Const + (String + ("ReadWrite2", Regular, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,35--4,47)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,35--4,47)); + Ident x], + [/root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,47--4,48)], + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,35--4,50)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,34--4,35), + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,50--4,51), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,34--4,51)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,22--4,51)), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,13--4,19), + NoneAtInvisible, + { LeadingKeyword = + StaticMember + (/root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,4--3,10), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,11--3,17)) + InlineKeyword = None + EqualsRange = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,20--4,21) })), + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,4--5,54), + { InlineKeyword = None + WithKeyword = + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,8--4,12) + GetKeyword = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,13--5,16) + AndKeyword = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (5,8--5,11) + SetKeyword = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (4,13--4,16) })], + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (3,4--5,54)), + [], None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,5--5,54), + { LeadingKeyword = + Type + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,9--2,10) + WithKeyword = None })], + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,0--5,54))], + PreXmlDocEmpty, [], None, + /root/Member/SynTypeDefnWithStaticMemberWithGetset.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..76932d3db94 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,4 @@ + +type Foo() = + // A write-only property. + member this.MyWriteOnlyProperty with set (value) = myInternalValue <- value diff --git a/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..83fe5668b57 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,112 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + GetSetMember + (None, + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; MyWriteOnlyProperty], + [/root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,15--4,16)], + [None; None]), Some set, None, + Pats + [Paren + (Named + (SynIdent (value, None), false, None, + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,46--4,51)), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,45--4,52))], + None, + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,41--4,52)), + None, + LongIdentSet + (SynLongIdent ([myInternalValue], [], [None]), + Ident value, + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,55--4,79)), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,41--4,52), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,53--4,54) })), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,79), + { InlineKeyword = None + WithKeyword = + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,36--4,40) + GetKeyword = None + AndKeyword = None + SetKeyword = + Some + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,41--4,44) })], + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (4,4--4,79)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,5--4,79), + { LeadingKeyword = + Type + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--4,79))], + PreXmlDocEmpty, [], None, + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs (3,4--3,29)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs new file mode 100644 index 00000000000..3524bdada38 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs @@ -0,0 +1,7 @@ + +let meh = + { new Interface with + override this.Foo () = () + member this.Bar () = () + interface SomethingElse with + member this.Blah () = () } diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl new file mode 100644 index 00000000000..e48691c47c5 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl @@ -0,0 +1,170 @@ +ImplFile + (ParsedImplFileInput + ("/root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs", false, + QualifiedNameOfFile SynExprObjMembersHaveCorrectKeywords, [], [], + [SynModuleOrNamespace + ([SynExprObjMembersHaveCorrectKeywords], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (meh, None), false, None, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,4--2,7)), + None, + ObjExpr + (LongIdent (SynLongIdent ([Interface], [], [None])), None, + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (3,20--3,24), + [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Foo], + [/root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,21--4,22)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,26--4,28)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,26--4,28))], + None, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,17--4,28)), + None, + Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,31--4,33)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,17--4,28), + NoneAtInvisible, + { LeadingKeyword = + Override + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,8--4,16) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,29--4,30) }), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (4,8--4,33)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Bar], + [/root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,19--5,20)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,24--5,26)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,24--5,26))], + None, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,15--5,26)), + None, + Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,29--5,31)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,15--5,26), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,8--5,14) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,27--5,28) }), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (5,8--5,31))], + [SynInterfaceImpl + (LongIdent (SynLongIdent ([SomethingElse], [], [None])), + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (6,30--6,34), + [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((7,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Blah], + [/root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,19--7,20)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,25--7,27)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,25--7,27))], + None, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,15--7,27)), + None, + Const + (Unit, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,30--7,32)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,15--7,27), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,8--7,14) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,28--7,29) }), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (7,8--7,32))], + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (6,6--7,34))], + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (3,6--3,19), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (3,4--7,34)), + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,4--2,7), + Yes + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,0--7,34), + { LeadingKeyword = + Let + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,8--2,9) })], + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,0--7,34))], + PreXmlDocEmpty, [], None, + /root/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs (2,0--8,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs new file mode 100644 index 00000000000..16ee21ce51b --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs @@ -0,0 +1,4 @@ + +type Foo = + abstract X : int + abstract member Y: int diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl new file mode 100644 index 00000000000..4a750a9ce16 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl @@ -0,0 +1,80 @@ +ImplFile + (ParsedImplFileInput + ("/root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs", false, + QualifiedNameOfFile SynMemberDefnAbstractSlotHasCorrectKeyword, [], [], + [SynModuleOrNamespace + ([SynMemberDefnAbstractSlotHasCorrectKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (X, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (3,4--3,20), + { LeadingKeyword = + Abstract + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (3,4--3,12) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (3,4--3,20), + { GetSetKeywords = None }); + AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (4,4--4,26), + { LeadingKeyword = + AbstractMember + (/root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (4,4--4,12), + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (4,13--4,19)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (4,4--4,26), + { GetSetKeywords = None })], + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (3,4--4,26)), + [], None, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,5--4,26), + { LeadingKeyword = + Type + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,9--2,10) + WithKeyword = None })], + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,0--4,26))], + PreXmlDocEmpty, [], None, + /root/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs new file mode 100644 index 00000000000..b1767fe00a9 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs @@ -0,0 +1,6 @@ + +type Foo = + static member val W : int = 1 + member val X : int = 1 + override val Y : int = 2 + default val Z : int = 1 diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl new file mode 100644 index 00000000000..50dc8285112 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl @@ -0,0 +1,152 @@ +ImplFile + (ParsedImplFileInput + ("/root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs", false, + QualifiedNameOfFile SynMemberDefnAutoPropertyHasCorrectKeyword, [], [], + [SynModuleOrNamespace + ([SynMemberDefnAutoPropertyHasCorrectKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [AutoProperty + ([], true, W, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,32--3,33)), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,4--3,33), + { LeadingKeyword = + StaticMemberVal + (/root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,4--3,10), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,11--3,17), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,18--3,21)) + WithKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,30--3,31) + GetSetKeywords = None }); + AutoProperty + ([], false, X, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (4,25--4,26)), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (4,4--4,26), + { LeadingKeyword = + MemberVal + (/root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (4,4--4,10), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (4,11--4,14)) + WithKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (4,23--4,24) + GetSetKeywords = None }); + AutoProperty + ([], false, Y, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 2, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (5,27--5,28)), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (5,4--5,28), + { LeadingKeyword = + OverrideVal + (/root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (5,4--5,12), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (5,13--5,16)) + WithKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (5,25--5,26) + GetSetKeywords = None }); + AutoProperty + ([], false, Z, + Some (LongIdent (SynLongIdent ([int], [], [None]))), + Member, { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Const + (Int32 1, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (6,26--6,27)), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (6,4--6,27), + { LeadingKeyword = + DefaultVal + (/root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (6,4--6,11), + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (6,12--6,15)) + WithKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (6,24--6,25) + GetSetKeywords = None })], + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (3,4--6,27)), + [], None, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,5--6,27), + { LeadingKeyword = + Type + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,9--2,10) + WithKeyword = None })], + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,0--6,27))], + PreXmlDocEmpty, [], None, + /root/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs new file mode 100644 index 00000000000..c8cc9b3d234 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs @@ -0,0 +1,6 @@ + +type Foo = + static member this.B() = () + member this.A() = () + override this.C() = () + default this.D() = () diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl new file mode 100644 index 00000000000..7354c02587a --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl @@ -0,0 +1,196 @@ +ImplFile + (ParsedImplFileInput + ("/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs", + false, QualifiedNameOfFile SynMemberDefnMemberSynValDataHasCorrectKeyword, + [], [], + [SynModuleOrNamespace + ([SynMemberDefnMemberSynValDataHasCorrectKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo ([[]], SynArgInfo ([], false, None)), + None), + LongIdent + (SynLongIdent + ([this; B], + [/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,22--3,23)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,24--3,26)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,24--3,26))], + None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,18--3,26)), + None, + Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,29--3,31)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,18--3,26), + NoneAtInvisible, + { LeadingKeyword = + StaticMember + (/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,4--3,10), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,11--3,17)) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,27--3,28) }), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,4--3,31)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; A], + [/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,15--4,16)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,17--4,19)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,17--4,19))], + None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,11--4,19)), + None, + Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,22--4,24)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,11--4,19), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,20--4,21) }), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (4,4--4,24)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; C], + [/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,17--5,18)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,19--5,21)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,19--5,21))], + None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,13--5,21)), + None, + Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,24--5,26)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,13--5,21), + NoneAtInvisible, + { LeadingKeyword = + Override + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,4--5,12) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,22--5,23) }), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (5,4--5,26)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; D], + [/root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,16--6,17)], + [None; None]), None, None, + Pats + [Paren + (Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,18--6,20)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,18--6,20))], + None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,12--6,20)), + None, + Const + (Unit, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,23--6,25)), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,12--6,20), + NoneAtInvisible, + { LeadingKeyword = + Default + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,4--6,11) + InlineKeyword = None + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,21--6,22) }), + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (6,4--6,25))], + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (3,4--6,25)), + [], None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,5--6,25), + { LeadingKeyword = + Type + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,9--2,10) + WithKeyword = None })], + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,0--6,25))], + PreXmlDocEmpty, [], None, + /root/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi b/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi new file mode 100644 index 00000000000..458c2a046d0 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi @@ -0,0 +1,10 @@ + +namespace X + +type Y = + abstract A : int + abstract member B : double + static member C : string + member D : int + override E : int + default F : int diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi.bsl new file mode 100644 index 00000000000..801928e3fa0 --- /dev/null +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi.bsl @@ -0,0 +1,179 @@ +SigFile + (ParsedSigFileInput + ("/root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi", + QualifiedNameOfFile SynMemberSigMemberHasCorrectKeywords, [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (A, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (5,4--5,20), + { LeadingKeyword = + Abstract + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (5,4--5,12) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (5,4--5,20), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (B, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([double], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (6,4--6,30), + { LeadingKeyword = + AbstractMember + (/root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (6,4--6,12), + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (6,13--6,19)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (6,4--6,30), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (C, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([string], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (7,4--7,28), + { LeadingKeyword = + StaticMember + (/root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (7,4--7,10), + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (7,11--7,17)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (7,4--7,28), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (D, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((8,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (8,4--8,18), + { LeadingKeyword = + Member + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (8,4--8,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (8,4--8,18), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (E, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((9,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (9,4--9,20), + { LeadingKeyword = + Override + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (9,4--9,12) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (9,4--9,20), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (F, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((10,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (10,4--10,19), + { LeadingKeyword = + Default + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (10,4--10,11) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (10,4--10,19), + { GetSetKeywords = None })], + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (5,4--10,19)), + [], + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (4,5--10,19), + { LeadingKeyword = + Type + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (4,0--4,4) + EqualsRange = + Some + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (4,7--4,8) + WithKeyword = None })], + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (4,0--10,19))], + PreXmlDocEmpty, [], None, + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (2,0--10,19), + { LeadingKeyword = + Namespace + /root/MemberFlag/SynMemberSigMemberHasCorrectKeywords.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs new file mode 100644 index 00000000000..13780fd8b7a --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs @@ -0,0 +1,5 @@ + +namespace TypeEquality + +/// A type for witnessing type equality between 'a and 'b +type Teq<'a, 'b> diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs.bsl new file mode 100644 index 00000000000..c35b870c6f4 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs.bsl @@ -0,0 +1,40 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs", + false, + QualifiedNameOfFile DeclaredNamespaceRangeShouldStartAtNamespaceKeyword, + [], [], + [SynModuleOrNamespace + ([TypeEquality], false, DeclaredNamespace, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (a, None, false)); + SynTyparDecl ([], SynTypar (b, None, false))], [], + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (5,8--5,16))), + [], [Teq], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (5,5--5,8)), + Simple + (None + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (5,5--5,8), + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (5,5--5,8)), + [], None, + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (4,0--5,8), + { LeadingKeyword = + Type + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (5,0--5,4) + EqualsRange = None + WithKeyword = None })], + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (4,0--5,8))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (2,0--5,8), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/DeclaredNamespaceRangeShouldStartAtNamespaceKeyword.fs (2,0--2,9) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs new file mode 100644 index 00000000000..9bebb525e73 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs @@ -0,0 +1,4 @@ + +namespace Ionide.VSCode.FSharp + +open global.Node diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs.bsl new file mode 100644 index 00000000000..f2b8bbab926 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs.bsl @@ -0,0 +1,21 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs", false, + QualifiedNameOfFile GlobalInOpenPathShouldContainTrivia, [], [], + [SynModuleOrNamespace + ([Ionide; VSCode; FSharp], false, DeclaredNamespace, + [Open + (ModuleOrNamespace + (SynLongIdent + ([`global`; Node], + [/root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs (4,11--4,12)], + [Some (OriginalNotation "global"); None]), + /root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs (4,5--4,16)), + /root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs (4,0--4,16))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs (2,0--4,16), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/GlobalInOpenPathShouldContainTrivia.fs (2,0--2,9) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs new file mode 100644 index 00000000000..ec44a458d0f --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs @@ -0,0 +1,6 @@ + +// foo +// bar +namespace global + +type X = int diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs.bsl new file mode 100644 index 00000000000..7faf4d9c294 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs.bsl @@ -0,0 +1,42 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs", + false, QualifiedNameOfFile GlobalNamespaceShouldStartAtNamespaceKeyword, + [], [], + [SynModuleOrNamespace + ([], false, GlobalNamespace, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((6,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,5--6,6)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([int], [], [None])), + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,9--6,12)), + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,9--6,12)), + [], None, + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,5--6,12), + { LeadingKeyword = + Type + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,0--6,4) + EqualsRange = + Some + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,7--6,8) + WithKeyword = None })], + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (6,0--6,12))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (4,0--6,12), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (4,0--4,9) })], + (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (2,0--2,6); + LineComment + /root/ModuleOrNamespace/GlobalNamespaceShouldStartAtNamespaceKeyword.fs (3,0--3,6)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs new file mode 100644 index 00000000000..e75bb28a429 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs @@ -0,0 +1,5 @@ + +[< Foo >] +module Bar + +let s : string = "s" diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs.bsl new file mode 100644 index 00000000000..aa19cf32b1a --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs.bsl @@ -0,0 +1,63 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs", false, + QualifiedNameOfFile Bar, [], [], + [SynModuleOrNamespace + ([Bar], false, NamedModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,4--5,5)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([string], [], [None])), + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,8--5,14), + [], + { ColonRange = + Some + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,6--5,7) })), + Typed + (Const + (String + ("s", Regular, + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,17--5,20)), + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,17--5,20)), + LongIdent (SynLongIdent ([string], [], [None])), + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,17--5,20)), + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,4--5,5), + Yes + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,0--5,20), + { LeadingKeyword = + Let + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,0--5,3) + InlineKeyword = None + EqualsRange = + Some + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,15--5,16) })], + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (5,0--5,20))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (2,4--2,7)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (2,4--2,7) }] + Range = + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (2,0--2,11) }], + None, + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (2,0--5,20), + { LeadingKeyword = + Module + /root/ModuleOrNamespace/ModuleRangeShouldStartAtFirstAttribute.fs (3,0--3,6) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs new file mode 100644 index 00000000000..fa4dd8f8871 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs @@ -0,0 +1,13 @@ + +/// this file contains patches to the F# Compiler Service that have not yet made it into +/// published nuget packages. We source-copy them here to have a consistent location for our to-be-removed extensions + +module FsAutoComplete.FCSPatches + +open FSharp.Compiler.Syntax +open FSharp.Compiler.Text +open FsAutoComplete.UntypedAstUtils +open FSharp.Compiler.CodeAnalysis + +module internal SynExprAppLocationsImpl = +let a = 42 diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl new file mode 100644 index 00000000000..6e4d71ec28f --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl @@ -0,0 +1,91 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs", false, + QualifiedNameOfFile FsAutoComplete.FCSPatches, [], [], + [SynModuleOrNamespace + ([FsAutoComplete; FCSPatches], false, NamedModule, + [Open + (ModuleOrNamespace + (SynLongIdent + ([FSharp; Compiler; Syntax], + [/root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (7,11--7,12); + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (7,20--7,21)], + [None; None; None]), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (7,5--7,27)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (7,0--7,27)); + Open + (ModuleOrNamespace + (SynLongIdent + ([FSharp; Compiler; Text], + [/root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (8,11--8,12); + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (8,20--8,21)], + [None; None; None]), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (8,5--8,25)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (8,0--8,25)); + Open + (ModuleOrNamespace + (SynLongIdent + ([FsAutoComplete; UntypedAstUtils], + [/root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (9,19--9,20)], + [None; None]), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (9,5--9,35)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (9,0--9,35)); + Open + (ModuleOrNamespace + (SynLongIdent + ([FSharp; Compiler; CodeAnalysis], + [/root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (10,11--10,12); + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (10,20--10,21)], + [None; None; None]), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (10,5--10,33)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (10,0--10,33)); + NestedModule + (SynComponentInfo + ([], None, [], [SynExprAppLocationsImpl], + PreXmlDoc ((12,0), FSharp.Compiler.Xml.XmlDocCollector), false, + Some + (Internal + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (12,7--12,15)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (12,0--12,39)), + false, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((13,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (a, None), false, None, + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,4--13,5)), + None, + Const + (Int32 42, + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,8--13,10)), + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,4--13,5), + Yes + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,0--13,10), + { LeadingKeyword = + Let + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,0--13,3) + InlineKeyword = None + EqualsRange = + Some + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,6--13,7) })], + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (13,0--13,10))], + false, + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (12,0--13,10), + { ModuleKeyword = + Some + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (12,0--12,6) + EqualsRange = + Some + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (12,40--12,41) })], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (2,0--13,10), + { LeadingKeyword = + Module + /root/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs (5,0--5,6) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs new file mode 100644 index 00000000000..e6b18c6900f --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs @@ -0,0 +1,9 @@ + +namespace TypeEquality + +/// A type for witnessing type equality between 'a and 'b +type Teq = class end + +namespace Foobar + +let x = 42 diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl new file mode 100644 index 00000000000..14697d84763 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl @@ -0,0 +1,68 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs", + false, + QualifiedNameOfFile + MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword, + [], [], + [SynModuleOrNamespace + ([TypeEquality], false, DeclaredNamespace, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Teq], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (5,5--5,8)), + ObjectModel + (Class, [], + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (5,11--5,20)), + [], None, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (4,0--5,20), + { LeadingKeyword = + Type + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (5,0--5,4) + EqualsRange = + Some + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (5,9--5,10) + WithKeyword = None })], + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (4,0--5,20))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (2,0--5,20), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (2,0--2,9) }); + SynModuleOrNamespace + ([Foobar], false, DeclaredNamespace, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((9,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (x, None), false, None, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,4--9,5)), + None, + Const + (Int32 42, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,8--9,10)), + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,4--9,5), + Yes + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,0--9,10), + { LeadingKeyword = + Let + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,0--9,3) + InlineKeyword = None + EqualsRange = + Some + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,6--9,7) })], + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (9,0--9,10))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (7,0--9,10), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs (7,0--7,9) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs new file mode 100644 index 00000000000..5dddd805dea --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs @@ -0,0 +1,4 @@ + +namespace Foo +module Bar = +let a = 42 diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl new file mode 100644 index 00000000000..2b91e1acf5f --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl @@ -0,0 +1,54 @@ +ImplFile + (ParsedImplFileInput + ("/root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs", false, + QualifiedNameOfFile NamespaceShouldContainNamespaceKeyword, [], [], + [SynModuleOrNamespace + ([Foo], false, DeclaredNamespace, + [NestedModule + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (3,0--3,10)), + false, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (a, None), false, None, + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,4--4,5)), + None, + Const + (Int32 42, + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,8--4,10)), + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,4--4,5), + Yes + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,0--4,10), + { LeadingKeyword = + Let + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,0--4,3) + InlineKeyword = None + EqualsRange = + Some + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,6--4,7) })], + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (4,0--4,10))], + false, + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (3,0--4,10), + { ModuleKeyword = + Some + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (3,0--3,6) + EqualsRange = + Some + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (3,11--3,12) })], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (2,0--4,10), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs (2,0--2,9) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi new file mode 100644 index 00000000000..5b5c1a377e6 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi @@ -0,0 +1,6 @@ + +// foo +// bar +namespace global + +type Bar = | Bar of string * int diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi.bsl new file mode 100644 index 00000000000..cb1ba47ffc4 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi.bsl @@ -0,0 +1,65 @@ +SigFile + (ParsedSigFileInput + ("/root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi", + QualifiedNameOfFile GlobalNamespaceShouldStartAtNamespaceKeyword, [], [], + [SynModuleOrNamespaceSig + ([], false, GlobalNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((6,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,5--6,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((6,20), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,20--6,26), + { LeadingKeyword = None }); + SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((6,29), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,29--6,32), + { LeadingKeyword = None })], + PreXmlDoc ((6,11), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,13--6,32), + { BarRange = + Some + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,11--6,12) })], + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,11--6,32)), + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,11--6,32)), + [], + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,5--6,32), + { LeadingKeyword = + Type + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,0--6,4) + EqualsRange = + Some + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,9--6,10) + WithKeyword = None })], + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (6,0--6,32))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (4,0--6,32), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (4,0--4,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (2,0--2,6); + LineComment + /root/ModuleOrNamespaceSig/GlobalNamespaceShouldStartAtNamespaceKeyword.fsi (3,0--3,6)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi new file mode 100644 index 00000000000..41ed2f5997e --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi @@ -0,0 +1,5 @@ + +[< Foo >] +module Bar + +val s : string diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi.bsl new file mode 100644 index 00000000000..e7168ba6cf4 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi.bsl @@ -0,0 +1,41 @@ +SigFile + (ParsedSigFileInput + ("/root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi", + QualifiedNameOfFile Bar, [], [], + [SynModuleOrNamespaceSig + ([Bar], false, NamedModule, + [Val + (SynValSig + ([], SynIdent (s, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([string], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (5,0--5,14), + { LeadingKeyword = + Val + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (5,0--5,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (5,0--5,14))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + [{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (2,4--2,7)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (2,4--2,7) }] + Range = + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (2,0--2,11) }], + None, + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (2,0--5,14), + { LeadingKeyword = + Module + /root/ModuleOrNamespaceSig/ModuleRangeShouldStartAtFirstAttribute.fsi (3,0--3,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi new file mode 100644 index 00000000000..ce9126d8a3b --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi @@ -0,0 +1,4 @@ + +module Bar + +val a: int diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi.bsl new file mode 100644 index 00000000000..92ba3d86626 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi.bsl @@ -0,0 +1,28 @@ +SigFile + (ParsedSigFileInput + ("/root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi", + QualifiedNameOfFile Bar, [], [], + [SynModuleOrNamespaceSig + ([Bar], false, NamedModule, + [Val + (SynValSig + ([], SynIdent (a, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi (4,0--4,10), + { LeadingKeyword = + Val + /root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi (4,0--4,10))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi (2,0--4,10), + { LeadingKeyword = + Module + /root/ModuleOrNamespaceSig/ModuleShouldContainModuleKeyword.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi new file mode 100644 index 00000000000..c79ecb70a48 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi @@ -0,0 +1,4 @@ + +namespace Foo +module Bar = +val a: int diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi.bsl new file mode 100644 index 00000000000..7c448a97484 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi.bsl @@ -0,0 +1,42 @@ +SigFile + (ParsedSigFileInput + ("/root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi", + QualifiedNameOfFile NamespaceShouldContainNamespaceKeyword, [], [], + [SynModuleOrNamespaceSig + ([Foo], false, DeclaredNamespace, + [NestedModule + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (3,0--3,10)), + false, + [Val + (SynValSig + ([], SynIdent (a, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (4,0--4,10), + { LeadingKeyword = + Val + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (4,0--4,10))], + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (3,0--4,10), + { ModuleKeyword = + Some + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (3,0--3,6) + EqualsRange = + Some + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (3,11--3,12) })], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (2,0--4,10), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespaceSig/NamespaceShouldContainNamespaceKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi new file mode 100644 index 00000000000..c37ba4033a1 --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi @@ -0,0 +1,4 @@ + +namespace Foobar + +type Bar = | Bar of string * int diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi.bsl new file mode 100644 index 00000000000..896bed51cce --- /dev/null +++ b/tests/service/data/SyntaxTree/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi.bsl @@ -0,0 +1,61 @@ +SigFile + (ParsedSigFileInput + ("/root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi", + QualifiedNameOfFile RangeMemberReturnsRangeOfSynModuleOrNamespaceSig, [], + [], + [SynModuleOrNamespaceSig + ([Foobar], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Bar], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,5--4,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((4,20), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,20--4,26), + { LeadingKeyword = None }); + SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((4,29), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,29--4,32), + { LeadingKeyword = None })], + PreXmlDoc ((4,11), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,13--4,32), + { BarRange = + Some + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,11--4,12) })], + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,11--4,32)), + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,11--4,32)), + [], + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,5--4,32), + { LeadingKeyword = + Type + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,0--4,4) + EqualsRange = + Some + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,9--4,10) + WithKeyword = None })], + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (4,0--4,32))], + PreXmlDocEmpty, [], None, + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (2,0--4,32), + { LeadingKeyword = + Namespace + /root/ModuleOrNamespaceSig/RangeMemberReturnsRangeOfSynModuleOrNamespaceSig.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs new file mode 100644 index 00000000000..a7602205fd1 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs @@ -0,0 +1,6 @@ + +module TopLevel + +[] +module Nested = + () diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs.bsl new file mode 100644 index 00000000000..5651ffb5b1d --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs.bsl @@ -0,0 +1,45 @@ +ImplFile + (ParsedImplFileInput + ("/root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs", + false, QualifiedNameOfFile TopLevel, [], [], + [SynModuleOrNamespace + ([TopLevel], false, NamedModule, + [NestedModule + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (4,2--4,5)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (4,2--4,5) }] + Range = + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (4,0--4,7) }], + None, [], [Nested], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (5,0--5,13)), + false, + [Expr + (Const + (Unit, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (6,4--6,6)), + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (6,4--6,6))], + false, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (4,0--6,6), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (5,0--5,6) + EqualsRange = + Some + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (5,14--5,15) })], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (2,0--6,6), + { LeadingKeyword = + Module + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleDeclNestedModule.fs (2,0--2,6) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi new file mode 100644 index 00000000000..0ff493d1cd6 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi @@ -0,0 +1,6 @@ + +namespace SomeNamespace + +[] +module Nested = + val x : int diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi.bsl new file mode 100644 index 00000000000..4537f778663 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi.bsl @@ -0,0 +1,55 @@ +SigFile + (ParsedSigFileInput + ("/root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi", + QualifiedNameOfFile + RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule, [], [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [NestedModule + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (4,2--4,5)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (4,2--4,5) }] + Range = + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (4,0--4,7) }], + None, [], [Nested], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (5,0--5,13)), + false, + [Val + (SynValSig + ([], SynIdent (x, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (6,4--6,15), + { LeadingKeyword = + Val + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (6,4--6,7) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (6,4--6,15))], + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (4,0--6,15), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (5,0--5,6) + EqualsRange = + Some + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (5,14--5,15) })], + PreXmlDocEmpty, [], None, + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (2,0--6,15), + { LeadingKeyword = + Namespace + /root/NestedModule/RangeOfAttributeShouldBeIncludedInSynModuleSigDeclNestedModule.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs new file mode 100644 index 00000000000..f9e045c9eb7 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs @@ -0,0 +1,3 @@ + +module X = +() diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl new file mode 100644 index 00000000000..8d9d6cb837d --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl @@ -0,0 +1,31 @@ +ImplFile + (ParsedImplFileInput + ("/root/NestedModule/RangeOfEqualSignShouldBePresent.fs", false, + QualifiedNameOfFile RangeOfEqualSignShouldBePresent, [], [], + [SynModuleOrNamespace + ([RangeOfEqualSignShouldBePresent], false, AnonModule, + [NestedModule + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (2,0--2,8)), + false, + [Expr + (Const + (Unit, + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (3,0--3,2)), + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (3,0--3,2))], + false, + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (2,0--3,2), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (2,0--2,6) + EqualsRange = + Some + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (2,9--2,10) })], + PreXmlDocEmpty, [], None, + /root/NestedModule/RangeOfEqualSignShouldBePresent.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi new file mode 100644 index 00000000000..d5e89bc4139 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi @@ -0,0 +1,5 @@ + +namespace Foo + +module X = +val bar : int diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi.bsl new file mode 100644 index 00000000000..fc86d73eefa --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi.bsl @@ -0,0 +1,42 @@ +SigFile + (ParsedSigFileInput + ("/root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi", + QualifiedNameOfFile RangeOfEqualSignShouldBePresentSignatureFile, [], [], + [SynModuleOrNamespaceSig + ([Foo], false, DeclaredNamespace, + [NestedModule + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (4,0--4,8)), + false, + [Val + (SynValSig + ([], SynIdent (bar, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (5,0--5,13), + { LeadingKeyword = + Val + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (5,0--5,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (5,0--5,13))], + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (4,0--5,13), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (4,0--4,6) + EqualsRange = + Some + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (4,9--4,10) })], + PreXmlDocEmpty, [], None, + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (2,0--5,13), + { LeadingKeyword = + Namespace + /root/NestedModule/RangeOfEqualSignShouldBePresentSignatureFile.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi b/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi new file mode 100644 index 00000000000..c9a0700edf0 --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi @@ -0,0 +1,61 @@ + +namespace Microsoft.FSharp.Core + +open System +open System.Collections.Generic +open Microsoft.FSharp.Core +open Microsoft.FSharp.Collections +open System.Collections + + +module Tuple = + + type Tuple<'T1,'T2,'T3,'T4> = + interface IStructuralEquatable + interface IStructuralComparable + interface IComparable + new : 'T1 * 'T2 * 'T3 * 'T4 -> Tuple<'T1,'T2,'T3,'T4> + member Item1 : 'T1 with get + member Item2 : 'T2 with get + member Item3 : 'T3 with get + member Item4 : 'T4 with get + + +module Choice = + + /// Helper types for active patterns with 6 choices. + [] + [] + type Choice<'T1,'T2,'T3,'T4,'T5,'T6> = + /// Choice 1 of 6 choices + | Choice1Of6 of 'T1 + /// Choice 2 of 6 choices + | Choice2Of6 of 'T2 + /// Choice 3 of 6 choices + | Choice3Of6 of 'T3 + /// Choice 4 of 6 choices + | Choice4Of6 of 'T4 + /// Choice 5 of 6 choices + | Choice5Of6 of 'T5 + /// Choice 6 of 6 choices + | Choice6Of6 of 'T6 + + + +/// Basic F# Operators. This module is automatically opened in all F# code. +[] +module Operators = + + type ``[,]``<'T> with + [] + /// Get the length of an array in the first dimension + member Length1 : int + [] + /// Get the length of the array in the second dimension + member Length2 : int + [] + /// Get the lower bound of the array in the first dimension + member Base1 : int + [] + /// Get the lower bound of the array in the second dimension + member Base2 : int diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi.bsl new file mode 100644 index 00000000000..22976adbe9c --- /dev/null +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi.bsl @@ -0,0 +1,757 @@ +SigFile + (ParsedSigFileInput + ("/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi", + QualifiedNameOfFile + RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl, [], + [], + [SynModuleOrNamespaceSig + ([Microsoft; FSharp; Core], false, DeclaredNamespace, + [Open + (ModuleOrNamespace + (SynLongIdent ([System], [], [None]), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (4,5--4,11)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (4,0--4,11)); + Open + (ModuleOrNamespace + (SynLongIdent + ([System; Collections; Generic], + [/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (5,11--5,12); + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (5,23--5,24)], + [None; None; None]), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (5,5--5,31)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (5,0--5,31)); + Open + (ModuleOrNamespace + (SynLongIdent + ([Microsoft; FSharp; Core], + [/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (6,14--6,15); + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (6,21--6,22)], + [None; None; None]), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (6,5--6,26)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (6,0--6,26)); + Open + (ModuleOrNamespace + (SynLongIdent + ([Microsoft; FSharp; Collections], + [/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (7,14--7,15); + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (7,21--7,22)], + [None; None; None]), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (7,5--7,33)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (7,0--7,33)); + Open + (ModuleOrNamespace + (SynLongIdent + ([System; Collections], + [/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (8,11--8,12)], + [None; None]), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (8,5--8,23)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (8,0--8,23)); + NestedModule + (SynComponentInfo + ([], None, [], [Tuple], + PreXmlDoc ((11,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (11,0--11,12)), + false, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (T1, None, false)); + SynTyparDecl ([], SynTypar (T2, None, false)); + SynTyparDecl ([], SynTypar (T3, None, false)); + SynTyparDecl ([], SynTypar (T4, None, false))], + [], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,14--13,31))), + [], [Tuple], + PreXmlDoc ((13,4), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,9--13,14)), + ObjectModel + (Unspecified, + [Interface + (LongIdent + (SynLongIdent + ([IStructuralEquatable], [], [None])), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (14,8--14,38)); + Interface + (LongIdent + (SynLongIdent + ([IStructuralComparable], [], [None])), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (15,8--15,39)); + Interface + (LongIdent + (SynLongIdent ([IComparable], [], [None])), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (16,8--16,29)); + Member + (SynValSig + ([], SynIdent (new, None), + SynValTyparDecls (None, false), + Fun + (Tuple + (false, + [Type + (Var + (SynTypar (T1, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,14--17,17))); + Star + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,18--17,19); + Type + (Var + (SynTypar (T2, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,20--17,23))); + Star + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,24--17,25); + Type + (Var + (SynTypar (T3, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,26--17,29))); + Star + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,30--17,31); + Type + (Var + (SynTypar (T4, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,32--17,35)))], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,14--17,35)), + App + (LongIdent + (SynLongIdent ([Tuple], [], [None])), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,44--17,45), + [Var + (SynTypar (T1, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,45--17,48)); + Var + (SynTypar (T2, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,49--17,52)); + Var + (SynTypar (T3, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,53--17,56)); + Var + (SynTypar (T4, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,57--17,60))], + [/root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,48--17,49); + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,52--17,53); + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,56--17,57)], + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,60--17,61), + false, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,39--17,61)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,14--17,61), + { ArrowRange = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,36--17,38) }), + SynValInfo + ([[SynArgInfo ([], false, None); + SynArgInfo ([], false, None); + SynArgInfo ([], false, None); + SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((17,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,8--17,61), + { LeadingKeyword = + New + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,8--17,11) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Constructor }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (17,8--17,61), + { GetSetKeywords = None }); + Member + (SynValSig + ([], SynIdent (Item1, None), + SynValTyparDecls (None, true), + Var + (SynTypar (T1, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,23--18,26)), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((18,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,8--18,35), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,8--18,14) + InlineKeyword = None + WithKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,27--18,31) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,8--18,35), + { GetSetKeywords = + Some + (Get + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (18,32--18,35)) }); + Member + (SynValSig + ([], SynIdent (Item2, None), + SynValTyparDecls (None, true), + Var + (SynTypar (T2, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,23--19,26)), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((19,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,8--19,35), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,8--19,14) + InlineKeyword = None + WithKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,27--19,31) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,8--19,35), + { GetSetKeywords = + Some + (Get + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (19,32--19,35)) }); + Member + (SynValSig + ([], SynIdent (Item3, None), + SynValTyparDecls (None, true), + Var + (SynTypar (T3, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,23--20,26)), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((20,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,8--20,35), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,8--20,14) + InlineKeyword = None + WithKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,27--20,31) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,8--20,35), + { GetSetKeywords = + Some + (Get + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (20,32--20,35)) }); + Member + (SynValSig + ([], SynIdent (Item4, None), + SynValTyparDecls (None, true), + Var + (SynTypar (T4, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,23--21,26)), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((21,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,8--21,35), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,8--21,14) + InlineKeyword = None + WithKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,27--21,31) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,8--21,35), + { GetSetKeywords = + Some + (Get + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (21,32--21,35)) })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (14,8--21,35)), + [], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,9--21,35), + { LeadingKeyword = + Type + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,4--13,8) + EqualsRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,32--13,33) + WithKeyword = None })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (13,4--21,35))], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (11,0--21,35), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (11,0--11,6) + EqualsRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (11,13--11,14) }); + NestedModule + (SynComponentInfo + ([], None, [], [Choice], + PreXmlDoc ((24,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (24,0--24,13)), + false, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent ([StructuralEquality], [], [None]) + ArgExpr = + Const + (Unit, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (27,6--27,24)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (27,6--27,24) }; + { TypeName = + SynLongIdent + ([StructuralComparison], [], [None]) + ArgExpr = + Const + (Unit, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (27,26--27,46)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (27,26--27,46) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (27,4--27,48) }; + { Attributes = + [{ TypeName = + SynLongIdent ([CompiledName], [], [None]) + ArgExpr = + Paren + (Const + (String + ("FSharpChoice`6", Regular, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,19--28,35)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,19--28,35)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,18--28,19), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,35--28,36), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,18--28,36)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,6--28,36) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (28,4--28,38) }], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (T1, None, false)); + SynTyparDecl ([], SynTypar (T2, None, false)); + SynTyparDecl ([], SynTypar (T3, None, false)); + SynTyparDecl ([], SynTypar (T4, None, false)); + SynTyparDecl ([], SynTypar (T5, None, false)); + SynTyparDecl ([], SynTypar (T6, None, false))], + [], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (29,15--29,40))), + [], [Choice], + PreXmlDoc ((27,4), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (29,9--29,15)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Choice1Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T1, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (31,22--31,25)), + false, + PreXmlDoc ((31,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (31,22--31,25), + { LeadingKeyword = None })], + PreXmlDoc ((31,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (30,6--31,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (31,6--31,7) }); + SynUnionCase + ([], SynIdent (Choice2Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T2, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (33,22--33,25)), + false, + PreXmlDoc ((33,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (33,22--33,25), + { LeadingKeyword = None })], + PreXmlDoc ((33,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (32,6--33,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (33,6--33,7) }); + SynUnionCase + ([], SynIdent (Choice3Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T3, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (35,22--35,25)), + false, + PreXmlDoc ((35,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (35,22--35,25), + { LeadingKeyword = None })], + PreXmlDoc ((35,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (34,6--35,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (35,6--35,7) }); + SynUnionCase + ([], SynIdent (Choice4Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T4, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (37,22--37,25)), + false, + PreXmlDoc ((37,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (37,22--37,25), + { LeadingKeyword = None })], + PreXmlDoc ((37,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (36,6--37,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (37,6--37,7) }); + SynUnionCase + ([], SynIdent (Choice5Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T5, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (39,22--39,25)), + false, + PreXmlDoc ((39,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (39,22--39,25), + { LeadingKeyword = None })], + PreXmlDoc ((39,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (38,6--39,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (39,6--39,7) }); + SynUnionCase + ([], SynIdent (Choice6Of6, None), + Fields + [SynField + ([], false, None, + Var + (SynTypar (T6, None, false), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (41,22--41,25)), + false, + PreXmlDoc ((41,22), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (41,22--41,25), + { LeadingKeyword = None })], + PreXmlDoc ((41,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (40,6--41,25), + { BarRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (41,6--41,7) })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (30,6--41,25)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (30,6--41,25)), + [], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (26,4--41,25), + { LeadingKeyword = + Type + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (29,4--29,8) + EqualsRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (29,41--29,42) + WithKeyword = None })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (26,4--41,25))], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (24,0--41,25), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (24,0--24,6) + EqualsRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (24,14--24,15) }); + NestedModule + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([AutoOpen], [], [None]) + ArgExpr = + Const + (Unit, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (46,2--46,10)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (46,2--46,10) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (46,0--46,12) }], + None, [], [Operators], + PreXmlDoc ((46,0), FSharp.Compiler.Xml.XmlDocCollector), false, + None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (47,0--47,16)), + false, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (T, None, false))], + [], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,16--49,20))), + [], [[,]], + PreXmlDoc ((49,4), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,9--49,16)), + Simple + (None + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,9--61,26), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,9--61,26)), + [Member + (SynValSig + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CompiledName], [], [None]) + ArgExpr = + Paren + (Const + (String + ("Length1", Regular, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,23--50,32)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,23--50,32)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,22--50,23), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,32--50,33), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,22--50,33)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,10--50,33) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,8--50,35) }], + SynIdent (Length1, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((50,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,8--52,28), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (52,8--52,14) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (50,8--52,28), + { GetSetKeywords = None }); + Member + (SynValSig + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CompiledName], [], [None]) + ArgExpr = + Paren + (Const + (String + ("Length2", Regular, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,23--53,32)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,23--53,32)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,22--53,23), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,32--53,33), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,22--53,33)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,10--53,33) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,8--53,35) }], + SynIdent (Length2, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((53,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,8--55,28), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (55,8--55,14) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (53,8--55,28), + { GetSetKeywords = None }); + Member + (SynValSig + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CompiledName], [], [None]) + ArgExpr = + Paren + (Const + (String + ("Base1", Regular, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,23--56,30)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,23--56,30)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,22--56,23), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,30--56,31), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,22--56,31)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,10--56,31) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,8--56,33) }], + SynIdent (Base1, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((56,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,8--58,26), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (58,8--58,14) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (56,8--58,26), + { GetSetKeywords = None }); + Member + (SynValSig + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CompiledName], [], [None]) + ArgExpr = + Paren + (Const + (String + ("Base2", Regular, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,23--59,30)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,23--59,30)), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,22--59,23), + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,30--59,31), + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,22--59,31)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,10--59,31) }] + Range = + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,8--59,33) }], + SynIdent (Base2, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((59,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,8--61,26), + { LeadingKeyword = + Member + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (61,8--61,14) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (59,8--61,26), + { GetSetKeywords = None })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,9--61,26), + { LeadingKeyword = + Type + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,4--49,8) + EqualsRange = None + WithKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,21--49,25) })], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (49,4--61,26))], + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (45,0--61,26), + { ModuleKeyword = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (47,0--47,6) + EqualsRange = + Some + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (47,17--47,18) })], + PreXmlDocEmpty, [], None, + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (2,0--61,26), + { LeadingKeyword = + Namespace + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (51,8--51,82); + LineComment + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (54,8--54,84); + LineComment + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (57,8--57,88); + LineComment + /root/NestedModule/RangeOfNestedModuleInSignatureFileShouldEndAtTheLastSynModuleSigDecl.fsi (60,8--60,89)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs b/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs new file mode 100644 index 00000000000..937819c0378 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs @@ -0,0 +1,2 @@ + +(|Odd|Even|) 4 diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs.bsl new file mode 100644 index 00000000000..cc0f7837fa6 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternAsFunction.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/ActivePatternAsFunction.fs", false, + QualifiedNameOfFile ActivePatternAsFunction, [], [], + [SynModuleOrNamespace + ([ActivePatternAsFunction], false, AnonModule, + [Expr + (App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([|Odd|Even|], [], + [Some + (HasParenthesis + (/root/OperatorName/ActivePatternAsFunction.fs (2,0--2,1), + /root/OperatorName/ActivePatternAsFunction.fs (2,11--2,12)))]), + None, + /root/OperatorName/ActivePatternAsFunction.fs (2,0--2,12)), + Const + (Int32 4, + /root/OperatorName/ActivePatternAsFunction.fs (2,13--2,14)), + /root/OperatorName/ActivePatternAsFunction.fs (2,0--2,14)), + /root/OperatorName/ActivePatternAsFunction.fs (2,0--2,14))], + PreXmlDocEmpty, [], None, + /root/OperatorName/ActivePatternAsFunction.fs (2,0--2,14), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs new file mode 100644 index 00000000000..e8faaf7d317 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs @@ -0,0 +1,2 @@ + +let (|Odd|Even|) (a: int) = if a % 2 = 0 then Even else Odd diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl new file mode 100644 index 00000000000..9f41eb5267d --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl @@ -0,0 +1,98 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/ActivePatternDefinition.fs", false, + QualifiedNameOfFile ActivePatternDefinition, [], [], + [SynModuleOrNamespace + ([ActivePatternDefinition], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some a)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([|Odd|Even|], [], + [Some + (HasParenthesis + (/root/OperatorName/ActivePatternDefinition.fs (2,4--2,5), + /root/OperatorName/ActivePatternDefinition.fs (2,15--2,16)))]), + None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (a, None), false, None, + /root/OperatorName/ActivePatternDefinition.fs (2,18--2,19)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/OperatorName/ActivePatternDefinition.fs (2,18--2,24)), + /root/OperatorName/ActivePatternDefinition.fs (2,17--2,25))], + None, + /root/OperatorName/ActivePatternDefinition.fs (2,4--2,25)), + None, + IfThenElse + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], + [Some (OriginalNotation "=")]), None, + /root/OperatorName/ActivePatternDefinition.fs (2,37--2,38)), + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Modulus], [], + [Some (OriginalNotation "%")]), None, + /root/OperatorName/ActivePatternDefinition.fs (2,33--2,34)), + Ident a, + /root/OperatorName/ActivePatternDefinition.fs (2,31--2,34)), + Const + (Int32 2, + /root/OperatorName/ActivePatternDefinition.fs (2,35--2,36)), + /root/OperatorName/ActivePatternDefinition.fs (2,31--2,36)), + /root/OperatorName/ActivePatternDefinition.fs (2,31--2,38)), + Const + (Int32 0, + /root/OperatorName/ActivePatternDefinition.fs (2,39--2,40)), + /root/OperatorName/ActivePatternDefinition.fs (2,31--2,40)), + Ident Even, Some (Ident Odd), + Yes + /root/OperatorName/ActivePatternDefinition.fs (2,28--2,45), + false, + /root/OperatorName/ActivePatternDefinition.fs (2,28--2,59), + { IfKeyword = + /root/OperatorName/ActivePatternDefinition.fs (2,28--2,30) + IsElif = false + ThenKeyword = + /root/OperatorName/ActivePatternDefinition.fs (2,41--2,45) + ElseKeyword = + Some + /root/OperatorName/ActivePatternDefinition.fs (2,51--2,55) + IfToThenRange = + /root/OperatorName/ActivePatternDefinition.fs (2,28--2,45) }), + /root/OperatorName/ActivePatternDefinition.fs (2,4--2,25), + NoneAtLet, + { LeadingKeyword = + Let + /root/OperatorName/ActivePatternDefinition.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/ActivePatternDefinition.fs (2,26--2,27) })], + /root/OperatorName/ActivePatternDefinition.fs (2,0--2,59))], + PreXmlDocEmpty, [], None, + /root/OperatorName/ActivePatternDefinition.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs new file mode 100644 index 00000000000..9cea3505af2 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs @@ -0,0 +1,7 @@ + +type A() = + member private _.(| + A' + |) = (| + Lazy + |) diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl new file mode 100644 index 00000000000..2220af078cf --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl @@ -0,0 +1,99 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/ActivePatternIdentifierInPrivateMember.fs", false, + QualifiedNameOfFile ActivePatternIdentifierInPrivateMember, [], [], + [SynModuleOrNamespace + ([ActivePatternIdentifierInPrivateMember], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,5--2,6), + { AsKeyword = None }); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([_; |A'|], + [/root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,20--3,21)], + [None; + Some + (HasParenthesis + (/root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,21--3,22), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (5,5--5,6)))]), + None, None, Pats [], + Some + (Private + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,11--3,18)), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,11--5,6)), + None, + LongIdent + (false, + SynLongIdent + ([|Lazy|], [], + [Some + (HasParenthesis + (/root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (5,9--5,10), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (7,5--7,6)))]), + None, + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (5,9--7,6)), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,11--5,6), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (5,7--5,8) }), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,4--7,6))], + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (3,4--7,6)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,5--2,6), + { AsKeyword = None })), + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,5--7,6), + { LeadingKeyword = + Type + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,0--2,4) + EqualsRange = + Some + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,9--2,10) + WithKeyword = None })], + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,0--7,6))], + PreXmlDocEmpty, [], None, + /root/OperatorName/ActivePatternIdentifierInPrivateMember.fs (2,0--8,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs new file mode 100644 index 00000000000..1827cd84dea --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs @@ -0,0 +1,2 @@ + +let (+) a b = a + b diff --git a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl new file mode 100644 index 00000000000..dd2dacf365d --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl @@ -0,0 +1,65 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/CustomOperatorDefinition.fs", false, + QualifiedNameOfFile CustomOperatorDefinition, [], [], + [SynModuleOrNamespace + ([CustomOperatorDefinition], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some a)]; + [SynArgInfo ([], false, Some b)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([op_Addition], [], + [Some + (OriginalNotationWithParen + (/root/OperatorName/CustomOperatorDefinition.fs (2,4--2,5), + "+", + /root/OperatorName/CustomOperatorDefinition.fs (2,6--2,7)))]), + None, None, + Pats + [Named + (SynIdent (a, None), false, None, + /root/OperatorName/CustomOperatorDefinition.fs (2,8--2,9)); + Named + (SynIdent (b, None), false, None, + /root/OperatorName/CustomOperatorDefinition.fs (2,10--2,11))], + None, + /root/OperatorName/CustomOperatorDefinition.fs (2,4--2,11)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, + /root/OperatorName/CustomOperatorDefinition.fs (2,16--2,17)), + Ident a, + /root/OperatorName/CustomOperatorDefinition.fs (2,14--2,17)), + Ident b, + /root/OperatorName/CustomOperatorDefinition.fs (2,14--2,19)), + /root/OperatorName/CustomOperatorDefinition.fs (2,4--2,11), + NoneAtLet, + { LeadingKeyword = + Let + /root/OperatorName/CustomOperatorDefinition.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/CustomOperatorDefinition.fs (2,12--2,13) })], + /root/OperatorName/CustomOperatorDefinition.fs (2,0--2,19))], + PreXmlDocEmpty, [], None, + /root/OperatorName/CustomOperatorDefinition.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs b/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs new file mode 100644 index 00000000000..4028727f18a --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs @@ -0,0 +1,3 @@ + +(+) a b +op_Addition a b diff --git a/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs.bsl new file mode 100644 index 00000000000..37c03f3aa34 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/DetectDifferenceBetweenCompiledOperators.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs", false, + QualifiedNameOfFile DetectDifferenceBetweenCompiledOperators, [], [], + [SynModuleOrNamespace + ([DetectDifferenceBetweenCompiledOperators], false, AnonModule, + [Expr + (App + (NonAtomic, false, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some + (OriginalNotationWithParen + (/root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--2,1), + "+", + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,2--2,3)))]), + None, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--2,3)), + Ident a, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--2,5)), + Ident b, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--2,7)), + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--2,7)); + Expr + (App + (NonAtomic, false, + App + (NonAtomic, false, Ident op_Addition, Ident a, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (3,0--3,13)), + Ident b, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (3,0--3,15)), + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (3,0--3,15))], + PreXmlDocEmpty, [], None, + /root/OperatorName/DetectDifferenceBetweenCompiledOperators.fs (2,0--3,15), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs b/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs new file mode 100644 index 00000000000..d7612d1973e --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs @@ -0,0 +1,2 @@ + +1 + 1 diff --git a/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs.bsl new file mode 100644 index 00000000000..18827c80974 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/InfixOperation.fs.bsl @@ -0,0 +1,27 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/InfixOperation.fs", false, + QualifiedNameOfFile InfixOperation, [], [], + [SynModuleOrNamespace + ([InfixOperation], false, AnonModule, + [Expr + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], [Some (OriginalNotation "+")]), + None, /root/OperatorName/InfixOperation.fs (2,2--2,3)), + Const + (Int32 1, /root/OperatorName/InfixOperation.fs (2,0--2,1)), + /root/OperatorName/InfixOperation.fs (2,0--2,3)), + Const + (Int32 1, /root/OperatorName/InfixOperation.fs (2,4--2,5)), + /root/OperatorName/InfixOperation.fs (2,0--2,5)), + /root/OperatorName/InfixOperation.fs (2,0--2,5))], PreXmlDocEmpty, + [], None, /root/OperatorName/InfixOperation.fs (2,0--2,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs b/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs new file mode 100644 index 00000000000..b861ab70bae --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs @@ -0,0 +1,2 @@ + +f(x=4) diff --git a/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs.bsl new file mode 100644 index 00000000000..087d1832ca8 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/NamedParameter.fs.bsl @@ -0,0 +1,35 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/NamedParameter.fs", false, + QualifiedNameOfFile NamedParameter, [], [], + [SynModuleOrNamespace + ([NamedParameter], false, AnonModule, + [Expr + (App + (Atomic, false, Ident f, + Paren + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], [Some (OriginalNotation "=")]), + None, + /root/OperatorName/NamedParameter.fs (2,3--2,4)), + Ident x, + /root/OperatorName/NamedParameter.fs (2,2--2,4)), + Const + (Int32 4, + /root/OperatorName/NamedParameter.fs (2,4--2,5)), + /root/OperatorName/NamedParameter.fs (2,2--2,5)), + /root/OperatorName/NamedParameter.fs (2,1--2,2), + Some /root/OperatorName/NamedParameter.fs (2,5--2,6), + /root/OperatorName/NamedParameter.fs (2,1--2,6)), + /root/OperatorName/NamedParameter.fs (2,0--2,6)), + /root/OperatorName/NamedParameter.fs (2,0--2,6))], PreXmlDocEmpty, + [], None, /root/OperatorName/NamedParameter.fs (2,0--2,6), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs b/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs new file mode 100644 index 00000000000..1231ae7d351 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs @@ -0,0 +1,2 @@ + +nameof(+) diff --git a/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs.bsl new file mode 100644 index 00000000000..08fa4198c46 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/NameofOperator.fs.bsl @@ -0,0 +1,25 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/NameofOperator.fs", false, + QualifiedNameOfFile NameofOperator, [], [], + [SynModuleOrNamespace + ([NameofOperator], false, AnonModule, + [Expr + (App + (Atomic, false, Ident nameof, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some + (OriginalNotationWithParen + (/root/OperatorName/NameofOperator.fs (2,6--2,7), + "+", + /root/OperatorName/NameofOperator.fs (2,8--2,9)))]), + None, /root/OperatorName/NameofOperator.fs (2,6--2,9)), + /root/OperatorName/NameofOperator.fs (2,0--2,9)), + /root/OperatorName/NameofOperator.fs (2,0--2,9))], PreXmlDocEmpty, + [], None, /root/OperatorName/NameofOperator.fs (2,0--2,9), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs new file mode 100644 index 00000000000..00613638d42 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs @@ -0,0 +1,4 @@ + +type X() = + let mutable allowInto = 0 + member _.AllowIntoPattern with get() = allowInto and set v = allowInto <- v diff --git a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl new file mode 100644 index 00000000000..9c88ef44236 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl @@ -0,0 +1,172 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/ObjectModelWithTwoMembers.fs", false, + QualifiedNameOfFile ObjectModelWithTwoMembers, [], [], + [SynModuleOrNamespace + ([ObjectModelWithTwoMembers], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,5--2,6), + { AsKeyword = None }); + LetBindings + ([SynBinding + (None, Normal, false, true, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (allowInto, None), false, None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,16--3,25)), + None, + Const + (Int32 0, + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,28--3,29)), + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,16--3,25), + Yes + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,4--3,29), + { LeadingKeyword = + Let + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,4--3,7) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,26--3,27) })], + false, false, + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,4--3,29)); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([_; AllowIntoPattern], + [/root/OperatorName/ObjectModelWithTwoMembers.fs (4,12--4,13)], + [None; None]), Some get, None, + Pats + [Paren + (Const + (Unit, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,38--4,40)), + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,38--4,40))], + None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,35--4,40)), + None, Ident allowInto, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,35--4,40), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,41--4,42) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some v)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([_; AllowIntoPattern], + [/root/OperatorName/ObjectModelWithTwoMembers.fs (4,12--4,13)], + [None; None]), Some set, None, + Pats + [Named + (SynIdent (v, None), false, None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,61--4,62))], + None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,57--4,62)), + None, + LongIdentSet + (SynLongIdent ([allowInto], [], [None]), + Ident v, + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,65--4,79)), + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,57--4,62), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,4--4,10) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,63--4,64) })), + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,4--4,79), + { InlineKeyword = None + WithKeyword = + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,30--4,34) + GetKeyword = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,35--4,38) + AndKeyword = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,53--4,56) + SetKeyword = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (4,57--4,60) })], + /root/OperatorName/ObjectModelWithTwoMembers.fs (3,4--4,79)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,6--2,8)), + None, + PreXmlDoc ((2,6), FSharp.Compiler.Xml.XmlDocCollector), + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,5--2,6), + { AsKeyword = None })), + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,5--4,79), + { LeadingKeyword = + Type + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,0--2,4) + EqualsRange = + Some + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,9--2,10) + WithKeyword = None })], + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,0--4,79))], + PreXmlDocEmpty, [], None, + /root/OperatorName/ObjectModelWithTwoMembers.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs b/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs new file mode 100644 index 00000000000..31a52c7efbb --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs @@ -0,0 +1,2 @@ + +(+) 3 4 diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs.bsl new file mode 100644 index 00000000000..cb3dea9b019 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorAsFunction.fs.bsl @@ -0,0 +1,34 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/OperatorAsFunction.fs", false, + QualifiedNameOfFile OperatorAsFunction, [], [], + [SynModuleOrNamespace + ([OperatorAsFunction], false, AnonModule, + [Expr + (App + (NonAtomic, false, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some + (OriginalNotationWithParen + (/root/OperatorName/OperatorAsFunction.fs (2,0--2,1), + "+", + /root/OperatorName/OperatorAsFunction.fs (2,2--2,3)))]), + None, /root/OperatorName/OperatorAsFunction.fs (2,0--2,3)), + Const + (Int32 3, + /root/OperatorName/OperatorAsFunction.fs (2,4--2,5)), + /root/OperatorName/OperatorAsFunction.fs (2,0--2,5)), + Const + (Int32 4, /root/OperatorName/OperatorAsFunction.fs (2,6--2,7)), + /root/OperatorName/OperatorAsFunction.fs (2,0--2,7)), + /root/OperatorName/OperatorAsFunction.fs (2,0--2,7))], + PreXmlDocEmpty, [], None, + /root/OperatorName/OperatorAsFunction.fs (2,0--2,7), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs new file mode 100644 index 00000000000..711cc45d298 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs @@ -0,0 +1,3 @@ + +type X with + member _.(+) a b = a + b diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl new file mode 100644 index 00000000000..235258d2d36 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl @@ -0,0 +1,92 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/OperatorInMemberDefinition.fs", false, + QualifiedNameOfFile OperatorInMemberDefinition, [], [], + [SynModuleOrNamespace + ([OperatorInMemberDefinition], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/OperatorName/OperatorInMemberDefinition.fs (2,5--2,6)), + ObjectModel + (Augmentation + /root/OperatorName/OperatorInMemberDefinition.fs (2,7--2,11), + [], + /root/OperatorName/OperatorInMemberDefinition.fs (2,5--3,28)), + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some a)]; + [SynArgInfo ([], false, Some b)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([_; op_Addition], + [/root/OperatorName/OperatorInMemberDefinition.fs (3,12--3,13)], + [None; + Some + (OriginalNotationWithParen + (/root/OperatorName/OperatorInMemberDefinition.fs (3,13--3,14), + "+", + /root/OperatorName/OperatorInMemberDefinition.fs (3,15--3,16)))]), + None, None, + Pats + [Named + (SynIdent (a, None), false, None, + /root/OperatorName/OperatorInMemberDefinition.fs (3,17--3,18)); + Named + (SynIdent (b, None), false, None, + /root/OperatorName/OperatorInMemberDefinition.fs (3,19--3,20))], + None, + /root/OperatorName/OperatorInMemberDefinition.fs (3,11--3,20)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + /root/OperatorName/OperatorInMemberDefinition.fs (3,25--3,26)), + Ident a, + /root/OperatorName/OperatorInMemberDefinition.fs (3,23--3,26)), + Ident b, + /root/OperatorName/OperatorInMemberDefinition.fs (3,23--3,28)), + /root/OperatorName/OperatorInMemberDefinition.fs (3,11--3,20), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/OperatorName/OperatorInMemberDefinition.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/OperatorInMemberDefinition.fs (3,21--3,22) }), + /root/OperatorName/OperatorInMemberDefinition.fs (3,4--3,28))], + None, + /root/OperatorName/OperatorInMemberDefinition.fs (2,5--3,28), + { LeadingKeyword = + Type + /root/OperatorName/OperatorInMemberDefinition.fs (2,0--2,4) + EqualsRange = None + WithKeyword = None })], + /root/OperatorName/OperatorInMemberDefinition.fs (2,0--3,28))], + PreXmlDocEmpty, [], None, + /root/OperatorName/OperatorInMemberDefinition.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi new file mode 100644 index 00000000000..be63b6582cf --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi @@ -0,0 +1,3 @@ + +module IntrinsicOperators +val (&): e1: bool -> e2: bool -> bool diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi.bsl new file mode 100644 index 00000000000..995f2bf1908 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInSynValSig.fsi.bsl @@ -0,0 +1,54 @@ +SigFile + (ParsedSigFileInput + ("/root/OperatorName/OperatorNameInSynValSig.fsi", + QualifiedNameOfFile IntrinsicOperators, [], [], + [SynModuleOrNamespaceSig + ([IntrinsicOperators], false, NamedModule, + [Val + (SynValSig + ([], + SynIdent + (op_Amp, + Some + (OriginalNotationWithParen + (/root/OperatorName/OperatorNameInSynValSig.fsi (3,4--3,5), + "&", + /root/OperatorName/OperatorNameInSynValSig.fsi (3,6--3,7)))), + SynValTyparDecls (None, true), + Fun + (SignatureParameter + ([], false, Some e1, + LongIdent (SynLongIdent ([bool], [], [None])), + /root/OperatorName/OperatorNameInSynValSig.fsi (3,9--3,17)), + Fun + (SignatureParameter + ([], false, Some e2, + LongIdent (SynLongIdent ([bool], [], [None])), + /root/OperatorName/OperatorNameInSynValSig.fsi (3,21--3,29)), + LongIdent (SynLongIdent ([bool], [], [None])), + /root/OperatorName/OperatorNameInSynValSig.fsi (3,21--3,37), + { ArrowRange = + /root/OperatorName/OperatorNameInSynValSig.fsi (3,30--3,32) }), + /root/OperatorName/OperatorNameInSynValSig.fsi (3,9--3,37), + { ArrowRange = + /root/OperatorName/OperatorNameInSynValSig.fsi (3,18--3,20) }), + SynValInfo + ([[SynArgInfo ([], false, Some e1)]; + [SynArgInfo ([], false, Some e2)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/OperatorName/OperatorNameInSynValSig.fsi (3,0--3,37), + { LeadingKeyword = + Val + /root/OperatorName/OperatorNameInSynValSig.fsi (3,0--3,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/OperatorName/OperatorNameInSynValSig.fsi (3,0--3,37))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/OperatorName/OperatorNameInSynValSig.fsi (2,0--3,37), + { LeadingKeyword = + Module /root/OperatorName/OperatorNameInSynValSig.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi new file mode 100644 index 00000000000..e1ab714e844 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi @@ -0,0 +1,12 @@ + +[] + module Operators + /// Overloaded unary negation. + /// + /// The value to negate. + /// + /// The result of the operation. + /// + /// + /// + val inline (~-): n: ^T -> ^T when ^T: (static member ( ~- ): ^T -> ^T) and default ^T: int diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi.bsl new file mode 100644 index 00000000000..8709d2513bc --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorNameInValConstraint.fsi.bsl @@ -0,0 +1,117 @@ +SigFile + (ParsedSigFileInput + ("/root/OperatorName/OperatorNameInValConstraint.fsi", + QualifiedNameOfFile Operators, [], [], + [SynModuleOrNamespaceSig + ([Operators], false, NamedModule, + [Val + (SynValSig + ([], + SynIdent + (op_UnaryNegation, + Some + (OriginalNotationWithParen + (/root/OperatorName/OperatorNameInValConstraint.fsi (12,15--12,16), + "~-", + /root/OperatorName/OperatorNameInValConstraint.fsi (12,18--12,19)))), + SynValTyparDecls (None, true), + WithGlobalConstraints + (Fun + (SignatureParameter + ([], false, Some n, + Var + (SynTypar (T, HeadType, false), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,24--12,26)), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,21--12,26)), + Var + (SynTypar (T, HeadType, false), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,30--12,32)), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,21--12,32), + { ArrowRange = + /root/OperatorName/OperatorNameInValConstraint.fsi (12,27--12,29) }), + [WhereTyparSupportsMember + (Var + (SynTypar (T, HeadType, false), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,38--12,40)), + Member + (SynValSig + ([], + SynIdent + (op_UnaryNegation, + Some + (OriginalNotationWithParen + (/root/OperatorName/OperatorNameInValConstraint.fsi (12,57--12,58), + "~-", + /root/OperatorName/OperatorNameInValConstraint.fsi (12,62--12,63)))), + SynValTyparDecls (None, true), + Fun + (Var + (SynTypar (T, HeadType, false), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,65--12,67)), + Var + (SynTypar (T, HeadType, false), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,71--12,73)), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,65--12,73), + { ArrowRange = + /root/OperatorName/OperatorNameInValConstraint.fsi (12,68--12,70) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((12,43), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/OperatorName/OperatorNameInValConstraint.fsi (12,43--12,73), + { LeadingKeyword = + StaticMember + (/root/OperatorName/OperatorNameInValConstraint.fsi (12,43--12,49), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,50--12,56)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/OperatorName/OperatorNameInValConstraint.fsi (12,43--12,73), + { GetSetKeywords = None }), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,38--12,74)); + WhereTyparDefaultsToType + (SynTypar (T, HeadType, false), + LongIdent (SynLongIdent ([int], [], [None])), + /root/OperatorName/OperatorNameInValConstraint.fsi (12,79--12,94))], + /root/OperatorName/OperatorNameInValConstraint.fsi (12,21--12,94)), + SynValInfo + ([[SynArgInfo ([], false, Some n)]], + SynArgInfo ([], false, None)), true, false, + PreXmlDoc ((12,4), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/OperatorName/OperatorNameInValConstraint.fsi (4,4--12,94), + { LeadingKeyword = + Val + /root/OperatorName/OperatorNameInValConstraint.fsi (12,4--12,7) + InlineKeyword = + Some + /root/OperatorName/OperatorNameInValConstraint.fsi (12,8--12,14) + WithKeyword = None + EqualsRange = None }), + /root/OperatorName/OperatorNameInValConstraint.fsi (4,4--12,94))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + [{ Attributes = + [{ TypeName = SynLongIdent ([AutoOpen], [], [None]) + ArgExpr = + Const + (Unit, + /root/OperatorName/OperatorNameInValConstraint.fsi (2,2--2,10)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/OperatorName/OperatorNameInValConstraint.fsi (2,2--2,10) }] + Range = + /root/OperatorName/OperatorNameInValConstraint.fsi (2,0--2,12) }], + None, /root/OperatorName/OperatorNameInValConstraint.fsi (2,0--12,94), + { LeadingKeyword = + Module + /root/OperatorName/OperatorNameInValConstraint.fsi (3,4--3,10) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs b/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs new file mode 100644 index 00000000000..4a7e06e283a --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs @@ -0,0 +1,2 @@ + +f(?x = 7) diff --git a/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs.bsl new file mode 100644 index 00000000000..067a7f499c2 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/OptionalExpression.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/OptionalExpression.fs", false, + QualifiedNameOfFile OptionalExpression, [], [], + [SynModuleOrNamespace + ([OptionalExpression], false, AnonModule, + [Expr + (App + (Atomic, false, Ident f, + Paren + (App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Equality], [], [Some (OriginalNotation "=")]), + None, + /root/OperatorName/OptionalExpression.fs (2,5--2,6)), + LongIdent + (true, SynLongIdent ([x], [], [None]), None, + /root/OperatorName/OptionalExpression.fs (2,3--2,4)), + /root/OperatorName/OptionalExpression.fs (2,3--2,6)), + Const + (Int32 7, + /root/OperatorName/OptionalExpression.fs (2,7--2,8)), + /root/OperatorName/OptionalExpression.fs (2,3--2,8)), + /root/OperatorName/OptionalExpression.fs (2,1--2,2), + Some /root/OperatorName/OptionalExpression.fs (2,8--2,9), + /root/OperatorName/OptionalExpression.fs (2,1--2,9)), + /root/OperatorName/OptionalExpression.fs (2,0--2,9)), + /root/OperatorName/OptionalExpression.fs (2,0--2,9))], + PreXmlDocEmpty, [], None, + /root/OperatorName/OptionalExpression.fs (2,0--2,9), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs new file mode 100644 index 00000000000..68f8d8d53ed --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs @@ -0,0 +1,2 @@ + +(|Odd|_|) 4 diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs.bsl new file mode 100644 index 00000000000..8d7ba24c871 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternAsFunction.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/PartialActivePatternAsFunction.fs", false, + QualifiedNameOfFile PartialActivePatternAsFunction, [], [], + [SynModuleOrNamespace + ([PartialActivePatternAsFunction], false, AnonModule, + [Expr + (App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([|Odd|_|], [], + [Some + (HasParenthesis + (/root/OperatorName/PartialActivePatternAsFunction.fs (2,0--2,1), + /root/OperatorName/PartialActivePatternAsFunction.fs (2,8--2,9)))]), + None, + /root/OperatorName/PartialActivePatternAsFunction.fs (2,0--2,9)), + Const + (Int32 4, + /root/OperatorName/PartialActivePatternAsFunction.fs (2,10--2,11)), + /root/OperatorName/PartialActivePatternAsFunction.fs (2,0--2,11)), + /root/OperatorName/PartialActivePatternAsFunction.fs (2,0--2,11))], + PreXmlDocEmpty, [], None, + /root/OperatorName/PartialActivePatternAsFunction.fs (2,0--2,11), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs new file mode 100644 index 00000000000..59fb5e06343 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs @@ -0,0 +1,2 @@ + +let (|Int32Const|_|) (a: SynConst) = match a with SynConst.Int32 _ -> Some a | _ -> None diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl new file mode 100644 index 00000000000..a0b283d34bc --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl @@ -0,0 +1,93 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/PartialActivePatternDefinition.fs", false, + QualifiedNameOfFile PartialActivePatternDefinition, [], [], + [SynModuleOrNamespace + ([PartialActivePatternDefinition], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some a)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([|Int32Const|_|], [], + [Some + (HasParenthesis + (/root/OperatorName/PartialActivePatternDefinition.fs (2,4--2,5), + /root/OperatorName/PartialActivePatternDefinition.fs (2,19--2,20)))]), + None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (a, None), false, None, + /root/OperatorName/PartialActivePatternDefinition.fs (2,22--2,23)), + LongIdent (SynLongIdent ([SynConst], [], [None])), + /root/OperatorName/PartialActivePatternDefinition.fs (2,22--2,33)), + /root/OperatorName/PartialActivePatternDefinition.fs (2,21--2,34))], + None, + /root/OperatorName/PartialActivePatternDefinition.fs (2,4--2,34)), + None, + Match + (Yes + /root/OperatorName/PartialActivePatternDefinition.fs (2,37--2,49), + Ident a, + [SynMatchClause + (LongIdent + (SynLongIdent + ([SynConst; Int32], + [/root/OperatorName/PartialActivePatternDefinition.fs (2,58--2,59)], + [None; None]), None, None, + Pats + [Wild + /root/OperatorName/PartialActivePatternDefinition.fs (2,65--2,66)], + None, + /root/OperatorName/PartialActivePatternDefinition.fs (2,50--2,66)), + None, + App + (NonAtomic, false, Ident Some, Ident a, + /root/OperatorName/PartialActivePatternDefinition.fs (2,70--2,76)), + /root/OperatorName/PartialActivePatternDefinition.fs (2,50--2,76), + Yes, + { ArrowRange = + Some + /root/OperatorName/PartialActivePatternDefinition.fs (2,67--2,69) + BarRange = None }); + SynMatchClause + (Wild + /root/OperatorName/PartialActivePatternDefinition.fs (2,79--2,80), + None, Ident None, + /root/OperatorName/PartialActivePatternDefinition.fs (2,79--2,88), + Yes, + { ArrowRange = + Some + /root/OperatorName/PartialActivePatternDefinition.fs (2,81--2,83) + BarRange = + Some + /root/OperatorName/PartialActivePatternDefinition.fs (2,77--2,78) })], + /root/OperatorName/PartialActivePatternDefinition.fs (2,37--2,88), + { MatchKeyword = + /root/OperatorName/PartialActivePatternDefinition.fs (2,37--2,42) + WithKeyword = + /root/OperatorName/PartialActivePatternDefinition.fs (2,45--2,49) }), + /root/OperatorName/PartialActivePatternDefinition.fs (2,4--2,34), + NoneAtLet, + { LeadingKeyword = + Let + /root/OperatorName/PartialActivePatternDefinition.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/PartialActivePatternDefinition.fs (2,35--2,36) })], + /root/OperatorName/PartialActivePatternDefinition.fs (2,0--2,88))], + PreXmlDocEmpty, [], None, + /root/OperatorName/PartialActivePatternDefinition.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs new file mode 100644 index 00000000000..f72bb351789 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs @@ -0,0 +1,2 @@ + +let (|Boolean|_|) = Boolean.parse diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl new file mode 100644 index 00000000000..1198be40033 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl @@ -0,0 +1,47 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs", + false, QualifiedNameOfFile PartialActivePatternDefinitionWithoutParameters, + [], [], + [SynModuleOrNamespace + ([PartialActivePatternDefinitionWithoutParameters], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent + (|Boolean|_|, + Some + (HasParenthesis + (/root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,4--2,5), + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,16--2,17)))), + false, None, + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,5--2,16)), + None, + LongIdent + (false, + SynLongIdent + ([Boolean; parse], + [/root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,27--2,28)], + [None; None]), None, + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,20--2,33)), + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,4--2,17), + Yes + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,0--2,33), + { LeadingKeyword = + Let + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,18--2,19) })], + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,0--2,33))], + PreXmlDocEmpty, [], None, + /root/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs b/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs new file mode 100644 index 00000000000..00ed29e8ce0 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs @@ -0,0 +1,2 @@ + ++ -86 diff --git a/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs.bsl new file mode 100644 index 00000000000..b377190a451 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PrefixOperation.fs.bsl @@ -0,0 +1,22 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/PrefixOperation.fs", false, + QualifiedNameOfFile PrefixOperation, [], [], + [SynModuleOrNamespace + ([PrefixOperation], false, AnonModule, + [Expr + (App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([op_UnaryPlus], [], [Some (OriginalNotation "+")]), None, + /root/OperatorName/PrefixOperation.fs (2,0--2,1)), + Const + (Int32 -86, /root/OperatorName/PrefixOperation.fs (2,2--2,5)), + /root/OperatorName/PrefixOperation.fs (2,0--2,5)), + /root/OperatorName/PrefixOperation.fs (2,0--2,5))], PreXmlDocEmpty, + [], None, /root/OperatorName/PrefixOperation.fs (2,0--2,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs b/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs new file mode 100644 index 00000000000..500dae1fb46 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs @@ -0,0 +1,2 @@ + +%%arg diff --git a/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs.bsl new file mode 100644 index 00000000000..788fec331f1 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/PrefixOperationWithTwoCharacters.fs.bsl @@ -0,0 +1,23 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/PrefixOperationWithTwoCharacters.fs", false, + QualifiedNameOfFile PrefixOperationWithTwoCharacters, [], [], + [SynModuleOrNamespace + ([PrefixOperationWithTwoCharacters], false, AnonModule, + [Expr + (App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([op_SpliceUntyped], [], [Some (OriginalNotation "%%")]), + None, + /root/OperatorName/PrefixOperationWithTwoCharacters.fs (2,0--2,2)), + Ident arg, + /root/OperatorName/PrefixOperationWithTwoCharacters.fs (2,0--2,5)), + /root/OperatorName/PrefixOperationWithTwoCharacters.fs (2,0--2,5))], + PreXmlDocEmpty, [], None, + /root/OperatorName/PrefixOperationWithTwoCharacters.fs (2,0--2,5), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs new file mode 100644 index 00000000000..d858d59f0f1 --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs @@ -0,0 +1,2 @@ + +let PowByte (x:byte) n = Checked.( * ) x diff --git a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl new file mode 100644 index 00000000000..e09b00c6b6b --- /dev/null +++ b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl @@ -0,0 +1,66 @@ +ImplFile + (ParsedImplFileInput + ("/root/OperatorName/QualifiedOperatorExpression.fs", false, + QualifiedNameOfFile QualifiedOperatorExpression, [], [], + [SynModuleOrNamespace + ([QualifiedOperatorExpression], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some x)]; + [SynArgInfo ([], false, Some n)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([PowByte], [], [None]), None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (x, None), false, None, + /root/OperatorName/QualifiedOperatorExpression.fs (2,13--2,14)), + LongIdent (SynLongIdent ([byte], [], [None])), + /root/OperatorName/QualifiedOperatorExpression.fs (2,13--2,19)), + /root/OperatorName/QualifiedOperatorExpression.fs (2,12--2,20)); + Named + (SynIdent (n, None), false, None, + /root/OperatorName/QualifiedOperatorExpression.fs (2,21--2,22))], + None, + /root/OperatorName/QualifiedOperatorExpression.fs (2,4--2,22)), + None, + App + (NonAtomic, false, + LongIdent + (false, + SynLongIdent + ([Checked; op_Multiply], + [/root/OperatorName/QualifiedOperatorExpression.fs (2,32--2,33)], + [None; + Some + (OriginalNotationWithParen + (/root/OperatorName/QualifiedOperatorExpression.fs (2,33--2,34), + "*", + /root/OperatorName/QualifiedOperatorExpression.fs (2,37--2,38)))]), + None, + /root/OperatorName/QualifiedOperatorExpression.fs (2,25--2,38)), + Ident x, + /root/OperatorName/QualifiedOperatorExpression.fs (2,25--2,40)), + /root/OperatorName/QualifiedOperatorExpression.fs (2,4--2,22), + NoneAtLet, + { LeadingKeyword = + Let + /root/OperatorName/QualifiedOperatorExpression.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/OperatorName/QualifiedOperatorExpression.fs (2,23--2,24) })], + /root/OperatorName/QualifiedOperatorExpression.fs (2,0--2,40))], + PreXmlDocEmpty, [], None, + /root/OperatorName/QualifiedOperatorExpression.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs b/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs new file mode 100644 index 00000000000..554a8565f75 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs @@ -0,0 +1,2 @@ + +#I \"/tmp\" diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs.bsl b/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs.bsl new file mode 100644 index 00000000000..359c263b617 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs.bsl @@ -0,0 +1,17 @@ +ImplFile + (ParsedImplFileInput + ("/root/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs", + false, QualifiedNameOfFile RegularStringAsParsedHashDirectiveArgument, [], + [], + [SynModuleOrNamespace + ([RegularStringAsParsedHashDirectiveArgument], false, AnonModule, + [HashDirective + (ParsedHashDirective + ("I", [], + /root/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs (2,0--2,2)), + /root/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs (2,0--2,4))], + PreXmlDocEmpty, [], None, + /root/ParsedHashDirective/RegularStringAsParsedHashDirectiveArgument.fs (2,0--2,4), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs b/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs new file mode 100644 index 00000000000..d29dbba12d5 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs @@ -0,0 +1,2 @@ + +#I __SOURCE_DIRECTORY__ diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs.bsl b/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs.bsl new file mode 100644 index 00000000000..a8d2b112f79 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs.bsl @@ -0,0 +1,20 @@ +ImplFile + (ParsedImplFileInput + ("/root/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs", + false, QualifiedNameOfFile SourceIdentifierAsParsedHashDirectiveArgument, + [], [], + [SynModuleOrNamespace + ([SourceIdentifierAsParsedHashDirectiveArgument], false, AnonModule, + [HashDirective + (ParsedHashDirective + ("I", + [SourceIdentifier + ("__SOURCE_DIRECTORY__", "/root/ParsedHashDirective", + /root/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs (0,0--0,0))], + /root/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs (0,0--0,0)), + /root/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs (2,0--2,23))], + PreXmlDocEmpty, [], None, + /root/ParsedHashDirective/SourceIdentifierAsParsedHashDirectiveArgument.fs (2,0--2,23), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs b/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs new file mode 100644 index 00000000000..3125fdc0109 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs @@ -0,0 +1,2 @@ + +#nowarn \"\"\"40\"\"\" diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs.bsl b/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs.bsl new file mode 100644 index 00000000000..c87b69675dc --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs.bsl @@ -0,0 +1,17 @@ +ImplFile + (ParsedImplFileInput + ("/root/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs", + false, QualifiedNameOfFile TripleQuoteStringAsParsedHashDirectiveArgument, + [], [], + [SynModuleOrNamespace + ([TripleQuoteStringAsParsedHashDirectiveArgument], false, AnonModule, + [HashDirective + (ParsedHashDirective + ("nowarn", [], + /root/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs (2,0--2,7)), + /root/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs (2,0--2,9))], + PreXmlDocEmpty, [], None, + /root/ParsedHashDirective/TripleQuoteStringAsParsedHashDirectiveArgument.fs (2,0--2,9), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs b/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs new file mode 100644 index 00000000000..73c6a6eb953 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs @@ -0,0 +1,2 @@ + +#I @\"C:\\Temp\" diff --git a/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs.bsl b/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs.bsl new file mode 100644 index 00000000000..ac4513c4650 --- /dev/null +++ b/tests/service/data/SyntaxTree/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs.bsl @@ -0,0 +1,17 @@ +ImplFile + (ParsedImplFileInput + ("/root/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs", + false, QualifiedNameOfFile VerbatimStringAsParsedHashDirectiveArgument, [], + [], + [SynModuleOrNamespace + ([VerbatimStringAsParsedHashDirectiveArgument], false, AnonModule, + [HashDirective + (ParsedHashDirective + ("I", [], + /root/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs (2,0--2,2)), + /root/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs (2,0--2,4))], + PreXmlDocEmpty, [], None, + /root/ParsedHashDirective/VerbatimStringAsParsedHashDirectiveArgument.fs (2,0--2,4), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs new file mode 100644 index 00000000000..89afebdfc90 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs @@ -0,0 +1,2 @@ + +let 1 :: _ = [ 4; 5; 6 ] diff --git a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl new file mode 100644 index 00000000000..1cdec837f5e --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/InHeadPattern.fs", false, QualifiedNameOfFile InHeadPattern, + [], [], + [SynModuleOrNamespace + ([InHeadPattern], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + ListCons + (Const (Int32 1, /root/Pattern/InHeadPattern.fs (2,4--2,5)), + Wild /root/Pattern/InHeadPattern.fs (2,9--2,10), + /root/Pattern/InHeadPattern.fs (2,4--2,10), + { ColonColonRange = + /root/Pattern/InHeadPattern.fs (2,6--2,8) }), None, + ArrayOrListComputed + (false, + Sequential + (SuppressNeither, true, + Const + (Int32 4, /root/Pattern/InHeadPattern.fs (2,15--2,16)), + Sequential + (SuppressNeither, true, + Const + (Int32 5, + /root/Pattern/InHeadPattern.fs (2,18--2,19)), + Const + (Int32 6, + /root/Pattern/InHeadPattern.fs (2,21--2,22)), + /root/Pattern/InHeadPattern.fs (2,18--2,22)), + /root/Pattern/InHeadPattern.fs (2,15--2,22)), + /root/Pattern/InHeadPattern.fs (2,13--2,24)), + /root/Pattern/InHeadPattern.fs (2,4--2,10), + Yes /root/Pattern/InHeadPattern.fs (2,0--2,24), + { LeadingKeyword = + Let /root/Pattern/InHeadPattern.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some /root/Pattern/InHeadPattern.fs (2,11--2,12) })], + /root/Pattern/InHeadPattern.fs (2,0--2,24))], PreXmlDocEmpty, [], + None, /root/Pattern/InHeadPattern.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs new file mode 100644 index 00000000000..581b961dd82 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs @@ -0,0 +1,3 @@ + +match x with +| (head) :: (tail) -> () diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl new file mode 100644 index 00000000000..847ea9c8b18 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/OperatorInMatchPattern.fs", false, + QualifiedNameOfFile OperatorInMatchPattern, [], [], + [SynModuleOrNamespace + ([OperatorInMatchPattern], false, AnonModule, + [Expr + (Match + (Yes /root/Pattern/OperatorInMatchPattern.fs (2,0--2,12), + Ident x, + [SynMatchClause + (ListCons + (Paren + (Named + (SynIdent (head, None), false, None, + /root/Pattern/OperatorInMatchPattern.fs (3,3--3,7)), + /root/Pattern/OperatorInMatchPattern.fs (3,2--3,8)), + Paren + (Named + (SynIdent (tail, None), false, None, + /root/Pattern/OperatorInMatchPattern.fs (3,13--3,17)), + /root/Pattern/OperatorInMatchPattern.fs (3,12--3,18)), + /root/Pattern/OperatorInMatchPattern.fs (3,2--3,18), + { ColonColonRange = + /root/Pattern/OperatorInMatchPattern.fs (3,9--3,11) }), + None, + Const + (Unit, + /root/Pattern/OperatorInMatchPattern.fs (3,22--3,24)), + /root/Pattern/OperatorInMatchPattern.fs (3,2--3,24), Yes, + { ArrowRange = + Some + /root/Pattern/OperatorInMatchPattern.fs (3,19--3,21) + BarRange = + Some /root/Pattern/OperatorInMatchPattern.fs (3,0--3,1) })], + /root/Pattern/OperatorInMatchPattern.fs (2,0--3,24), + { MatchKeyword = + /root/Pattern/OperatorInMatchPattern.fs (2,0--2,5) + WithKeyword = + /root/Pattern/OperatorInMatchPattern.fs (2,8--2,12) }), + /root/Pattern/OperatorInMatchPattern.fs (2,0--3,24))], + PreXmlDocEmpty, [], None, + /root/Pattern/OperatorInMatchPattern.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs new file mode 100644 index 00000000000..87ee8b80b40 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs @@ -0,0 +1,2 @@ + +let (head::tail) = [ 1;2;4] diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl new file mode 100644 index 00000000000..124cdd87e6c --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/OperatorInSynPatLongIdent.fs", false, + QualifiedNameOfFile OperatorInSynPatLongIdent, [], [], + [SynModuleOrNamespace + ([OperatorInSynPatLongIdent], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Paren + (ListCons + (Named + (SynIdent (head, None), false, None, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,5--2,9)), + Named + (SynIdent (tail, None), false, None, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,11--2,15)), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,5--2,15), + { ColonColonRange = + /root/Pattern/OperatorInSynPatLongIdent.fs (2,9--2,11) }), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,4--2,16)), + None, + ArrayOrListComputed + (false, + Sequential + (SuppressNeither, true, + Const + (Int32 1, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,22--2,23)), + Sequential + (SuppressNeither, true, + Const + (Int32 2, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,24--2,25)), + Const + (Int32 4, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,26--2,27)), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,24--2,27)), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,22--2,27)), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,20--2,28)), + /root/Pattern/OperatorInSynPatLongIdent.fs (2,4--2,16), + Yes /root/Pattern/OperatorInSynPatLongIdent.fs (2,0--2,28), + { LeadingKeyword = + Let /root/Pattern/OperatorInSynPatLongIdent.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Pattern/OperatorInSynPatLongIdent.fs (2,17--2,18) })], + /root/Pattern/OperatorInSynPatLongIdent.fs (2,0--2,28))], + PreXmlDocEmpty, [], None, + /root/Pattern/OperatorInSynPatLongIdent.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs new file mode 100644 index 00000000000..f9259ecadbd --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs @@ -0,0 +1,6 @@ + +match data with +| OnePartData( // foo + part1 = p1 + (* bar *) ) -> p1 +| _ -> failwith "todo" diff --git a/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl new file mode 100644 index 00000000000..8b948a55da4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl @@ -0,0 +1,70 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs", false, + QualifiedNameOfFile ParenthesesOfSynArgPatsNamePatPairs, [], [], + [SynModuleOrNamespace + ([ParenthesesOfSynArgPatsNamePatPairs], false, AnonModule, + [Expr + (Match + (Yes + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,0--2,15), + Ident data, + [SynMatchClause + (LongIdent + (SynLongIdent ([OnePartData], [], [None]), None, None, + NamePatPairs + ([(part1, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (4,10--4,11), + Named + (SynIdent (p1, None), false, None, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (4,12--4,14)))], + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (4,4--5,13), + { ParenRange = + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (3,13--5,13) }), + None, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (3,2--5,13)), + None, Ident p1, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (3,2--5,19), + Yes, + { ArrowRange = + Some + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (5,14--5,16) + BarRange = + Some + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (3,0--3,1) }); + SynMatchClause + (Wild + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,2--6,3), + None, + App + (NonAtomic, false, Ident failwith, + Const + (String + ("todo", Regular, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,16--6,22)), + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,16--6,22)), + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,7--6,22)), + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,2--6,22), + Yes, + { ArrowRange = + Some + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,4--6,6) + BarRange = + Some + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (6,0--6,1) })], + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,0--6,22), + { MatchKeyword = + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,0--2,5) + WithKeyword = + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,11--2,15) }), + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,0--6,22))], + PreXmlDocEmpty, [], None, + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (2,0--7,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (3,15--3,21); + BlockComment + /root/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs (5,2--5,11)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..7621a6ae5e9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,3 @@ + +match x with +| X(Y = y) -> y diff --git a/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..619b6c2283f --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs", + false, + QualifiedNameOfFile SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign, + [], [], + [SynModuleOrNamespace + ([SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign], false, + AnonModule, + [Expr + (Match + (Yes + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,0--2,12), + Ident x, + [SynMatchClause + (LongIdent + (SynLongIdent ([X], [], [None]), None, None, + NamePatPairs + ([(Y, + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,7--3,8), + Named + (SynIdent (y, None), false, None, + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,9--3,10)))], + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,4--3,11), + { ParenRange = + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,3--3,11) }), + None, + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,2--3,11)), + None, Ident y, + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,2--3,16), + Yes, + { ArrowRange = + Some + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,12--3,14) + BarRange = + Some + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (3,0--3,1) })], + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,0--3,16), + { MatchKeyword = + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,0--2,5) + WithKeyword = + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,8--2,12) }), + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,0--3,16))], + PreXmlDocEmpty, [], None, + /root/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs new file mode 100644 index 00000000000..459d7a46e3e --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs @@ -0,0 +1,5 @@ + +match x with +| A +| B -> () +| _ -> () diff --git a/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl new file mode 100644 index 00000000000..dd5680da027 --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl @@ -0,0 +1,62 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs", false, + QualifiedNameOfFile SynPatOrContainsTheRangeOfTheBar, [], [], + [SynModuleOrNamespace + ([SynPatOrContainsTheRangeOfTheBar], false, AnonModule, + [Expr + (Match + (Yes + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,0--2,12), + Ident x, + [SynMatchClause + (Or + (LongIdent + (SynLongIdent ([A], [], [None]), None, None, Pats [], + None, + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (3,2--3,3)), + LongIdent + (SynLongIdent ([B], [], [None]), None, None, Pats [], + None, + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (4,2--4,3)), + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (3,2--4,3), + { BarRange = + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (4,0--4,1) }), + None, + Const + (Unit, + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (4,7--4,9)), + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (3,2--4,9), + Yes, + { ArrowRange = + Some + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (4,4--4,6) + BarRange = + Some + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (3,0--3,1) }); + SynMatchClause + (Wild + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (5,2--5,3), + None, + Const + (Unit, + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (5,7--5,9)), + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (5,2--5,9), + Yes, + { ArrowRange = + Some + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (5,4--5,6) + BarRange = + Some + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (5,0--5,1) })], + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,0--5,9), + { MatchKeyword = + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,0--2,5) + WithKeyword = + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,8--2,12) }), + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,0--5,9))], + PreXmlDocEmpty, [], None, + /root/Pattern/SynPatOrContainsTheRangeOfTheBar.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..6afc9657c4f --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,4 @@ + +match x with +| { Foo = bar } -> () +| _ -> () diff --git a/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..dfff8f8f6ee --- /dev/null +++ b/tests/service/data/SyntaxTree/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,57 @@ +ImplFile + (ParsedImplFileInput + ("/root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs", false, + QualifiedNameOfFile SynPatRecordContainsTheRangeOfTheEqualsSign, [], [], + [SynModuleOrNamespace + ([SynPatRecordContainsTheRangeOfTheEqualsSign], false, AnonModule, + [Expr + (Match + (Yes + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,0--2,12), + Ident x, + [SynMatchClause + (Record + ([(([], Foo), + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,8--3,9), + Named + (SynIdent (bar, None), false, None, + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,10--3,13)))], + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,2--3,15)), + None, + Const + (Unit, + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,19--3,21)), + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,2--3,21), + Yes, + { ArrowRange = + Some + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,16--3,18) + BarRange = + Some + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (3,0--3,1) }); + SynMatchClause + (Wild + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (4,2--4,3), + None, + Const + (Unit, + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (4,7--4,9)), + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (4,2--4,9), + Yes, + { ArrowRange = + Some + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (4,4--4,6) + BarRange = + Some + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (4,0--4,1) })], + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,0--4,9), + { MatchKeyword = + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,0--2,5) + WithKeyword = + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,8--2,12) }), + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,0--4,9))], + PreXmlDocEmpty, [], None, + /root/Pattern/SynPatRecordContainsTheRangeOfTheEqualsSign.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi new file mode 100644 index 00000000000..9a639eb3418 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi @@ -0,0 +1,5 @@ + +module Meh + +type X = + member a : int = 10 diff --git a/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi.bsl new file mode 100644 index 00000000000..d69f029570d --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi.bsl @@ -0,0 +1,63 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi", + QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (a, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Some + (Const + (Int32 10, + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,21--5,23))), + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,4--5,23), + { LeadingKeyword = + Member + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,4--5,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,19--5,20) }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,4--5,23), + { GetSetKeywords = None })], + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (5,4--5,23)), + [], + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (4,5--5,23), + { LeadingKeyword = + Type + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (4,7--4,8) + WithKeyword = None })], + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (4,0--5,23))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (2,0--5,23), + { LeadingKeyword = + Module + /root/SignatureType/EqualsTokenIsPresentInSynValSigMember.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi new file mode 100644 index 00000000000..4d955ef3c95 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi @@ -0,0 +1,4 @@ + +module Meh + +val a : int = 9 diff --git a/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi.bsl new file mode 100644 index 00000000000..a9faf0ca66f --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi.bsl @@ -0,0 +1,33 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi", + QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Val + (SynValSig + ([], SynIdent (a, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + Some + (Const + (Int32 9, + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (4,14--4,15))), + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (4,0--4,15), + { LeadingKeyword = + Val + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (4,0--4,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (4,12--4,13) }), + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (4,0--4,15))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (2,0--4,15), + { LeadingKeyword = + Module + /root/SignatureType/EqualsTokenIsPresentInSynValSigValue.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi new file mode 100644 index 00000000000..65ef6417c9a --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi @@ -0,0 +1,3 @@ + +type A = obj +and B = int diff --git a/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl new file mode 100644 index 00000000000..84297954859 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl @@ -0,0 +1,52 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/LeadingKeywordInRecursiveTypes.fsi", + QualifiedNameOfFile LeadingKeywordInRecursiveTypes, [], [], + [SynModuleOrNamespaceSig + ([LeadingKeywordInRecursiveTypes], false, AnonModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,5--2,6)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([obj], [], [None])), + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,9--2,12)), + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,9--2,12)), + [], + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,5--2,12), + { LeadingKeyword = + Type + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,0--2,4) + EqualsRange = + Some + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,7--2,8) + WithKeyword = None }); + SynTypeDefnSig + (SynComponentInfo + ([], None, [], [B], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,4--3,5)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,8--3,11)), + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,8--3,11)), + [], + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,4--3,11), + { LeadingKeyword = + And + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,0--3,3) + EqualsRange = + Some + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (3,6--3,7) + WithKeyword = None })], + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,0--3,11))], + PreXmlDocEmpty, [], None, + /root/SignatureType/LeadingKeywordInRecursiveTypes.fsi (2,0--4,0), + { LeadingKeyword = None })], { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi b/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi new file mode 100644 index 00000000000..30383972f0b --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi @@ -0,0 +1,5 @@ + +namespace X + +type Foo = + abstract member Bar : int with get,set diff --git a/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi.bsl new file mode 100644 index 00000000000..1fc26c2310a --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi.bsl @@ -0,0 +1,66 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi", + QualifiedNameOfFile + MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword, [], + [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--4,8)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (Bar, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,4--5,42), + { LeadingKeyword = + AbstractMember + (/root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,4--5,12), + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,13--5,19)) + InlineKeyword = None + WithKeyword = + Some + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,30--5,34) + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGetSet }, + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,4--5,42), + { GetSetKeywords = + Some + (GetSet + (/root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,35--5,38), + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,39--5,42))) })], + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (5,4--5,42)), + [], + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--5,42), + { LeadingKeyword = + Type + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (4,9--4,10) + WithKeyword = None })], + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--5,42))], + PreXmlDocEmpty, [], None, + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--5,42), + { LeadingKeyword = + Namespace + /root/SignatureType/MemberSigOfSynMemberSigMemberShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi b/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi new file mode 100644 index 00000000000..a5106c09823 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi @@ -0,0 +1,5 @@ + +type A = + static type B = + class + end diff --git a/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi.bsl new file mode 100644 index 00000000000..b8d471667d8 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi.bsl @@ -0,0 +1,51 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi", + QualifiedNameOfFile NestedTypeHasStaticTypeAsLeadingKeyword, [], [], + [SynModuleOrNamespaceSig + ([NestedTypeHasStaticTypeAsLeadingKeyword], false, AnonModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,5--2,6)), + ObjectModel + (Unspecified, + [NestedType + (SynTypeDefnSig + (SynComponentInfo + ([], None, [], [B], + PreXmlDoc ((3,16), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,16--3,17)), + ObjectModel + (Class, [], + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (4,20--5,23)), + [], + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,16--5,23), + { LeadingKeyword = + StaticType + (/root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,4--3,10), + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,11--3,15)) + EqualsRange = + Some + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,18--3,19) + WithKeyword = None }), + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,4--6,0))], + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (3,4--6,0)), + [], + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,5--6,0), + { LeadingKeyword = + Type + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,0--2,4) + EqualsRange = + Some + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,7--2,8) + WithKeyword = None })], + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,0--6,0))], + PreXmlDocEmpty, [], None, + /root/SignatureType/NestedTypeHasStaticTypeAsLeadingKeyword.fsi (2,0--6,0), + { LeadingKeyword = None })], { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi new file mode 100644 index 00000000000..801c841cf41 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi @@ -0,0 +1,6 @@ + +module internal FSharp.Compiler.ParseHelpers + +// The error raised by the parse_error_rich function, which is called by the parser engine +[] +exception SyntaxError of obj * range: range diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi.bsl new file mode 100644 index 00000000000..3895199dad2 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi.bsl @@ -0,0 +1,68 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi", + QualifiedNameOfFile FSharp.Compiler.ParseHelpers, [], [], + [SynModuleOrNamespaceSig + ([FSharp; Compiler; ParseHelpers], false, NamedModule, + [Exception + (SynExceptionSig + (SynExceptionDefnRepr + ([{ Attributes = + [{ TypeName = SynLongIdent ([NoEquality], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,2--5,12)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,2--5,12) }; + { TypeName = SynLongIdent ([NoComparison], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,14--5,26)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,14--5,26) }] + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,0--5,28) }], + SynUnionCase + ([], SynIdent (SyntaxError, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([obj], [], [None])), false, + PreXmlDoc ((6,25), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (6,25--6,28), + { LeadingKeyword = None }); + SynField + ([], false, Some range, + LongIdent (SynLongIdent ([range], [], [None])), + false, + PreXmlDoc ((6,31), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (6,31--6,43), + { LeadingKeyword = None })], PreXmlDocEmpty, None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (6,10--6,43), + { BarRange = None }), None, + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,0--6,43)), + None, [], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,0--6,43)), + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (5,0--6,43))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], + Some + (Internal + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (2,7--2,15)), + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (2,0--6,43), + { LeadingKeyword = + Module + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynExceptionDefnReprAndSynExceptionSig.fsi (4,0--4,90)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi new file mode 100644 index 00000000000..38fa79042fa --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi @@ -0,0 +1,7 @@ + +namespace SomeNamespace + +[] +type MyType = + class + end diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi.bsl new file mode 100644 index 00000000000..e3fd046a473 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi.bsl @@ -0,0 +1,46 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi", + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSynTypeDefnSig, [], + [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo1], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (4,2--4,6)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (4,2--4,6) }] + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (4,0--4,8) }], + None, [], [MyType], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (5,5--5,11)), + ObjectModel + (Class, [], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (6,4--7,7)), + [], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (4,0--7,7), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (5,0--5,4) + EqualsRange = + Some + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (5,12--5,13) + WithKeyword = None })], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (4,0--7,7))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (2,0--7,7), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynTypeDefnSig.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi new file mode 100644 index 00000000000..1396c98e5eb --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi @@ -0,0 +1,6 @@ + +namespace SomeNamespace + +type FooType = + [] // ValSpfn + abstract x : int diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi.bsl new file mode 100644 index 00000000000..37353a891b4 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi.bsl @@ -0,0 +1,72 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi", + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember, + [], [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [FooType], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (4,5--4,12)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo2], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,6--5,10)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,6--5,10) }] + Range = + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,4--5,12) }], + SynIdent (x, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,4--6,20), + { LeadingKeyword = + Abstract + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (6,4--6,12) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,4--6,20), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,4--6,20)), + [], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (4,5--6,20), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (4,13--4,14) + WithKeyword = None })], + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (4,0--6,20))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (2,0--6,20), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/SignatureType/RangeOfAttributeShouldBeIncludedInSynValSpfnAndMember.fsi (5,13--5,23)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi new file mode 100644 index 00000000000..cbcdfe43a48 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi @@ -0,0 +1,12 @@ + +namespace SomeNamespace + +type Foo = + | Bar + +and [] Bang = + internal + { + LongNameBarBarBarBarBarBarBar: int + } + override GetHashCode : unit -> int diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi.bsl new file mode 100644 index 00000000000..eeefac8eb15 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi.bsl @@ -0,0 +1,115 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi", + QualifiedNameOfFile RangeOfAttributesShouldBeIncludedInRecursiveTypes, [], + [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (4,5--4,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), Fields [], + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (5,6--5,9), + { BarRange = + Some + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (5,4--5,5) })], + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (5,4--5,9)), + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (5,4--5,9)), + [], + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (4,5--5,9), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (4,9--4,10) + WithKeyword = None }); + SynTypeDefnSig + (SynComponentInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CustomEquality], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,6--7,20)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,6--7,20) }] + Range = + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,4--7,22) }], + None, [], [Bang], + PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,23--7,27)), + Simple + (Record + (Some + (Internal + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (8,4--8,12)), + [SynField + ([], false, Some LongNameBarBarBarBarBarBarBar, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((10,12), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (10,12--10,46), + { LeadingKeyword = None })], + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (8,4--11,9)), + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (8,4--11,9)), + [Member + (SynValSig + ([], SynIdent (GetHashCode, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([unit], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (12,31--12,42), + { ArrowRange = + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (12,36--12,38) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((12,8), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (12,8--12,42), + { LeadingKeyword = + Override + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (12,8--12,16) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (12,8--12,42), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,4--12,42), + { LeadingKeyword = + And + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,0--7,3) + EqualsRange = + Some + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (7,28--7,29) + WithKeyword = None })], + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (4,0--12,42))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (2,0--12,42), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi new file mode 100644 index 00000000000..132531c296f --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi @@ -0,0 +1,7 @@ + +module internal FSharp.Compiler.ParseHelpers + +exception SyntaxError of obj * range: range with + member Meh : string -> int + +open Foo diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi.bsl new file mode 100644 index 00000000000..a0531c3b4b9 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi.bsl @@ -0,0 +1,80 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi", + QualifiedNameOfFile FSharp.Compiler.ParseHelpers, [], [], + [SynModuleOrNamespaceSig + ([FSharp; Compiler; ParseHelpers], false, NamedModule, + [Exception + (SynExceptionSig + (SynExceptionDefnRepr + ([], + SynUnionCase + ([], SynIdent (SyntaxError, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([obj], [], [None])), false, + PreXmlDoc ((4,25), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,25--4,28), + { LeadingKeyword = None }); + SynField + ([], false, Some range, + LongIdent (SynLongIdent ([range], [], [None])), + false, + PreXmlDoc ((4,31), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,31--4,43), + { LeadingKeyword = None })], PreXmlDocEmpty, None, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,10--4,43), + { BarRange = None }), None, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,0--4,43)), + Some + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,44--4,48), + [Member + (SynValSig + ([], SynIdent (Meh, None), SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (5,17--5,30), + { ArrowRange = + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (5,24--5,26) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (5,4--5,30), + { LeadingKeyword = + Member + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (5,4--5,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (5,4--5,30), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,0--5,30)), + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (4,0--5,30)); + Open + (ModuleOrNamespace + (SynLongIdent ([Foo], [], [None]), + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (7,5--7,8)), + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (7,0--7,8))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], + Some + (Internal + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (2,7--2,15)), + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (2,0--7,8), + { LeadingKeyword = + Module + /root/SignatureType/RangeOfMembersShouldBeIncludedInSynExceptionSigAndSynModuleSigDeclException.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi new file mode 100644 index 00000000000..95397d5158d --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi @@ -0,0 +1,4 @@ + +namespace Y +type MyFunction = + delegate of int -> string diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi.bsl new file mode 100644 index 00000000000..580866f473e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi.bsl @@ -0,0 +1,70 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi", + QualifiedNameOfFile RangeOfSynTypeDefnSigDelegateOfShouldStartFromName, [], + [], + [SynModuleOrNamespaceSig + ([Y], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [MyFunction], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (3,5--3,15)), + ObjectModel + (Delegate + (Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,16--4,29), + { ArrowRange = + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,20--4,22) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None))), + [Member + (SynValSig + ([], SynIdent (Invoke, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,16--4,29), + { ArrowRange = + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,20--4,22) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDocEmpty, None, None, + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,4--4,29), + { LeadingKeyword = Synthetic + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,4--4,29), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (4,4--4,29)), + [], + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (3,5--4,29), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (3,0--3,4) + EqualsRange = + Some + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (3,16--3,17) + WithKeyword = None })], + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (3,0--4,29))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (2,0--4,29), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfSynTypeDefnSigDelegateOfShouldStartFromName.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi new file mode 100644 index 00000000000..eae604f2d16 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi @@ -0,0 +1,6 @@ + +namespace X +type MyRecord = + class + end + member Score : unit -> int diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi.bsl new file mode 100644 index 00000000000..5b48b2b70ae --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi.bsl @@ -0,0 +1,63 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi", + QualifiedNameOfFile RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember, + [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [MyRecord], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (3,5--3,13)), + ObjectModel + (Class, [], + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (4,4--5,7)), + [Member + (SynValSig + ([], SynIdent (Score, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([unit], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (6,19--6,30), + { ArrowRange = + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (6,24--6,26) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (6,4--6,30), + { LeadingKeyword = + Member + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (6,4--6,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (6,4--6,30), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (3,5--6,30), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (3,0--3,4) + EqualsRange = + Some + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (3,14--3,15) + WithKeyword = None })], + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (3,0--6,30))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (2,0--6,30), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfSynTypeDefnSigObjectModelShouldEndAtLastMember.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi new file mode 100644 index 00000000000..47a468096f4 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi @@ -0,0 +1,5 @@ + +namespace X +type MyRecord = + { Level: int } + member Score : unit -> int diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi.bsl new file mode 100644 index 00000000000..2627a538a1e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi.bsl @@ -0,0 +1,72 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi", + QualifiedNameOfFile RangeOfSynTypeDefnSigRecordShouldEndAtLastMember, [], + [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [MyRecord], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (3,5--3,13)), + Simple + (Record + (None, + [SynField + ([], false, Some Level, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((4,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (4,6--4,16), + { LeadingKeyword = None })], + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (4,4--4,18)), + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (4,4--4,18)), + [Member + (SynValSig + ([], SynIdent (Score, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([unit], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (5,19--5,30), + { ArrowRange = + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (5,24--5,26) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (5,4--5,30), + { LeadingKeyword = + Member + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (5,4--5,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (5,4--5,30), + { GetSetKeywords = None })], + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (3,5--5,30), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (3,0--3,4) + EqualsRange = + Some + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (3,14--3,15) + WithKeyword = None })], + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (3,0--5,30))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (2,0--5,30), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfSynTypeDefnSigRecordShouldEndAtLastMember.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi new file mode 100644 index 00000000000..6d2b999673c --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi @@ -0,0 +1,5 @@ + +namespace Z +type SomeCollection with + val LastIndex : int + val SomeThingElse : int -> string diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi.bsl new file mode 100644 index 00000000000..f9270e4d152 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi.bsl @@ -0,0 +1,63 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi", + QualifiedNameOfFile RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal, [], [], + [SynModuleOrNamespaceSig + ([Z], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [SomeCollection], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,5--3,19)), + Simple + (None + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,5--5,37), + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,5--5,37)), + [ValField + (SynField + ([], false, Some LastIndex, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (4,4--4,23), + { LeadingKeyword = + Some + (Val + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (4,4--4,7)) }), + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (4,4--4,23)); + ValField + (SynField + ([], false, Some SomeThingElse, + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (5,24--5,37), + { ArrowRange = + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (5,28--5,30) }), + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (5,4--5,37), + { LeadingKeyword = + Some + (Val + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (5,4--5,7)) }), + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (5,4--5,37))], + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,5--5,37), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,0--3,4) + EqualsRange = None + WithKeyword = + Some + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,20--3,24) })], + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (3,0--5,37))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (2,0--5,37), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfSynTypeDefnSigSimpleShouldEndAtLastVal.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi b/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi new file mode 100644 index 00000000000..56f1a8975c8 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi @@ -0,0 +1,9 @@ + +namespace GreatProjectThing + +type Meh = + class + end + + +// foo diff --git a/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi.bsl new file mode 100644 index 00000000000..049d714c1f8 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi.bsl @@ -0,0 +1,36 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi", + QualifiedNameOfFile RangeOfTypeShouldEndAtEndKeyword, [], [], + [SynModuleOrNamespaceSig + ([GreatProjectThing], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Meh], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (4,5--4,8)), + ObjectModel + (Class, [], + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (5,8--6,11)), + [], + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (4,5--6,11), + { LeadingKeyword = + Type + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (4,9--4,10) + WithKeyword = None })], + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (4,0--6,11))], + PreXmlDocEmpty, [], None, + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (2,0--6,11), + { LeadingKeyword = + Namespace + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/SignatureType/RangeOfTypeShouldEndAtEndKeyword.fsi (9,0--9,6)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi b/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi new file mode 100644 index 00000000000..dace0596e7e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi @@ -0,0 +1,5 @@ + +namespace X + +exception Foo with +member Meh : unit -> unit diff --git a/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl new file mode 100644 index 00000000000..536bc47948e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl @@ -0,0 +1,57 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi", + QualifiedNameOfFile SynExceptionSigShouldContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Exception + (SynExceptionSig + (SynExceptionDefnRepr + ([], + SynUnionCase + ([], SynIdent (Foo, None), Fields [], PreXmlDocEmpty, None, + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,10--4,13), + { BarRange = None }), None, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--4,13)), + Some + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,14--4,18), + [Member + (SynValSig + ([], SynIdent (Meh, None), SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([unit], [], [None])), + LongIdent (SynLongIdent ([unit], [], [None])), + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,13--5,25), + { ArrowRange = + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,18--5,20) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,25), + { LeadingKeyword = + Member + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,6) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,25), + { GetSetKeywords = None })], + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--5,25)), + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--5,25))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--5,25), + { LeadingKeyword = + Namespace + /root/SignatureType/SynExceptionSigShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi new file mode 100644 index 00000000000..3cc5bebeac2 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi @@ -0,0 +1,5 @@ + +namespace X + +type Foo with +member Meh : unit -> unit diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl new file mode 100644 index 00000000000..a6b61362afc --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi.bsl @@ -0,0 +1,63 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi", + QualifiedNameOfFile SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--4,8)), + Simple + (None + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--5,25), + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--5,25)), + [Member + (SynValSig + ([], SynIdent (Meh, None), SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([unit], [], [None])), + LongIdent (SynLongIdent ([unit], [], [None])), + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,13--5,25), + { ArrowRange = + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,18--5,20) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,25), + { LeadingKeyword = + Member + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,6) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (5,0--5,25), + { GetSetKeywords = None })], + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,5--5,25), + { LeadingKeyword = + Type + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--4,4) + EqualsRange = None + WithKeyword = + Some + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,9--4,13) })], + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (4,0--5,25))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--5,25), + { LeadingKeyword = + Namespace + /root/SignatureType/SynTypeDefnSigShouldContainsTheRangeOfTheWithKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi new file mode 100644 index 00000000000..d244e218282 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi @@ -0,0 +1,6 @@ + +namespace SomeNamespace + +type Bear = + | BlackBear = 1 + | PolarBear = 2 diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi.bsl new file mode 100644 index 00000000000..13fe57b944e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi.bsl @@ -0,0 +1,59 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi", + QualifiedNameOfFile SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign, + [], [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Bear], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (4,5--4,9)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (BlackBear, None), + Const + (Int32 1, + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,18--5,19)), + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,6--5,19), + { BarRange = + Some + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,4--5,5) + EqualsRange = + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,16--5,17) }); + SynEnumCase + ([], SynIdent (PolarBear, None), + Const + (Int32 2, + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (6,18--6,19)), + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (6,6--6,19), + { BarRange = + Some + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (6,4--6,5) + EqualsRange = + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (6,16--6,17) })], + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,4--6,19)), + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (5,4--6,19)), + [], + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (4,5--6,19), + { LeadingKeyword = + Type + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (4,10--4,11) + WithKeyword = None })], + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (4,0--6,19))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (2,0--6,19), + { LeadingKeyword = + Namespace + /root/SignatureType/SynTypeDefnSigWithEnumContainsTheRangeOfTheEqualsSign.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi new file mode 100644 index 00000000000..fedadae109e --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi @@ -0,0 +1,6 @@ + +namespace SomeNamespace + +type Foobar = + class + end diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi.bsl new file mode 100644 index 00000000000..1b2d2c17209 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi.bsl @@ -0,0 +1,35 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi", + QualifiedNameOfFile + SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign, [], + [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Foobar], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (4,5--4,11)), + ObjectModel + (Class, [], + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (5,4--6,7)), + [], + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (4,5--6,7), + { LeadingKeyword = + Type + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (4,12--4,13) + WithKeyword = None })], + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (4,0--6,7))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (2,0--6,7), + { LeadingKeyword = + Namespace + /root/SignatureType/SynTypeDefnSigWithObjectModelClassContainsTheRangeOfTheEqualsSign.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi new file mode 100644 index 00000000000..b2a2646819f --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi @@ -0,0 +1,4 @@ + +namespace Foo + +type X = delegate of string -> string diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi.bsl new file mode 100644 index 00000000000..865f7959402 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi.bsl @@ -0,0 +1,71 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi", + QualifiedNameOfFile + SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign, [], + [], + [SynModuleOrNamespaceSig + ([Foo], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,5--4,6)), + ObjectModel + (Delegate + (Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,21--4,37), + { ArrowRange = + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,28--4,30) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None))), + [Member + (SynValSig + ([], SynIdent (Invoke, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,21--4,37), + { ArrowRange = + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,28--4,30) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDocEmpty, None, None, + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,9--4,37), + { LeadingKeyword = Synthetic + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,9--4,37), + { GetSetKeywords = None })], + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,9--4,37)), + [], + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,5--4,37), + { LeadingKeyword = + Type + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,7--4,8) + WithKeyword = None })], + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (4,0--4,37))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (2,0--4,37), + { LeadingKeyword = + Namespace + /root/SignatureType/SynTypeDefnSigWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi new file mode 100644 index 00000000000..f353be212ad --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi @@ -0,0 +1,6 @@ + +namespace SomeNamespace + +type Shape = +| Square of int +| Rectangle of int * int diff --git a/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi.bsl new file mode 100644 index 00000000000..421c6c0e714 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi.bsl @@ -0,0 +1,78 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi", + QualifiedNameOfFile SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign, + [], [], + [SynModuleOrNamespaceSig + ([SomeNamespace], false, DeclaredNamespace, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Shape], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (4,5--4,10)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Square, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((5,12), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (5,12--5,15), + { LeadingKeyword = None })], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (5,2--5,15), + { BarRange = + Some + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (5,0--5,1) }); + SynUnionCase + ([], SynIdent (Rectangle, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((6,15), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (6,15--6,18), + { LeadingKeyword = None }); + SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((6,21), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (6,21--6,24), + { LeadingKeyword = None })], + PreXmlDoc ((6,0), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (6,2--6,24), + { BarRange = + Some + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (6,0--6,1) })], + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (5,0--6,24)), + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (5,0--6,24)), + [], + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (4,5--6,24), + { LeadingKeyword = + Type + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (4,11--4,12) + WithKeyword = None })], + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (4,0--6,24))], + PreXmlDocEmpty, [], None, + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (2,0--6,24), + { LeadingKeyword = + Namespace + /root/SignatureType/SynTypeDefnSigWithUnionContainsTheRangeOfTheEqualsSign.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi b/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi new file mode 100644 index 00000000000..d058e8e8d08 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi @@ -0,0 +1,6 @@ + +module Meh +val InferSynValData: + memberFlagsOpt: SynMemberFlags option * pat: SynPat option * SynReturnInfo option * origRhsExpr: SynExpr -> + x: string -> + SynValData2 diff --git a/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi.bsl new file mode 100644 index 00000000000..f3ba581c260 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/SynValSigContainsParameterNames.fsi.bsl @@ -0,0 +1,91 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/SynValSigContainsParameterNames.fsi", + QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Val + (SynValSig + ([], SynIdent (InferSynValData, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (SignatureParameter + ([], false, Some memberFlagsOpt, + App + (LongIdent (SynLongIdent ([option], [], [None])), + None, + [LongIdent + (SynLongIdent ([SynMemberFlags], [], [None]))], + [], None, true, + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,20--4,41)), + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,4--4,41))); + Star + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,42--4,43); + Type + (SignatureParameter + ([], false, Some pat, + App + (LongIdent (SynLongIdent ([option], [], [None])), + None, + [LongIdent + (SynLongIdent ([SynPat], [], [None]))], [], + None, true, + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,49--4,62)), + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,44--4,62))); + Star + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,63--4,64); + Type + (App + (LongIdent (SynLongIdent ([option], [], [None])), + None, + [LongIdent + (SynLongIdent ([SynReturnInfo], [], [None]))], + [], None, true, + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,65--4,85))); + Star + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,86--4,87); + Type + (SignatureParameter + ([], false, Some origRhsExpr, + LongIdent (SynLongIdent ([SynExpr], [], [None])), + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,88--4,108)))], + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,4--4,108)), + Fun + (SignatureParameter + ([], false, Some x, + LongIdent (SynLongIdent ([string], [], [None])), + /root/SignatureType/SynValSigContainsParameterNames.fsi (5,8--5,17)), + LongIdent (SynLongIdent ([SynValData2], [], [None])), + /root/SignatureType/SynValSigContainsParameterNames.fsi (5,8--6,23), + { ArrowRange = + /root/SignatureType/SynValSigContainsParameterNames.fsi (5,18--5,20) }), + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,4--6,23), + { ArrowRange = + /root/SignatureType/SynValSigContainsParameterNames.fsi (4,109--4,111) }), + SynValInfo + ([[SynArgInfo ([], false, Some memberFlagsOpt); + SynArgInfo ([], false, Some pat); + SynArgInfo ([], false, None); + SynArgInfo ([], false, Some origRhsExpr)]; + [SynArgInfo ([], false, Some x)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/SignatureType/SynValSigContainsParameterNames.fsi (3,0--6,23), + { LeadingKeyword = + Val + /root/SignatureType/SynValSigContainsParameterNames.fsi (3,0--3,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/SignatureType/SynValSigContainsParameterNames.fsi (3,0--6,23))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SignatureType/SynValSigContainsParameterNames.fsi (2,0--6,23), + { LeadingKeyword = + Module + /root/SignatureType/SynValSigContainsParameterNames.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi b/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi new file mode 100644 index 00000000000..a16c27246ab --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi @@ -0,0 +1,15 @@ + +module Meh + +type X = + member a : int = 10 + +/// Represents a line number when using zero-based line counting (used by Visual Studio) +#if CHECK_LINE0_TYPES + +#else +type Y = int +#endif + +type Z with + static member P : int -> int diff --git a/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi.bsl new file mode 100644 index 00000000000..0cf89703fcf --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi.bsl @@ -0,0 +1,142 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi", + QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (4,5--4,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (a, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + Some + (Const + (Int32 10, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,21--5,23))), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,4--5,23), + { LeadingKeyword = + Member + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,4--5,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = + Some + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,19--5,20) }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,4--5,23), + { GetSetKeywords = None })], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (5,4--5,23)), + [], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (4,5--5,23), + { LeadingKeyword = + Type + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (4,0--4,4) + EqualsRange = + Some + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (4,7--4,8) + WithKeyword = None })], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (4,0--5,23)); + Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Y], + PreXmlDoc ((11,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (11,5--11,6)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (11,9--11,12)), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (11,9--11,12)), + [], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (7,0--11,12), + { LeadingKeyword = + Type + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (11,0--11,4) + EqualsRange = + Some + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (11,7--11,8) + WithKeyword = None })], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (7,0--11,12)); + Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [Z], + PreXmlDoc ((14,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,5--14,6)), + Simple + (None + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,5--15,32), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,5--15,32)), + [Member + (SynValSig + ([], SynIdent (P, None), SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,22--15,32), + { ArrowRange = + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,26--15,28) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((15,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,4--15,32), + { LeadingKeyword = + StaticMember + (/root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,4--15,10), + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,11--15,17)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (15,4--15,32), + { GetSetKeywords = None })], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,5--15,32), + { LeadingKeyword = + Type + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,0--14,4) + EqualsRange = None + WithKeyword = + Some + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,7--14,11) })], + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (14,0--15,32))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (2,0--15,32), + { LeadingKeyword = + Module + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (2,0--2,6) })], + { ConditionalDirectives = + [If + (Ident "CHECK_LINE0_TYPES", + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (8,0--8,21)); + Else + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (10,0--10,5); + EndIf + /root/SignatureType/TriviaIsPresentInSynTypeDefnSig.fsi (12,0--12,6)] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi b/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi new file mode 100644 index 00000000000..3697be2b8b6 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi @@ -0,0 +1,6 @@ + +module Meh + +[] +// meh +val a : int diff --git a/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi.bsl new file mode 100644 index 00000000000..b3abb80d5f9 --- /dev/null +++ b/tests/service/data/SyntaxTree/SignatureType/ValKeywordIsPresentInSynValSig.fsi.bsl @@ -0,0 +1,43 @@ +SigFile + (ParsedSigFileInput + ("/root/SignatureType/ValKeywordIsPresentInSynValSig.fsi", + QualifiedNameOfFile Meh, [], [], + [SynModuleOrNamespaceSig + ([Meh], false, NamedModule, + [Val + (SynValSig + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (4,2--4,5)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (4,2--4,5) }] + Range = + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (4,0--4,7) }], + SynIdent (a, None), SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (4,0--6,11), + { LeadingKeyword = + Val + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (6,0--6,3) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (4,0--6,11))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (2,0--6,11), + { LeadingKeyword = + Module + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (2,0--2,6) })], + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/SignatureType/ValKeywordIsPresentInSynValSig.fsi (5,0--5,6)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs b/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs new file mode 100644 index 00000000000..ee361209678 --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs @@ -0,0 +1,2 @@ + +__LINE__ diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs.bsl b/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs.bsl new file mode 100644 index 00000000000..fdae2939e13 --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_LINE_.fs.bsl @@ -0,0 +1,16 @@ +ImplFile + (ParsedImplFileInput + ("/root/SourceIdentifier/_LINE_.fs", false, QualifiedNameOfFile _LINE_, [], + [], + [SynModuleOrNamespace + ([_LINE_], false, AnonModule, + [Expr + (Const + (SourceIdentifier + ("__LINE__", "2", /root/SourceIdentifier/_LINE_.fs (2,0--2,8)), + /root/SourceIdentifier/_LINE_.fs (2,0--2,8)), + /root/SourceIdentifier/_LINE_.fs (2,0--2,8))], PreXmlDocEmpty, [], + None, /root/SourceIdentifier/_LINE_.fs (2,0--2,8), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs new file mode 100644 index 00000000000..50cef151847 --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs @@ -0,0 +1,2 @@ + +__SOURCE_DIRECTORY__ diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs.bsl b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs.bsl new file mode 100644 index 00000000000..cff3c8ddb5b --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEDIRECTORY_.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/SourceIdentifier/_SOURCEDIRECTORY_.fs", false, + QualifiedNameOfFile _SOURCEDIRECTORY_, [], [], + [SynModuleOrNamespace + ([_SOURCEDIRECTORY_], false, AnonModule, + [Expr + (Const + (SourceIdentifier + ("__SOURCE_DIRECTORY__", "/root/SourceIdentifier", + /root/SourceIdentifier/_SOURCEDIRECTORY_.fs (0,0--0,0)), + /root/SourceIdentifier/_SOURCEDIRECTORY_.fs (0,0--0,0)), + /root/SourceIdentifier/_SOURCEDIRECTORY_.fs (0,0--0,0))], + PreXmlDocEmpty, [], None, + /root/SourceIdentifier/_SOURCEDIRECTORY_.fs (2,0--2,20), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs new file mode 100644 index 00000000000..a41ea179402 --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs @@ -0,0 +1,2 @@ + +__SOURCE_FILE__ diff --git a/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs.bsl b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs.bsl new file mode 100644 index 00000000000..126d1dd8b56 --- /dev/null +++ b/tests/service/data/SyntaxTree/SourceIdentifier/_SOURCEFILE_.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/SourceIdentifier/_SOURCEFILE_.fs", false, + QualifiedNameOfFile _SOURCEFILE_, [], [], + [SynModuleOrNamespace + ([_SOURCEFILE_], false, AnonModule, + [Expr + (Const + (SourceIdentifier + ("__SOURCE_FILE__", "_SOURCEFILE_.fs", + /root/SourceIdentifier/_SOURCEFILE_.fs (2,0--2,15)), + /root/SourceIdentifier/_SOURCEFILE_.fs (2,0--2,15)), + /root/SourceIdentifier/_SOURCEFILE_.fs (2,0--2,15))], + PreXmlDocEmpty, [], None, + /root/SourceIdentifier/_SOURCEFILE_.fs (2,0--2,15), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs new file mode 100644 index 00000000000..e98eb0ec482 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs @@ -0,0 +1,2 @@ + +let bytes = "yo"B diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl new file mode 100644 index 00000000000..afd05f918ef --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynConstBytesWithSynByteStringKindRegular.fs", false, + QualifiedNameOfFile SynConstBytesWithSynByteStringKindRegular, [], [], + [SynModuleOrNamespace + ([SynConstBytesWithSynByteStringKindRegular], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (bytes, None), false, None, + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,4--2,9)), + None, + Const + (Bytes + ([|121uy; 111uy|], Regular, + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,12--2,17)), + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,12--2,17)), + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,4--2,9), + Yes + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,0--2,17), + { LeadingKeyword = + Let + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,10--2,11) })], + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,0--2,17))], + PreXmlDocEmpty, [], None, + /root/String/SynConstBytesWithSynByteStringKindRegular.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs new file mode 100644 index 00000000000..2caaff3c615 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs @@ -0,0 +1,2 @@ + +let bytes = @"yo"B diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl new file mode 100644 index 00000000000..50d8e81f40a --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynConstBytesWithSynByteStringKindVerbatim.fs", false, + QualifiedNameOfFile SynConstBytesWithSynByteStringKindVerbatim, [], [], + [SynModuleOrNamespace + ([SynConstBytesWithSynByteStringKindVerbatim], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (bytes, None), false, None, + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,4--2,9)), + None, + Const + (Bytes + ([|121uy; 111uy|], Verbatim, + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,12--2,18)), + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,12--2,18)), + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,4--2,9), + Yes + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,0--2,18), + { LeadingKeyword = + Let + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,10--2,11) })], + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,0--2,18))], + PreXmlDocEmpty, [], None, + /root/String/SynConstBytesWithSynByteStringKindVerbatim.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs new file mode 100644 index 00000000000..93e2f90b873 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs @@ -0,0 +1,2 @@ + +let s = "yo" diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl new file mode 100644 index 00000000000..6a24f7335fb --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynConstStringWithSynStringKindRegular.fs", false, + QualifiedNameOfFile SynConstStringWithSynStringKindRegular, [], [], + [SynModuleOrNamespace + ([SynConstStringWithSynStringKindRegular], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynConstStringWithSynStringKindRegular.fs (2,4--2,5)), + None, + Const + (String + ("yo", Regular, + /root/String/SynConstStringWithSynStringKindRegular.fs (2,8--2,12)), + /root/String/SynConstStringWithSynStringKindRegular.fs (2,8--2,12)), + /root/String/SynConstStringWithSynStringKindRegular.fs (2,4--2,5), + Yes + /root/String/SynConstStringWithSynStringKindRegular.fs (2,0--2,12), + { LeadingKeyword = + Let + /root/String/SynConstStringWithSynStringKindRegular.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynConstStringWithSynStringKindRegular.fs (2,6--2,7) })], + /root/String/SynConstStringWithSynStringKindRegular.fs (2,0--2,12))], + PreXmlDocEmpty, [], None, + /root/String/SynConstStringWithSynStringKindRegular.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs new file mode 100644 index 00000000000..975c79e9ab8 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs @@ -0,0 +1,2 @@ + +let s = \"\"\"yo\"\"\" diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl new file mode 100644 index 00000000000..aee5064a8f8 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl @@ -0,0 +1,36 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynConstStringWithSynStringKindTripleQuote.fs", false, + QualifiedNameOfFile SynConstStringWithSynStringKindTripleQuote, [], [], + [SynModuleOrNamespace + ([SynConstStringWithSynStringKindTripleQuote], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,4--2,5)), + None, + ArbitraryAfterError + ("localBinding1", + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,7--2,7)), + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,4--2,5), + Yes + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,4--2,7), + { LeadingKeyword = + Let + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,6--2,7) })], + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,0--2,7))], + PreXmlDocEmpty, [], None, + /root/String/SynConstStringWithSynStringKindTripleQuote.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs new file mode 100644 index 00000000000..ee9523f2993 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs @@ -0,0 +1,2 @@ + +let s = @"yo" diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl new file mode 100644 index 00000000000..8115f93c79a --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynConstStringWithSynStringKindVerbatim.fs", false, + QualifiedNameOfFile SynConstStringWithSynStringKindVerbatim, [], [], + [SynModuleOrNamespace + ([SynConstStringWithSynStringKindVerbatim], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,4--2,5)), + None, + Const + (String + ("yo", Verbatim, + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,8--2,13)), + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,8--2,13)), + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,4--2,5), + Yes + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,0--2,13), + { LeadingKeyword = + Let + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,6--2,7) })], + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,0--2,13))], + PreXmlDocEmpty, [], None, + /root/String/SynConstStringWithSynStringKindVerbatim.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs new file mode 100644 index 00000000000..e00339d81b1 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs @@ -0,0 +1,2 @@ + +let s = $"yo {42}" diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl new file mode 100644 index 00000000000..24165475322 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs", false, + QualifiedNameOfFile SynExprInterpolatedStringWithSynStringKindRegular, [], + [], + [SynModuleOrNamespace + ([SynExprInterpolatedStringWithSynStringKindRegular], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,4--2,5)), + None, + InterpolatedString + ([String + ("yo ", + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,8--2,14)); + FillExpr + (Const + (Int32 42, + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,14--2,16)), + None); + String + ("", + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,16--2,18))], + Regular, + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,8--2,18)), + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,4--2,5), + Yes + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,0--2,18), + { LeadingKeyword = + Let + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,6--2,7) })], + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,0--2,18))], + PreXmlDocEmpty, [], None, + /root/String/SynExprInterpolatedStringWithSynStringKindRegular.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs new file mode 100644 index 00000000000..60190c9337d --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs @@ -0,0 +1,2 @@ + +let s = $\"\"\"yo {42}\"\"\" diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl new file mode 100644 index 00000000000..111a9e64a4a --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl @@ -0,0 +1,39 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs", + false, + QualifiedNameOfFile SynExprInterpolatedStringWithSynStringKindTripleQuote, + [], [], + [SynModuleOrNamespace + ([SynExprInterpolatedStringWithSynStringKindTripleQuote], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,4--2,5)), + None, + ArbitraryAfterError + ("localBinding1", + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,7--2,7)), + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,4--2,5), + Yes + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,4--2,7), + { LeadingKeyword = + Let + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,6--2,7) })], + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,0--2,7))], + PreXmlDocEmpty, [], None, + /root/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs new file mode 100644 index 00000000000..1e8fcd54586 --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs @@ -0,0 +1,2 @@ + +let s = $@"Migrate notes of file ""{oldId}"" to new file ""{newId}""." diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl new file mode 100644 index 00000000000..dbc5c6e913c --- /dev/null +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl @@ -0,0 +1,50 @@ +ImplFile + (ParsedImplFileInput + ("/root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs", + false, + QualifiedNameOfFile SynExprInterpolatedStringWithSynStringKindVerbatim, [], + [], + [SynModuleOrNamespace + ([SynExprInterpolatedStringWithSynStringKindVerbatim], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (s, None), false, None, + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,4--2,5)), + None, + InterpolatedString + ([String + ("Migrate notes of file "", + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,8--2,36)); + FillExpr (Ident oldId, None); + String + ("" to new file "", + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,41--2,60)); + FillExpr (Ident newId, None); + String + ("".", + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,65--2,70))], + Verbatim, + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,8--2,70)), + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,4--2,5), + Yes + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,0--2,70), + { LeadingKeyword = + Let + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,6--2,7) })], + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,0--2,70))], + PreXmlDocEmpty, [], None, + /root/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs b/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs new file mode 100644 index 00000000000..5b420cfa85e --- /dev/null +++ b/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs @@ -0,0 +1,4 @@ + +module Module + +A. diff --git a/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs.bsl b/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs.bsl new file mode 100644 index 00000000000..4909368f748 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynIdent/IncompleteLongIdent.fs.bsl @@ -0,0 +1,20 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynIdent/IncompleteLongIdent.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (LongIdent + (false, + SynLongIdent + ([A], [/root/SynIdent/IncompleteLongIdent.fs (4,1--4,2)], + [None]), None, + /root/SynIdent/IncompleteLongIdent.fs (4,0--4,2)), + /root/SynIdent/IncompleteLongIdent.fs (4,0--4,2))], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + /root/SynIdent/IncompleteLongIdent.fs (2,0--4,2), + { LeadingKeyword = + Module /root/SynIdent/IncompleteLongIdent.fs (2,0--2,6) })], + (true, false), { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs new file mode 100644 index 00000000000..f3b233289bd --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs @@ -0,0 +1,2 @@ + +let inline (!!) (x: ^a * ^b) : ^c = ((^a or ^b or ^c): (static member op_Implicit: ^a * ^b -> ^c) x) diff --git a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl new file mode 100644 index 00000000000..d5e01328b25 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl @@ -0,0 +1,152 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs", false, + QualifiedNameOfFile NestedSynTypeOrInsideSynExprTraitCall, [], [], + [SynModuleOrNamespace + ([NestedSynTypeOrInsideSynExprTraitCall], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some x)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([op_BangBang], [], + [Some + (OriginalNotationWithParen + (/root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,11--2,12), + "!!", + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,14--2,15)))]), + None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (x, None), false, None, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,17--2,18)), + Tuple + (false, + [Type + (Var + (SynTypar (a, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,20--2,22))); + Star + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,23--2,24); + Type + (Var + (SynTypar (b, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,25--2,27)))], + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,20--2,27)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,17--2,27)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,16--2,28))], + None, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,11--2,28)), + Some + (SynBindingReturnInfo + (Var + (SynTypar (c, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,31--2,33)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,31--2,33), + [], + { ColonRange = + Some + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,29--2,30) })), + Typed + (Paren + (TraitCall + (Paren + (Or + (Or + (Var + (SynTypar (a, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,38--2,40)), + Var + (SynTypar (b, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,44--2,46)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,38--2,46), + { OrKeyword = + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,41--2,43) }), + Var + (SynTypar (c, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,50--2,52)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,38--2,52), + { OrKeyword = + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,47--2,49) }), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,37--2,53)), + Member + (SynValSig + ([], SynIdent (op_Implicit, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (Var + (SynTypar (a, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,83--2,85))); + Star + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,86--2,87); + Type + (Var + (SynTypar (b, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,88--2,90)))], + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,83--2,90)), + Var + (SynTypar (c, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,94--2,96)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,83--2,96), + { ArrowRange = + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,91--2,93) }), + SynValInfo + ([[SynArgInfo ([], false, None); + SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((2,56), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,56--2,96), + { LeadingKeyword = + StaticMember + (/root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,56--2,62), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,63--2,69)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,56--2,96), + { GetSetKeywords = None }), Ident x, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,36--2,100)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,36--2,37), + Some + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,99--2,100), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,36--2,100)), + Var + (SynTypar (c, HeadType, false), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,31--2,33)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,36--2,100)), + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,11--2,28), + NoneAtLet, + { LeadingKeyword = + Let + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,0--2,3) + InlineKeyword = + Some + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,4--2,10) + EqualsRange = + Some + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,34--2,35) })], + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,0--2,100))], + PreXmlDocEmpty, [], None, + /root/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs new file mode 100644 index 00000000000..04baf49fda6 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs @@ -0,0 +1,4 @@ + +type X = + static member inline replace< ^a, ^b, ^c when ^b: (static member replace: ^a * ^b -> ^c)>(a: ^a, f: ^b) = + (^b : (static member replace: ^a * ^b -> ^c) (a, f)) diff --git a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl new file mode 100644 index 00000000000..73bf249f376 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl @@ -0,0 +1,230 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynType/SingleSynTypeInsideSynExprTraitCall.fs", false, + QualifiedNameOfFile SingleSynTypeInsideSynExprTraitCall, [], [], + [SynModuleOrNamespace + ([SingleSynTypeInsideSynExprTraitCall], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, Some a); + SynArgInfo ([], false, Some f)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([replace], [], [None]), None, + Some + (SynValTyparDecls + (Some + (PostfixList + ([SynTyparDecl + ([], SynTypar (a, HeadType, false)); + SynTyparDecl + ([], SynTypar (b, HeadType, false)); + SynTyparDecl + ([], SynTypar (c, HeadType, false))], + [WhereTyparSupportsMember + (Var + (SynTypar (b, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,50--3,52)), + Member + (SynValSig + ([], + SynIdent (replace, None), + SynValTyparDecls + (None, true), + Fun + (Tuple + (false, + [Type + (Var + (SynTypar + (a, HeadType, + false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,78--3,80))); + Star + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,81--3,82); + Type + (Var + (SynTypar + (b, HeadType, + false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,83--3,85)))], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,78--3,85)), + Var + (SynTypar + (c, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,89--3,91)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,78--3,91), + { ArrowRange = + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,86--3,88) }), + SynValInfo + ([[SynArgInfo + ([], false, None); + SynArgInfo + ([], false, None)]], + SynArgInfo + ([], false, None)), + false, false, + PreXmlDoc ((3,55), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,55--3,91), + { LeadingKeyword = + StaticMember + (/root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,55--3,61), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,62--3,68)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = + false + IsFinal = false + GetterOrSetterIsCompilerGenerated = + false + MemberKind = Member }, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,55--3,91), + { GetSetKeywords = None }), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,50--3,92))], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,32--3,93))), + false)), + Pats + [Paren + (Tuple + (false, + [Typed + (Named + (SynIdent (a, None), false, None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,94--3,95)), + Var + (SynTypar (a, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,97--3,99)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,94--3,99)); + Typed + (Named + (SynIdent (f, None), false, None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,101--3,102)), + Var + (SynTypar (b, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,104--3,106)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,101--3,106))], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,94--3,106)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,93--3,107))], + None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,25--3,107)), + None, + Paren + (TraitCall + (Var + (SynTypar (b, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,9--4,11)), + Member + (SynValSig + ([], SynIdent (replace, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (Var + (SynTypar + (a, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,38--4,40))); + Star + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,41--4,42); + Type + (Var + (SynTypar + (b, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,43--4,45)))], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,38--4,45)), + Var + (SynTypar (c, HeadType, false), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,49--4,51)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,38--4,51), + { ArrowRange = + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,46--4,48) }), + SynValInfo + ([[SynArgInfo ([], false, None); + SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, + false, + PreXmlDoc ((4,15), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,15--4,51), + { LeadingKeyword = + StaticMember + (/root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,15--4,21), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,22--4,28)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,15--4,51), + { GetSetKeywords = None }), + Paren + (Tuple + (false, [Ident a; Ident f], + [/root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,55--4,56)], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,54--4,58)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,53--4,54), + Some + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,58--4,59), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,53--4,59)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,8--4,60)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,8--4,9), + Some + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,59--4,60), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (4,8--4,60)), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,25--3,107), + NoneAtInvisible, + { LeadingKeyword = + StaticMember + (/root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,4--3,10), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,11--3,17)) + InlineKeyword = + Some + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,18--3,24) + EqualsRange = + Some + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,108--3,109) }), + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,4--4,60))], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (3,4--4,60)), + [], None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,5--4,60), + { LeadingKeyword = + Type + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,0--2,4) + EqualsRange = + Some + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,7--2,8) + WithKeyword = None })], + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,0--4,60))], + PreXmlDocEmpty, [], None, + /root/SynType/SingleSynTypeInsideSynExprTraitCall.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs new file mode 100644 index 00000000000..4eb9a02a38b --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs @@ -0,0 +1,2 @@ + +let inline (!!) (x: ^a) : ^b = ((^a or ^b): (static member op_Implicit: ^a -> ^b) x) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl new file mode 100644 index 00000000000..f639df7aff7 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl @@ -0,0 +1,124 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynType/SynTypeOrInsideSynExprTraitCall.fs", false, + QualifiedNameOfFile SynTypeOrInsideSynExprTraitCall, [], [], + [SynModuleOrNamespace + ([SynTypeOrInsideSynExprTraitCall], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some x)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([op_BangBang], [], + [Some + (OriginalNotationWithParen + (/root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,11--2,12), + "!!", + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,14--2,15)))]), + None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (x, None), false, None, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,17--2,18)), + Var + (SynTypar (a, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,20--2,22)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,17--2,22)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,16--2,23))], + None, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,11--2,23)), + Some + (SynBindingReturnInfo + (Var + (SynTypar (b, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,26--2,28)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,26--2,28), + [], + { ColonRange = + Some + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,24--2,25) })), + Typed + (Paren + (TraitCall + (Paren + (Or + (Var + (SynTypar (a, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,33--2,35)), + Var + (SynTypar (b, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,39--2,41)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,33--2,41), + { OrKeyword = + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,36--2,38) }), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,32--2,42)), + Member + (SynValSig + ([], SynIdent (op_Implicit, None), + SynValTyparDecls (None, true), + Fun + (Var + (SynTypar (a, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,72--2,74)), + Var + (SynTypar (b, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,78--2,80)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,72--2,80), + { ArrowRange = + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,75--2,77) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((2,45), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,45--2,80), + { LeadingKeyword = + StaticMember + (/root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,45--2,51), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,52--2,58)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,45--2,80), + { GetSetKeywords = None }), Ident x, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,31--2,84)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,31--2,32), + Some + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,83--2,84), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,31--2,84)), + Var + (SynTypar (b, HeadType, false), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,26--2,28)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,31--2,84)), + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,11--2,23), + NoneAtLet, + { LeadingKeyword = + Let + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,0--2,3) + InlineKeyword = + Some + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,4--2,10) + EqualsRange = + Some + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,29--2,30) })], + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,0--2,84))], + PreXmlDocEmpty, [], None, + /root/SynType/SynTypeOrInsideSynExprTraitCall.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs new file mode 100644 index 00000000000..efd95432f88 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs @@ -0,0 +1,3 @@ + +let inline f_StaticMethod<'T1, 'T2 when ('T1 or 'T2) : (static member StaticMethod: int -> int) >() : int = + () diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl new file mode 100644 index 00000000000..e71b4015362 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl @@ -0,0 +1,116 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs", + false, + QualifiedNameOfFile + SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember, [], [], + [SynModuleOrNamespace + ([SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember], false, + AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([f_StaticMethod], [], [None]), None, + Some + (SynValTyparDecls + (Some + (PostfixList + ([SynTyparDecl ([], SynTypar (T1, None, false)); + SynTyparDecl ([], SynTypar (T2, None, false))], + [WhereTyparSupportsMember + (Paren + (Or + (Var + (SynTypar (T1, None, false), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,41--2,44)), + Var + (SynTypar (T2, None, false), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,48--2,51)), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,41--2,51), + { OrKeyword = + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,45--2,47) }), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,40--2,52)), + Member + (SynValSig + ([], SynIdent (StaticMethod, None), + SynValTyparDecls (None, true), + Fun + (LongIdent + (SynLongIdent + ([int], [], [None])), + LongIdent + (SynLongIdent + ([int], [], [None])), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,84--2,94), + { ArrowRange = + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,88--2,90) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((2,56), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,56--2,94), + { LeadingKeyword = + StaticMember + (/root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,56--2,62), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,63--2,69)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = + false + MemberKind = Member }, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,56--2,94), + { GetSetKeywords = None }), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,40--2,95))], + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,25--2,97))), + false)), + Pats + [Paren + (Const + (Unit, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,97--2,99)), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,97--2,99))], + None, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,11--2,99)), + Some + (SynBindingReturnInfo + (LongIdent (SynLongIdent ([int], [], [None])), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,102--2,105), + [], + { ColonRange = + Some + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,100--2,101) })), + Typed + (Const + (Unit, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (3,4--3,6)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (3,4--3,6)), + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,11--2,99), + NoneAtLet, + { LeadingKeyword = + Let + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,0--2,3) + InlineKeyword = + Some + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,4--2,10) + EqualsRange = + Some + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,106--2,107) })], + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,0--3,6))], + PreXmlDocEmpty, [], None, + /root/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs new file mode 100644 index 00000000000..e7c06dfdb81 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs @@ -0,0 +1,2 @@ + +let inline f (x: 'T) = ((^T or int) : (static member A: int) ()) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl new file mode 100644 index 00000000000..4e7d042dd0d --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl @@ -0,0 +1,94 @@ +ImplFile + (ParsedImplFileInput + ("/root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs", false, + QualifiedNameOfFile SynTypeOrWithAppTypeOnTheRightHandSide, [], [], + [SynModuleOrNamespace + ([SynTypeOrWithAppTypeOnTheRightHandSide], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, true, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([[SynArgInfo ([], false, Some x)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([f], [], [None]), None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (x, None), false, None, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,14--2,15)), + Var + (SynTypar (T, None, false), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,17--2,19)), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,14--2,19)), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,13--2,20))], + None, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,11--2,20)), + None, + Paren + (TraitCall + (Paren + (Or + (Var + (SynTypar (T, HeadType, false), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,25--2,27)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,25--2,34), + { OrKeyword = + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,28--2,30) }), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,24--2,35)), + Member + (SynValSig + ([], SynIdent (A, None), + SynValTyparDecls (None, true), + LongIdent (SynLongIdent ([int], [], [None])), + SynValInfo ([], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((2,39), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,39--2,59), + { LeadingKeyword = + StaticMember + (/root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,39--2,45), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,46--2,52)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = false + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,39--2,59), + { GetSetKeywords = None }), + Const + (Unit, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,61--2,63)), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,23--2,64)), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,23--2,24), + Some + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,63--2,64), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,23--2,64)), + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,11--2,20), + NoneAtLet, + { LeadingKeyword = + Let + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,0--2,3) + InlineKeyword = + Some + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,4--2,10) + EqualsRange = + Some + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,21--2,22) })], + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,0--2,64))], + PreXmlDocEmpty, [], None, + /root/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi new file mode 100644 index 00000000000..8e3aca95f03 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi @@ -0,0 +1,3 @@ + +type T = + member M: [] a * [] b -> int diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl new file mode 100644 index 00000000000..55edda4d425 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl @@ -0,0 +1,136 @@ +SigFile + (ParsedSigFileInput + ("/root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi", + QualifiedNameOfFile SynTypeTupleDoesIncludeLeadingParameterAttributes, [], + [], + [SynModuleOrNamespaceSig + ([SynTypeTupleDoesIncludeLeadingParameterAttributes], false, AnonModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [T], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (M, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (SignatureParameter + ([{ Attributes = + [{ TypeName = + SynLongIdent + ([SomeAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,16--3,29)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,16--3,29) }] + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,14--3,31) }], + false, None, + LongIdent + (SynLongIdent ([a], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,14--3,33))); + Star + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,34--3,35); + Type + (SignatureParameter + ([{ Attributes = + [{ TypeName = + SynLongIdent + ([OtherAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,38--3,52)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,38--3,52) }] + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,36--3,54) }], + false, None, + LongIdent + (SynLongIdent ([b], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,36--3,56)))], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,14--3,56)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,14--3,63), + { ArrowRange = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,57--3,59) }), + SynValInfo + ([[SynArgInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent + ([SomeAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,16--3,29)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,16--3,29) }] + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,14--3,31) }], + false, None); + SynArgInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent + ([OtherAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,38--3,52)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,38--3,52) }] + Range = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,36--3,54) }], + false, None)]], SynArgInfo ([], false, None)), + false, false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,4--3,63), + { LeadingKeyword = + Member + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,4--3,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,4--3,63), + { GetSetKeywords = None })], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (3,4--3,63)), + [], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,5--3,63), + { LeadingKeyword = + Type + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,0--2,4) + EqualsRange = + Some + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,7--2,8) + WithKeyword = None })], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,0--3,63))], + PreXmlDocEmpty, [], None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi (2,0--4,0), + { LeadingKeyword = None })], { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi new file mode 100644 index 00000000000..34af7706b1a --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi @@ -0,0 +1,3 @@ + +type T = + member M: p1: a * p2: b -> int diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl new file mode 100644 index 00000000000..59878664c62 --- /dev/null +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl @@ -0,0 +1,77 @@ +SigFile + (ParsedSigFileInput + ("/root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi", + QualifiedNameOfFile SynTypeTupleDoesIncludeLeadingParameterName, [], [], + [SynModuleOrNamespaceSig + ([SynTypeTupleDoesIncludeLeadingParameterName], false, AnonModule, + [Types + ([SynTypeDefnSig + (SynComponentInfo + ([], None, [], [T], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,5--2,6)), + ObjectModel + (Unspecified, + [Member + (SynValSig + ([], SynIdent (M, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (SignatureParameter + ([], false, Some p1, + LongIdent + (SynLongIdent ([a], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,14--3,19))); + Star + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,20--3,21); + Type + (SignatureParameter + ([], false, Some p2, + LongIdent + (SynLongIdent ([b], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,22--3,27)))], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,14--3,27)), + LongIdent (SynLongIdent ([int], [], [None])), + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,14--3,34), + { ArrowRange = + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,28--3,30) }), + SynValInfo + ([[SynArgInfo ([], false, Some p1); + SynArgInfo ([], false, Some p2)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,4--3,34), + { LeadingKeyword = + Member + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,4--3,10) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,4--3,34), + { GetSetKeywords = None })], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (3,4--3,34)), + [], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,5--3,34), + { LeadingKeyword = + Type + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,0--2,4) + EqualsRange = + Some + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,7--2,8) + WithKeyword = None })], + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,0--3,34))], + PreXmlDocEmpty, [], None, + /root/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi (2,0--4,0), + { LeadingKeyword = None })], { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs new file mode 100644 index 00000000000..087fac654cb --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs @@ -0,0 +1,3 @@ + +type X = + abstract member Y: [] ?a: A -> B diff --git a/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl new file mode 100644 index 00000000000..9b5e7784c36 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl @@ -0,0 +1,112 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/AttributesInOptionalNamedMemberParameter.fs", false, + QualifiedNameOfFile AttributesInOptionalNamedMemberParameter, [], [], + [SynModuleOrNamespace + ([AttributesInOptionalNamedMemberParameter], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [AbstractSlot + (SynValSig + ([], SynIdent (Y, None), + SynValTyparDecls (None, true), + Fun + (SignatureParameter + ([{ Attributes = + [{ TypeName = + SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,25--3,28)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,25--3,28) }; + { TypeName = + SynLongIdent ([Bar], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,30--3,33)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,30--3,33) }] + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,23--3,35) }], + true, Some a, + LongIdent (SynLongIdent ([A], [], [None])), + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,23--3,41)), + LongIdent (SynLongIdent ([B], [], [None])), + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,23--3,46), + { ArrowRange = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,42--3,44) }), + SynValInfo + ([[SynArgInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,25--3,28)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,25--3,28) }; + { TypeName = + SynLongIdent ([Bar], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,30--3,33)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,30--3,33) }] + Range = + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,23--3,35) }], + true, Some a)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, None, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,4--3,46), + { LeadingKeyword = + AbstractMember + (/root/Type/AttributesInOptionalNamedMemberParameter.fs (3,4--3,12), + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,13--3,19)) + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,4--3,46), + { GetSetKeywords = None })], + /root/Type/AttributesInOptionalNamedMemberParameter.fs (3,4--3,46)), + [], None, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,5--3,46), + { LeadingKeyword = + Type + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,7--2,8) + WithKeyword = None })], + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,0--3,46))], + PreXmlDocEmpty, [], None, + /root/Type/AttributesInOptionalNamedMemberParameter.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs new file mode 100644 index 00000000000..85c93330b9c --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs @@ -0,0 +1,4 @@ + +type Foo = + | One = 0x00000001 + | Two = 2 diff --git a/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl new file mode 100644 index 00000000000..ceb9817585d --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl @@ -0,0 +1,56 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs", false, + QualifiedNameOfFile MultipleSynEnumCaseContainsRangeOfConstant, [], [], + [SynModuleOrNamespace + ([MultipleSynEnumCaseContainsRangeOfConstant], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,5--2,8)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (One, None), + Const + (Int32 1, + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,13--3,23)), + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,6--3,23), + { BarRange = + Some + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,4--3,5) + EqualsRange = + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,10--3,11) }); + SynEnumCase + ([], SynIdent (Two, None), + Const + (Int32 2, + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (4,12--4,13)), + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (4,6--4,13), + { BarRange = + Some + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (4,4--4,5) + EqualsRange = + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (4,10--4,11) })], + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,4--4,13)), + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (3,4--4,13)), + [], None, + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,5--4,13), + { LeadingKeyword = + Type + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,9--2,10) + WithKeyword = None })], + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,0--4,13))], + PreXmlDocEmpty, [], None, + /root/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs new file mode 100644 index 00000000000..4f5edfc04ed --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs @@ -0,0 +1,2 @@ + +type Foo = delegate of a: A * b: B -> c:C -> D diff --git a/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl new file mode 100644 index 00000000000..080321c49c9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl @@ -0,0 +1,116 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/NamedParametersInDelegateType.fs", false, + QualifiedNameOfFile NamedParametersInDelegateType, [], [], + [SynModuleOrNamespace + ([NamedParametersInDelegateType], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/NamedParametersInDelegateType.fs (2,5--2,8)), + ObjectModel + (Delegate + (Fun + (Tuple + (false, + [Type + (SignatureParameter + ([], false, Some a, + LongIdent (SynLongIdent ([A], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,23--2,27))); + Star + /root/Type/NamedParametersInDelegateType.fs (2,28--2,29); + Type + (SignatureParameter + ([], false, Some b, + LongIdent (SynLongIdent ([B], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,30--2,34)))], + /root/Type/NamedParametersInDelegateType.fs (2,23--2,34)), + Fun + (SignatureParameter + ([], false, Some c, + LongIdent (SynLongIdent ([C], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,38--2,41)), + LongIdent (SynLongIdent ([D], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,38--2,46), + { ArrowRange = + /root/Type/NamedParametersInDelegateType.fs (2,42--2,44) }), + /root/Type/NamedParametersInDelegateType.fs (2,23--2,46), + { ArrowRange = + /root/Type/NamedParametersInDelegateType.fs (2,35--2,37) }), + SynValInfo + ([[SynArgInfo ([], false, Some a); + SynArgInfo ([], false, Some b)]; + [SynArgInfo ([], false, Some c)]], + SynArgInfo ([], false, None))), + [AbstractSlot + (SynValSig + ([], SynIdent (Invoke, None), + SynValTyparDecls (None, true), + Fun + (Tuple + (false, + [Type + (SignatureParameter + ([], false, Some a, + LongIdent + (SynLongIdent ([A], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,23--2,27))); + Star + /root/Type/NamedParametersInDelegateType.fs (2,28--2,29); + Type + (SignatureParameter + ([], false, Some b, + LongIdent + (SynLongIdent ([B], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,30--2,34)))], + /root/Type/NamedParametersInDelegateType.fs (2,23--2,34)), + Fun + (SignatureParameter + ([], false, Some c, + LongIdent (SynLongIdent ([C], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,38--2,41)), + LongIdent (SynLongIdent ([D], [], [None])), + /root/Type/NamedParametersInDelegateType.fs (2,38--2,46), + { ArrowRange = + /root/Type/NamedParametersInDelegateType.fs (2,42--2,44) }), + /root/Type/NamedParametersInDelegateType.fs (2,23--2,46), + { ArrowRange = + /root/Type/NamedParametersInDelegateType.fs (2,35--2,37) }), + SynValInfo + ([[SynArgInfo ([], false, Some a); + SynArgInfo ([], false, Some b)]; + [SynArgInfo ([], false, Some c)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDocEmpty, None, None, + /root/Type/NamedParametersInDelegateType.fs (2,11--2,46), + { LeadingKeyword = Synthetic + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/Type/NamedParametersInDelegateType.fs (2,11--2,46), + { GetSetKeywords = None })], + /root/Type/NamedParametersInDelegateType.fs (2,11--2,46)), + [], None, + /root/Type/NamedParametersInDelegateType.fs (2,5--2,46), + { LeadingKeyword = + Type /root/Type/NamedParametersInDelegateType.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/NamedParametersInDelegateType.fs (2,9--2,10) + WithKeyword = None })], + /root/Type/NamedParametersInDelegateType.fs (2,0--2,46))], + PreXmlDocEmpty, [], None, + /root/Type/NamedParametersInDelegateType.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs b/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs new file mode 100644 index 00000000000..a5106c09823 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs @@ -0,0 +1,5 @@ + +type A = + static type B = + class + end diff --git a/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs.bsl new file mode 100644 index 00000000000..36e1ebd9acf --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs.bsl @@ -0,0 +1,52 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs", false, + QualifiedNameOfFile NestedTypeHasStaticTypeAsLeadingKeyword, [], [], + [SynModuleOrNamespace + ([NestedTypeHasStaticTypeAsLeadingKeyword], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,5--2,6)), + ObjectModel + (Unspecified, + [NestedType + (SynTypeDefn + (SynComponentInfo + ([], None, [], [B], + PreXmlDoc ((3,16), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,16--3,17)), + ObjectModel + (Class, [], + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (4,20--5,23)), + [], None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,16--5,23), + { LeadingKeyword = + StaticType + (/root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,4--3,10), + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,11--3,15)) + EqualsRange = + Some + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,18--3,19) + WithKeyword = None }), None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,4--6,0))], + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (3,4--6,0)), + [], None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,5--6,0), + { LeadingKeyword = + Type + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,7--2,8) + WithKeyword = None })], + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,0--6,0))], + PreXmlDocEmpty, [], None, + /root/Type/NestedTypeHasStaticTypeAsLeadingKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs new file mode 100644 index 00000000000..7a83c9e4e88 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs @@ -0,0 +1,5 @@ + +[] +type Bar = + class + end diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl new file mode 100644 index 00000000000..d87e47627e8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl @@ -0,0 +1,43 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs", false, + QualifiedNameOfFile RangeOfAttributeShouldBeIncludedInSynTypeDefn, [], [], + [SynModuleOrNamespace + ([RangeOfAttributeShouldBeIncludedInSynTypeDefn], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([Foo], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,2--2,5)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,2--2,5) }] + Range = + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,0--2,7) }], + None, [], [Bar], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (3,5--3,8)), + ObjectModel + (Class, [], + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (4,4--5,7)), + [], None, + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,0--5,7), + { LeadingKeyword = + Type + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (3,0--3,4) + EqualsRange = + Some + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (3,9--3,10) + WithKeyword = None })], + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,0--5,7))], + PreXmlDocEmpty, [], None, + /root/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs new file mode 100644 index 00000000000..a5696624543 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs @@ -0,0 +1,10 @@ + +[] +type Foo<'context, 'a> = + | Apply of ApplyCrate<'context, 'a> + +and [] Bar<'context, 'a> = + internal { + Hash : int + Foo : Foo<'a, 'b> + } diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl new file mode 100644 index 00000000000..ade3f244e75 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl @@ -0,0 +1,170 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs", false, + QualifiedNameOfFile RangeOfAttributesShouldBeIncludedInRecursiveTypes, [], + [], + [SynModuleOrNamespace + ([RangeOfAttributesShouldBeIncludedInRecursiveTypes], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([NoEquality], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,2--2,12)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,2--2,12) }; + { TypeName = SynLongIdent ([NoComparison], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,15--2,27)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,15--2,27) }] + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,0--2,29) }], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (context, None, false)); + SynTyparDecl ([], SynTypar (a, None, false))], [], + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (3,8--3,22))), + [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (3,5--3,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Apply, None), + Fields + [SynField + ([], false, None, + App + (LongIdent + (SynLongIdent ([ApplyCrate], [], [None])), + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,25--4,26), + [Var + (SynTypar (context, None, false), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,26--4,34)); + Var + (SynTypar (a, None, false), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,36--4,38))], + [/root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,34--4,35)], + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,38--4,39), + false, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,15--4,39)), + false, + PreXmlDoc ((4,15), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,15--4,39), + { LeadingKeyword = None })], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,6--4,39), + { BarRange = + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,4--4,5) })], + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,4--4,39)), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (4,4--4,39)), + [], None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,0--4,39), + { LeadingKeyword = + Type + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (3,0--3,4) + EqualsRange = + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (3,23--3,24) + WithKeyword = None }); + SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = + SynLongIdent ([CustomEquality], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,6--6,20)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,6--6,20) }; + { TypeName = SynLongIdent ([NoComparison], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,23--6,35)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,23--6,35) }] + Range = + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,4--6,37) }], + Some + (PostfixList + ([SynTyparDecl ([], SynTypar (context, None, false)); + SynTyparDecl ([], SynTypar (a, None, false))], [], + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,41--6,55))), + [], [Bar], + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + true, None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,38--6,41)), + Simple + (Record + (Some + (Internal + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (7,4--7,12)), + [SynField + ([], false, Some Hash, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((8,8), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (8,8--8,18), + { LeadingKeyword = None }); + SynField + ([], false, Some Foo, + App + (LongIdent (SynLongIdent ([Foo], [], [None])), + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,17--9,18), + [Var + (SynTypar (a, None, false), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,18--9,20)); + Var + (SynTypar (b, None, false), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,22--9,24))], + [/root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,20--9,21)], + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,24--9,25), + false, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,14--9,25)), + false, + PreXmlDoc ((9,8), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (9,8--9,25), + { LeadingKeyword = None })], + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (7,4--10,5)), + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (7,4--10,5)), + [], None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,4--10,5), + { LeadingKeyword = + And + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,0--6,3) + EqualsRange = + Some + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (6,56--6,57) + WithKeyword = None })], + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,0--10,5))], + PreXmlDocEmpty, [], None, + /root/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs (2,0--11,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs new file mode 100644 index 00000000000..c42d58d2017 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs @@ -0,0 +1,2 @@ + +type Foo = One = 0x00000001 diff --git a/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl new file mode 100644 index 00000000000..10659885ffd --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl @@ -0,0 +1,42 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs", false, + QualifiedNameOfFile SingleSynEnumCaseContainsRangeOfConstant, [], [], + [SynModuleOrNamespace + ([SingleSynEnumCaseContainsRangeOfConstant], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,5--2,8)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (One, None), + Const + (Int32 1, + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,17--2,27)), + PreXmlDoc ((2,11), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,11--2,27), + { BarRange = None + EqualsRange = + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,15--2,16) })], + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,11--2,27)), + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,11--2,27)), + [], None, + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,5--2,27), + { LeadingKeyword = + Type + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,9--2,10) + WithKeyword = None })], + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,0--2,27))], + PreXmlDocEmpty, [], None, + /root/Type/SingleSynEnumCaseContainsRangeOfConstant.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..c1eab544062 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,5 @@ + +type Foo() = + interface Bar with + member Meh () = () + interface Other diff --git a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..b3d689aaa15 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,104 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None }); + Interface + (LongIdent (SynLongIdent ([Bar], [], [None])), + Some + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (3,18--3,22), + Some + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = + false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([Meh], [], [None]), None, + None, + Pats + [Paren + (Const + (Unit, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,19--4,21)), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,19--4,21))], + None, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,15--4,21)), + None, + Const + (Unit, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,24--4,26)), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,15--4,21), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,8--4,14) + InlineKeyword = None + EqualsRange = + Some + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,22--4,23) }), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (4,8--4,26))], + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (3,4--4,26)); + Interface + (LongIdent (SynLongIdent ([Other], [], [None])), None, + None, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (5,4--5,19))], + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (3,4--5,19)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,8--2,10)), + None, + PreXmlDoc ((2,8), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,5--2,8), + { AsKeyword = None })), + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,5--5,19), + { LeadingKeyword = + Type + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,11--2,12) + WithKeyword = None })], + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,0--5,19))], + PreXmlDocEmpty, [], None, + /root/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs new file mode 100644 index 00000000000..8460f0b09dd --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs @@ -0,0 +1,4 @@ + +[] +// noDoc +type A = B diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl new file mode 100644 index 00000000000..b473f2f7277 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl @@ -0,0 +1,51 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([{ Attributes = + [{ TypeName = SynLongIdent ([MyAttribute], [], [None]) + ArgExpr = + Const + (Unit, + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,2--2,13)) + Target = None + AppliesToGetterAndSetter = false + Range = + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,2--2,13) }] + Range = + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,0--2,15) }], + None, [], [A], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (4,5--4,6)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([B], [], [None])), + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (4,9--4,10)), + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (4,9--4,10)), + [], None, + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,0--4,10), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (4,0--4,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (4,7--4,8) + WithKeyword = None })], + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,0--4,10))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs (3,0--3,8)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..78032bb2e4f --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,3 @@ + +type Int32 with + member _.Zero = 0 diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..8e32e4da7c4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,68 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Int32], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,5--2,10)), + ObjectModel + (Augmentation + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,11--2,15), + [], + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,5--3,21)), + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([_; Zero], + [/root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,12--3,13)], + [None; None]), None, None, Pats [], None, + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,11--3,17)), + None, + Const + (Int32 0, + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,20--3,21)), + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,11--3,17), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,4--3,10) + InlineKeyword = None + EqualsRange = + Some + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,18--3,19) }), + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (3,4--3,21))], + None, + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,5--3,21), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = None + WithKeyword = None })], + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,0--3,21))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..8cccdc4ae94 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,4 @@ + +type Bear = + | BlackBear = 1 + | PolarBear = 2 diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..90dba14f089 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs", false, + QualifiedNameOfFile SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign, [], + [], + [SynModuleOrNamespace + ([SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Bear], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,5--2,9)), + Simple + (Enum + ([SynEnumCase + ([], SynIdent (BlackBear, None), + Const + (Int32 1, + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,18--3,19)), + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,6--3,19), + { BarRange = + Some + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,4--3,5) + EqualsRange = + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,16--3,17) }); + SynEnumCase + ([], SynIdent (PolarBear, None), + Const + (Int32 2, + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (4,18--4,19)), + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (4,6--4,19), + { BarRange = + Some + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (4,4--4,5) + EqualsRange = + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (4,16--4,17) })], + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,4--4,19)), + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (3,4--4,19)), + [], None, + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,5--4,19), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,10--2,11) + WithKeyword = None })], + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,0--4,19))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..9adae91b8b7 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,4 @@ + +type Foobar () = + class + end diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..ea694f862e8 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,53 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign, [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foobar], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,5--2,11)), + ObjectModel + (Class, + [ImplicitCtor + (None, [], + SimplePats + ([], + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,12--2,14)), + None, + PreXmlDoc ((2,12), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,5--2,11), + { AsKeyword = None })], + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (3,4--4,7)), + [], + Some + (ImplicitCtor + (None, [], + SimplePats + ([], + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,12--2,14)), + None, + PreXmlDoc ((2,12), FSharp.Compiler.Xml.XmlDocCollector), + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,5--2,11), + { AsKeyword = None })), + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,5--4,7), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,15--2,16) + WithKeyword = None })], + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,0--4,7))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithObjectModelClassContainsTheRangeOfTheEqualsSign.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..41e20304b92 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,2 @@ + +type X = delegate of string -> string diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..a958c6315a9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,71 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs", + false, + QualifiedNameOfFile + SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign, [], + [], + [SynModuleOrNamespace + ([SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign], + false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,5--2,6)), + ObjectModel + (Delegate + (Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,21--2,37), + { ArrowRange = + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,28--2,30) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None))), + [AbstractSlot + (SynValSig + ([], SynIdent (Invoke, None), + SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([string], [], [None])), + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,21--2,37), + { ArrowRange = + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,28--2,30) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), false, false, + PreXmlDocEmpty, None, None, + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,9--2,37), + { LeadingKeyword = Synthetic + InlineKeyword = None + WithKeyword = None + EqualsRange = None }), + { IsInstance = true + IsDispatchSlot = true + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,9--2,37), + { GetSetKeywords = None })], + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,9--2,37)), + [], None, + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,5--2,37), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,7--2,8) + WithKeyword = None })], + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,0--2,37))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs new file mode 100644 index 00000000000..042587d3a06 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs @@ -0,0 +1,5 @@ + +type Foo = + { Bar : int } + with + member this.Meh (v:int) = this.Bar + v diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl new file mode 100644 index 00000000000..d9da3c99c50 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl @@ -0,0 +1,108 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs", + false, + QualifiedNameOfFile SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword, + [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,5--2,8)), + Simple + (Record + (None, + [SynField + ([], false, Some Bar, + LongIdent (SynLongIdent ([int], [], [None])), false, + PreXmlDoc ((3,6), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (3,6--3,15), + { LeadingKeyword = None })], + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (3,4--3,17)), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (3,4--3,17)), + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,8), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some v)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([this; Meh], + [/root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,19--5,20)], + [None; None]), None, None, + Pats + [Paren + (Typed + (Named + (SynIdent (v, None), false, None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,25--5,26)), + LongIdent + (SynLongIdent ([int], [], [None])), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,25--5,30)), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,24--5,31))], + None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,15--5,31)), + None, + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,43--5,44)), + LongIdent + (false, + SynLongIdent + ([this; Bar], + [/root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,38--5,39)], + [None; None]), None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,34--5,42)), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,34--5,44)), + Ident v, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,34--5,46)), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,15--5,31), + NoneAtInvisible, + { LeadingKeyword = + Member + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,8--5,14) + InlineKeyword = None + EqualsRange = + Some + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,32--5,33) }), + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (5,8--5,46))], + None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,5--5,46), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,9--2,10) + WithKeyword = + Some + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (4,4--4,8) })], + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,0--5,46))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs (2,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs new file mode 100644 index 00000000000..91a02ddff40 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs @@ -0,0 +1,4 @@ + +type Shape = + | Square of int + | Rectangle of int * int diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl new file mode 100644 index 00000000000..63c551513b7 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl @@ -0,0 +1,77 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs", false, + QualifiedNameOfFile SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign, + [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Shape], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,5--2,10)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Square, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((3,16), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (3,16--3,19), + { LeadingKeyword = None })], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (3,6--3,19), + { BarRange = + Some + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (3,4--3,5) }); + SynUnionCase + ([], SynIdent (Rectangle, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((4,19), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (4,19--4,22), + { LeadingKeyword = None }); + SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((4,25), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (4,25--4,28), + { LeadingKeyword = None })], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (4,6--4,28), + { BarRange = + Some + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (4,4--4,5) })], + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (3,4--4,28)), + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (3,4--4,28)), + [], None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,5--4,28), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,0--2,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,11--2,12) + WithKeyword = None })], + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,0--4,28))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs new file mode 100644 index 00000000000..ef876e38bdb --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs @@ -0,0 +1,5 @@ + +/// Doc +// noDoc +type A = B +and C = D diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl new file mode 100644 index 00000000000..9083cbe4a54 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl @@ -0,0 +1,59 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs", + false, + QualifiedNameOfFile SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword, + [], [], + [SynModuleOrNamespace + ([SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword], false, + AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [A], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,5--4,6)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([B], [], [None])), + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,9--4,10)), + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,9--4,10)), + [], None, + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (2,0--4,10), + { LeadingKeyword = + Type + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,0--4,4) + EqualsRange = + Some + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,7--4,8) + WithKeyword = None }); + SynTypeDefn + (SynComponentInfo + ([], None, [], [C], + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,4--5,5)), + Simple + (TypeAbbrev + (Ok, LongIdent (SynLongIdent ([D], [], [None])), + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,8--5,9)), + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,8--5,9)), + [], None, + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,4--5,9), + { LeadingKeyword = + And + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,0--5,3) + EqualsRange = + Some + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (5,6--5,7) + WithKeyword = None })], + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (2,0--5,9))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (4,0--6,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment + /root/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs (3,0--3,8)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs new file mode 100644 index 00000000000..92b6fe0f85b --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs @@ -0,0 +1,3 @@ + +type X = string -> // after a tuple, mixed needs an indent + int diff --git a/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl new file mode 100644 index 00000000000..1190681063d --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeFunHasRangeOfArrow.fs", false, + QualifiedNameOfFile SynTypeFunHasRangeOfArrow, [], [], + [SynModuleOrNamespace + ([SynTypeFunHasRangeOfArrow], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,5--2,6)), + Simple + (TypeAbbrev + (Ok, + Fun + (LongIdent (SynLongIdent ([string], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,9--3,20), + { ArrowRange = + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,16--2,18) }), + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,9--3,20)), + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,9--3,20)), [], + None, /root/Type/SynTypeFunHasRangeOfArrow.fs (2,5--3,20), + { LeadingKeyword = + Type /root/Type/SynTypeFunHasRangeOfArrow.fs (2,0--2,4) + EqualsRange = + Some /root/Type/SynTypeFunHasRangeOfArrow.fs (2,7--2,8) + WithKeyword = None })], + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,0--3,20))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeFunHasRangeOfArrow.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = + [LineComment /root/Type/SynTypeFunHasRangeOfArrow.fs (2,19--2,59)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs new file mode 100644 index 00000000000..57da7704318 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs @@ -0,0 +1,2 @@ + +let _: struct (int * int) = () diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl new file mode 100644 index 00000000000..056a5f66457 --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeTupleWithStruct.fs", false, + QualifiedNameOfFile SynTypeTupleWithStruct, [], [], + [SynModuleOrNamespace + ([SynTypeTupleWithStruct], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Wild /root/Type/SynTypeTupleWithStruct.fs (2,4--2,5), + Some + (SynBindingReturnInfo + (Tuple + (true, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Type/SynTypeTupleWithStruct.fs (2,19--2,20); + Type (LongIdent (SynLongIdent ([int], [], [None])))], + /root/Type/SynTypeTupleWithStruct.fs (2,7--2,25)), + /root/Type/SynTypeTupleWithStruct.fs (2,7--2,25), [], + { ColonRange = + Some /root/Type/SynTypeTupleWithStruct.fs (2,5--2,6) })), + Typed + (Const + (Unit, /root/Type/SynTypeTupleWithStruct.fs (2,28--2,30)), + Tuple + (true, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star /root/Type/SynTypeTupleWithStruct.fs (2,19--2,20); + Type (LongIdent (SynLongIdent ([int], [], [None])))], + /root/Type/SynTypeTupleWithStruct.fs (2,7--2,25)), + /root/Type/SynTypeTupleWithStruct.fs (2,28--2,30)), + /root/Type/SynTypeTupleWithStruct.fs (2,4--2,5), + Yes /root/Type/SynTypeTupleWithStruct.fs (2,0--2,30), + { LeadingKeyword = + Let /root/Type/SynTypeTupleWithStruct.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some /root/Type/SynTypeTupleWithStruct.fs (2,26--2,27) })], + /root/Type/SynTypeTupleWithStruct.fs (2,0--2,30))], PreXmlDocEmpty, + [], None, /root/Type/SynTypeTupleWithStruct.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs new file mode 100644 index 00000000000..741c7f33fef --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs @@ -0,0 +1,2 @@ + +let _: struct (int * int = () diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl new file mode 100644 index 00000000000..369912a054f --- /dev/null +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl @@ -0,0 +1,54 @@ +ImplFile + (ParsedImplFileInput + ("/root/Type/SynTypeTupleWithStructRecovery.fs", false, + QualifiedNameOfFile SynTypeTupleWithStructRecovery, [], [], + [SynModuleOrNamespace + ([SynTypeTupleWithStructRecovery], false, AnonModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Wild /root/Type/SynTypeTupleWithStructRecovery.fs (2,4--2,5), + Some + (SynBindingReturnInfo + (Tuple + (true, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Type/SynTypeTupleWithStructRecovery.fs (2,19--2,20); + Type (LongIdent (SynLongIdent ([int], [], [None])))], + /root/Type/SynTypeTupleWithStructRecovery.fs (2,7--2,24)), + /root/Type/SynTypeTupleWithStructRecovery.fs (2,7--2,26), + [], + { ColonRange = + Some + /root/Type/SynTypeTupleWithStructRecovery.fs (2,5--2,6) })), + Typed + (Const + (Unit, + /root/Type/SynTypeTupleWithStructRecovery.fs (2,27--2,29)), + Tuple + (true, + [Type (LongIdent (SynLongIdent ([int], [], [None]))); + Star + /root/Type/SynTypeTupleWithStructRecovery.fs (2,19--2,20); + Type (LongIdent (SynLongIdent ([int], [], [None])))], + /root/Type/SynTypeTupleWithStructRecovery.fs (2,7--2,24)), + /root/Type/SynTypeTupleWithStructRecovery.fs (2,27--2,29)), + /root/Type/SynTypeTupleWithStructRecovery.fs (2,4--2,5), + Yes /root/Type/SynTypeTupleWithStructRecovery.fs (2,0--2,29), + { LeadingKeyword = + Let /root/Type/SynTypeTupleWithStructRecovery.fs (2,0--2,3) + InlineKeyword = None + EqualsRange = + Some + /root/Type/SynTypeTupleWithStructRecovery.fs (2,25--2,26) })], + /root/Type/SynTypeTupleWithStructRecovery.fs (2,0--2,29))], + PreXmlDocEmpty, [], None, + /root/Type/SynTypeTupleWithStructRecovery.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs new file mode 100644 index 00000000000..8b96dad0af8 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs @@ -0,0 +1,4 @@ + +type Foo = + | Bar of string + | Bear of int diff --git a/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl new file mode 100644 index 00000000000..bc4950f61ec --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl @@ -0,0 +1,67 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs", false, + QualifiedNameOfFile MultipleSynUnionCasesHaveBarRange, [], [], + [SynModuleOrNamespace + ([MultipleSynUnionCasesHaveBarRange], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,5--2,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((3,13), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (3,13--3,19), + { LeadingKeyword = None })], + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (3,6--3,19), + { BarRange = + Some + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (3,4--3,5) }); + SynUnionCase + ([], SynIdent (Bear, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((4,14), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (4,14--4,17), + { LeadingKeyword = None })], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (4,6--4,17), + { BarRange = + Some + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (4,4--4,5) })], + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (3,4--4,17)), + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (3,4--4,17)), + [], None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,5--4,17), + { LeadingKeyword = + Type + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,0--2,4) + EqualsRange = + Some + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,9--2,10) + WithKeyword = None })], + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,0--4,17))], + PreXmlDocEmpty, [], None, + /root/UnionCase/MultipleSynUnionCasesHaveBarRange.fs (2,0--5,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs new file mode 100644 index 00000000000..c75ca1e9d35 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs @@ -0,0 +1,9 @@ + +type Currency = + // Temporary fix until a new Thoth.Json.Net package is released + // See https://github.com/MangelMaxime/Thoth/pull/70 + +#if !FABLE_COMPILER + private +#endif + | Code of string diff --git a/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl new file mode 100644 index 00000000000..c2a7ffdab50 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl @@ -0,0 +1,56 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/PrivateKeywordHasRange.fs", false, + QualifiedNameOfFile PrivateKeywordHasRange, [], [], + [SynModuleOrNamespace + ([PrivateKeywordHasRange], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Currency], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/PrivateKeywordHasRange.fs (2,5--2,13)), + Simple + (Union + (Some + (Private + /root/UnionCase/PrivateKeywordHasRange.fs (7,4--7,11)), + [SynUnionCase + ([], SynIdent (Code, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((9,14), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/PrivateKeywordHasRange.fs (9,14--9,20), + { LeadingKeyword = None })], + PreXmlDoc ((9,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/PrivateKeywordHasRange.fs (9,6--9,20), + { BarRange = + Some + /root/UnionCase/PrivateKeywordHasRange.fs (9,4--9,5) })], + /root/UnionCase/PrivateKeywordHasRange.fs (7,4--9,20)), + /root/UnionCase/PrivateKeywordHasRange.fs (7,4--9,20)), [], + None, /root/UnionCase/PrivateKeywordHasRange.fs (2,5--9,20), + { LeadingKeyword = + Type /root/UnionCase/PrivateKeywordHasRange.fs (2,0--2,4) + EqualsRange = + Some /root/UnionCase/PrivateKeywordHasRange.fs (2,14--2,15) + WithKeyword = None })], + /root/UnionCase/PrivateKeywordHasRange.fs (2,0--9,20))], + PreXmlDocEmpty, [], None, + /root/UnionCase/PrivateKeywordHasRange.fs (2,0--10,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = + [If + (Not (Ident "FABLE_COMPILER"), + /root/UnionCase/PrivateKeywordHasRange.fs (6,0--6,19)); + EndIf /root/UnionCase/PrivateKeywordHasRange.fs (8,0--8,6)] + CodeComments = + [LineComment /root/UnionCase/PrivateKeywordHasRange.fs (3,4--3,67); + LineComment /root/UnionCase/PrivateKeywordHasRange.fs (4,4--4,56)] }, + set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs new file mode 100644 index 00000000000..0d6bcfb7afa --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs @@ -0,0 +1,2 @@ + +type Foo = | Bar of string diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl new file mode 100644 index 00000000000..5d8ec00dfaa --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl @@ -0,0 +1,50 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/SingleSynUnionCaseHasBarRange.fs", false, + QualifiedNameOfFile SingleSynUnionCaseHasBarRange, [], [], + [SynModuleOrNamespace + ([SingleSynUnionCaseHasBarRange], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,5--2,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((2,20), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,20--2,26), + { LeadingKeyword = None })], + PreXmlDoc ((2,11), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,13--2,26), + { BarRange = + Some + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,11--2,12) })], + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,11--2,26)), + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,11--2,26)), + [], None, + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,5--2,26), + { LeadingKeyword = + Type + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,0--2,4) + EqualsRange = + Some + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,9--2,10) + WithKeyword = None })], + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,0--2,26))], + PreXmlDocEmpty, [], None, + /root/UnionCase/SingleSynUnionCaseHasBarRange.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs new file mode 100644 index 00000000000..1b6f0c7a0f1 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs @@ -0,0 +1,2 @@ + +type Foo = Bar of string diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl new file mode 100644 index 00000000000..757804b04fd --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl @@ -0,0 +1,48 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/SingleSynUnionCaseWithoutBar.fs", false, + QualifiedNameOfFile SingleSynUnionCaseWithoutBar, [], [], + [SynModuleOrNamespace + ([SingleSynUnionCaseWithoutBar], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,5--2,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Bar, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((2,18), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,18--2,24), + { LeadingKeyword = None })], + PreXmlDoc ((2,11), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,11--2,24), + { BarRange = None })], + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,11--2,24)), + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,11--2,24)), + [], None, + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,5--2,24), + { LeadingKeyword = + Type + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,0--2,4) + EqualsRange = + Some + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,9--2,10) + WithKeyword = None })], + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,0--2,24))], + PreXmlDocEmpty, [], None, + /root/UnionCase/SingleSynUnionCaseWithoutBar.fs (2,0--3,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs new file mode 100644 index 00000000000..cc4164c021f --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs @@ -0,0 +1,3 @@ + +type X = + | a: int * z:int diff --git a/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl new file mode 100644 index 00000000000..05e3a6e2d14 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl @@ -0,0 +1,55 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/SynUnionCaseKindFullType.fs", false, + QualifiedNameOfFile SynUnionCaseKindFullType, [], [], + [SynModuleOrNamespace + ([SynUnionCaseKindFullType], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [X], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/SynUnionCaseKindFullType.fs (2,5--2,6)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (a, None), + FullType + (Tuple + (false, + [Type + (LongIdent + (SynLongIdent ([int], [], [None]))); + Star + /root/UnionCase/SynUnionCaseKindFullType.fs (3,13--3,14); + Type + (SignatureParameter + ([], false, Some z, + LongIdent + (SynLongIdent ([int], [], [None])), + /root/UnionCase/SynUnionCaseKindFullType.fs (3,15--3,20)))], + /root/UnionCase/SynUnionCaseKindFullType.fs (3,9--3,20)), + SynValInfo ([], SynArgInfo ([], false, None))), + PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/SynUnionCaseKindFullType.fs (3,6--3,20), + { BarRange = + Some + /root/UnionCase/SynUnionCaseKindFullType.fs (3,4--3,5) })], + /root/UnionCase/SynUnionCaseKindFullType.fs (3,4--3,20)), + /root/UnionCase/SynUnionCaseKindFullType.fs (3,4--3,20)), + [], None, + /root/UnionCase/SynUnionCaseKindFullType.fs (2,5--3,20), + { LeadingKeyword = + Type /root/UnionCase/SynUnionCaseKindFullType.fs (2,0--2,4) + EqualsRange = + Some /root/UnionCase/SynUnionCaseKindFullType.fs (2,7--2,8) + WithKeyword = None })], + /root/UnionCase/SynUnionCaseKindFullType.fs (2,0--3,20))], + PreXmlDocEmpty, [], None, + /root/UnionCase/SynUnionCaseKindFullType.fs (2,0--4,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs new file mode 100644 index 00000000000..ba2d10954fc --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs @@ -0,0 +1,8 @@ + +type Foo = +/// docs for Thing +| Thing of + /// docs for first + first: string * + /// docs for anon field + bool diff --git a/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl new file mode 100644 index 00000000000..4f4432943f1 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl @@ -0,0 +1,58 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/UnionCaseFieldsCanHaveComments.fs", false, + QualifiedNameOfFile UnionCaseFieldsCanHaveComments, [], [], + [SynModuleOrNamespace + ([UnionCaseFieldsCanHaveComments], false, AnonModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,5--2,8)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Thing, None), + Fields + [SynField + ([], false, Some first, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((6,2), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (5,2--6,15), + { LeadingKeyword = None }); + SynField + ([], false, None, + LongIdent (SynLongIdent ([bool], [], [None])), + false, + PreXmlDoc ((8,2), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (7,2--8,6), + { LeadingKeyword = None })], + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), + None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (3,0--8,6), + { BarRange = + Some + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (4,0--4,1) })], + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (3,0--8,6)), + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (3,0--8,6)), + [], None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,5--8,6), + { LeadingKeyword = + Type + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,0--2,4) + EqualsRange = + Some + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,9--2,10) + WithKeyword = None })], + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,0--8,6))], + PreXmlDocEmpty, [], None, + /root/UnionCase/UnionCaseFieldsCanHaveComments.fs (2,0--9,0), + { LeadingKeyword = None })], (true, false), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi b/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi new file mode 100644 index 00000000000..0d84e96d179 --- /dev/null +++ b/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi @@ -0,0 +1,4 @@ + +namespace X + +val inline meh: int -> int diff --git a/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi.bsl b/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi.bsl new file mode 100644 index 00000000000..9a321495bc3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Val/InlineKeyword.fsi.bsl @@ -0,0 +1,27 @@ +SigFile + (ParsedSigFileInput + ("/root/Val/InlineKeyword.fsi", QualifiedNameOfFile InlineKeyword, [], [], + [SynModuleOrNamespaceSig + ([X], false, DeclaredNamespace, + [Val + (SynValSig + ([], SynIdent (meh, None), SynValTyparDecls (None, true), + Fun + (LongIdent (SynLongIdent ([int], [], [None])), + LongIdent (SynLongIdent ([int], [], [None])), + /root/Val/InlineKeyword.fsi (4,16--4,26), + { ArrowRange = /root/Val/InlineKeyword.fsi (4,20--4,22) }), + SynValInfo + ([[SynArgInfo ([], false, None)]], + SynArgInfo ([], false, None)), true, false, + PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), None, + None, /root/Val/InlineKeyword.fsi (4,0--4,26), + { LeadingKeyword = Val /root/Val/InlineKeyword.fsi (4,0--4,3) + InlineKeyword = Some /root/Val/InlineKeyword.fsi (4,4--4,10) + WithKeyword = None + EqualsRange = None }), + /root/Val/InlineKeyword.fsi (4,0--4,26))], PreXmlDocEmpty, [], + None, /root/Val/InlineKeyword.fsi (2,0--4,26), + { LeadingKeyword = Namespace /root/Val/InlineKeyword.fsi (2,0--2,9) })], + { ConditionalDirectives = [] + CodeComments = [] }, set []))