From 6e735e4594a17a8965c881ab6862eb5e1f12ac28 Mon Sep 17 00:00:00 2001 From: nojaf Date: Tue, 6 Sep 2022 17:49:11 +0200 Subject: [PATCH 1/4] Include range of parameter names and attributes in topTupleType SynType.Tuple. --- .../FSharp.Compiler.Service.Tests.fsproj | 2 + tests/service/SyntaxTreeTests/SynTypeTests.fs | 51 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 tests/service/SyntaxTreeTests/SynTypeTests.fs 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 19175fd7f05..fc048054011 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -115,6 +115,8 @@ SyntaxTree\SynIdentTests.fs + + SyntaxTree\SynTypeTests.fs FileSystemTests.fs diff --git a/tests/service/SyntaxTreeTests/SynTypeTests.fs b/tests/service/SyntaxTreeTests/SynTypeTests.fs new file mode 100644 index 00000000000..1b26c5d9bca --- /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(modules = [ + 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(modules = [ + 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}" From 402a3388f1c0f2955980831baf9b3413cf33eda4 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 30 Sep 2022 09:40:00 +0200 Subject: [PATCH 2/4] Update AST in unit tests --- tests/service/SyntaxTreeTests/SynTypeTests.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/service/SyntaxTreeTests/SynTypeTests.fs b/tests/service/SyntaxTreeTests/SynTypeTests.fs index 1b26c5d9bca..1ab5ed12e94 100644 --- a/tests/service/SyntaxTreeTests/SynTypeTests.fs +++ b/tests/service/SyntaxTreeTests/SynTypeTests.fs @@ -14,7 +14,7 @@ type T = """ match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(modules = [ + | ParsedInput.SigFile(ParsedSigFileInput(contents = [ SynModuleOrNamespaceSig(decls = [ SynModuleSigDecl.Types(types = [ SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ @@ -37,7 +37,7 @@ type T = """ match parseResults with - | ParsedInput.SigFile(ParsedSigFileInput(modules = [ + | ParsedInput.SigFile(ParsedSigFileInput(contents = [ SynModuleOrNamespaceSig(decls = [ SynModuleSigDecl.Types(types = [ SynTypeDefnSig(typeRepr = SynTypeDefnSigRepr.ObjectModel(memberSigs = [ From 3bee6c1976ed9e0dcf7668fa33e2b79261d15c89 Mon Sep 17 00:00:00 2001 From: nojaf Date: Sun, 2 Oct 2022 09:37:38 +0200 Subject: [PATCH 3/4] Correct fsproj. --- .../FSharp.Compiler.Service.Tests.fsproj | 1 + 1 file changed, 1 insertion(+) 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 fc048054011..eaeadb4e16f 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -115,6 +115,7 @@ SyntaxTree\SynIdentTests.fs + SyntaxTree\SynTypeTests.fs From c6fa498b65208254561a573c3ff42116a6f25f0d Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 7 Oct 2022 16:29:19 +0200 Subject: [PATCH 4/4] Fix FSharp.Compiler.Service.Tests.fsproj --- .../FSharp.Compiler.Service.Tests.fsproj | 1 + 1 file changed, 1 insertion(+) 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 10facb0613e..c5b206ed9e6 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -121,6 +121,7 @@ SyntaxTree\SynTypeTests.fs + SyntaxTree\AttributeTests.fs