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 202bd49532e..c5b206ed9e6 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -119,6 +119,9 @@ SyntaxTree\SynIdentTests.fs + + SyntaxTree\SynTypeTests.fs + SyntaxTree\AttributeTests.fs diff --git a/tests/service/SyntaxTreeTests/SynTypeTests.fs b/tests/service/SyntaxTreeTests/SynTypeTests.fs new file mode 100644 index 00000000000..1ab5ed12e94 --- /dev/null +++ b/tests/service/SyntaxTreeTests/SynTypeTests.fs @@ -0,0 +1,51 @@ +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}"