Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include diagnostics in base line for SyntaxTreeTests. #14986

Merged
merged 3 commits into from
Mar 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 25 additions & 4 deletions tests/service/SyntaxTreeTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ module Tests.Service.SyntaxTree

open System.IO
open FSharp.Compiler.CodeAnalysis
open FSharp.Compiler.Diagnostics
open FSharp.Compiler.Service.Tests.Common
open FSharp.Compiler.Syntax
open FSharp.Compiler.Text
Expand Down Expand Up @@ -131,13 +132,14 @@ let parseSourceCode (name: string, code: string) =
location,
SourceText.ofString code,
{ FSharpParsingOptions.Default with
SourceFiles = [| location |] }
SourceFiles = [| location |]
IsExe = true }
)
|> Async.RunImmediate

let tree = parseResults.ParseTree
let sourceDirectoryValue = $"{RootDirectory}/{FileInfo(location).Directory.Name}"
sanitizeAST sourceDirectoryValue tree
sanitizeAST sourceDirectoryValue tree, parseResults.Diagnostics

/// Asserts the parsed untyped tree matches the expected baseline.
///
Expand All @@ -151,9 +153,28 @@ let parseSourceCode (name: string, code: string) =
let ParseFile fileName =
let fullPath = Path.Combine(testCasesDir, fileName)
let contents = File.ReadAllText fullPath
let ast = parseSourceCode (fileName, contents)
let ast, diagnostics = parseSourceCode (fileName, contents)
let normalize (s: string) = s.Replace("\r", "")
let actual = sprintf "%A" ast |> normalize |> sprintf "%s\n"
let actual =
if Array.isEmpty diagnostics then
$"%A{ast}"
else
let diagnostics =
diagnostics
|> Array.map (fun d ->
let severity =
match d.Severity with
| FSharpDiagnosticSeverity.Warning -> "warning"
| FSharpDiagnosticSeverity.Error -> "error"
| FSharpDiagnosticSeverity.Info -> "info"
| FSharpDiagnosticSeverity.Hidden -> "hidden"

$"(%d{d.StartLine},%d{d.StartColumn})-(%d{d.EndLine},%d{d.EndColumn}) %s{d.Subcategory} %s{severity} %s{d.Message}"
)
|> String.concat "\n"
$"%A{ast}\n\n%s{diagnostics}"
|> normalize
|> sprintf "%s\n"
let bslPath = $"{fullPath}.bsl"

let expected =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ ImplFile
Range = (2,0--2,27) }], (2,0--2,27));
Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))],
PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@ ImplFile
Range = (2,0--2,34) }], (2,0--2,34));
Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))],
PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ ImplFile
Range = (2,0--2,37) }], (2,0--2,37));
Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))],
PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,14--2,15) })],
(2,0--2,31))], PreXmlDocEmpty, [], None, (2,0--3,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,7--2,8)
WithKeyword = None })], (2,0--3,62))], PreXmlDocEmpty, [],
None, (2,0--4,0), { LeadingKeyword = None })], (true, false),
None, (2,0--4,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ ImplFile
InlineKeyword = Some (4,4--4,10)
EqualsRange = Some (6,13--6,14) })], (2,0--6,42))],
PreXmlDocEmpty, [], None, (2,0--7,0), { LeadingKeyword = None })],
(true, false),
(true, true),
{ ConditionalDirectives =
[If (Not (Ident "FOO"), (3,0--3,8)); EndIf (5,0--5,6)]
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ ImplFile
InlineKeyword = Some (2,4--2,10)
EqualsRange = Some (2,17--2,18) })],
(2,0--4,6))], PreXmlDocEmpty, [], None, (2,0--5,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,22--2,23) })], (2,0--2,25))],
PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,6 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (4,24--4,25) }), (3,4--4,30))], [],
(2,2--2,21), (2,0--4,32)), (2,0--4,32))], PreXmlDocEmpty, [],
None, (2,0--4,32), { LeadingKeyword = None })], (true, false),
None, (2,0--4,32), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,11--2,12)
WithKeyword = None })], (2,0--4,15))], PreXmlDocEmpty, [],
None, (2,0--5,0), { LeadingKeyword = None })], (true, false),
None, (2,0--5,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,11--2,12)
WithKeyword = None })], (2,0--4,23))], PreXmlDocEmpty, [],
None, (2,0--5,0), { LeadingKeyword = None })], (true, false),
None, (2,0--5,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,10--2,11)
WithKeyword = None })], (2,0--6,50))], PreXmlDocEmpty, [],
None, (2,0--7,0), { LeadingKeyword = None })], (true, false),
None, (2,0--7,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--11,12))], PreXmlDocEmpty, [],
None, (2,0--12,0), { LeadingKeyword = None })], (true, false),
None, (2,0--12,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--4,13))], PreXmlDocEmpty, [],
None, (2,0--5,0), { LeadingKeyword = None })], (true, false),
None, (2,0--5,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--4,33))], PreXmlDocEmpty, [],
None, (2,0--5,0), { LeadingKeyword = None })], (true, false),
None, (2,0--5,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (3,6--3,7) })], (2,0--3,9))],
PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,11--2,12)
WithKeyword = None })], (2,0--4,79))], PreXmlDocEmpty, [],
None, (2,0--5,0), { LeadingKeyword = None })], (true, false),
None, (2,0--5,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ ImplFile
EqualsRange = Some (3,10--3,11) })],
Const (Unit, (4,4--4,6)), (3,4--4,6), { InKeyword = None }),
(2,0--4,6)), (2,0--4,6))], PreXmlDocEmpty, [], None, (2,0--5,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ ImplFile
EqualsRange = Some (3,15--3,16) })],
Const (Unit, (4,4--4,6)), (3,4--4,6), { InKeyword = None }),
(2,0--4,6)), (2,0--4,6))], PreXmlDocEmpty, [], None, (2,0--5,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--3,21))], PreXmlDocEmpty, [],
None, (2,0--4,0), { LeadingKeyword = None })], (true, false),
None, (2,0--4,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--3,24))], PreXmlDocEmpty, [],
None, (2,0--4,0), { LeadingKeyword = None })], (true, false),
None, (2,0--4,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--3,33))], PreXmlDocEmpty, [],
None, (2,0--4,0), { LeadingKeyword = None })], (true, false),
None, (2,0--4,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,6 @@ ImplFile
{ LeadingKeyword = Type (2,0--2,4)
EqualsRange = Some (2,9--2,10)
WithKeyword = None })], (2,0--5,50))], PreXmlDocEmpty, [],
None, (2,0--6,0), { LeadingKeyword = None })], (true, false),
None, (2,0--6,0), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,6--2,7) })], (2,0--2,10))],
PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,12--2,13) })], (2,0--2,16))],
PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,6--2,7) })],
(2,0--4,6))], PreXmlDocEmpty, [], None, (2,0--5,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,6--2,7) })], (2,0--2,10))],
PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (5,6--5,7) })], (2,0--5,10))],
PreXmlDocEmpty, [], None, (3,0--6,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [LineComment (4,0--4,15)] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [LineComment (4,0--4,15)] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (3,28--3,29) })], (3,0--3,42))],
PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (2,17--2,18) })], (2,0--2,25))],
PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [BlockComment (2,6--2,13)] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [BlockComment (2,6--2,13)] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ ImplFile
(App
(Atomic, false, Ident foo, Const (Unit, (2,3--2,5)), (2,0--2,5)),
(2,0--2,5))], PreXmlDocEmpty, [], None, (2,0--2,5),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [LineComment (2,6--2,17)] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ ImplFile
[SynModuleOrNamespace
([CommentAtEndOfFile], false, AnonModule, [Expr (Ident x, (2,0--2,1))],
PreXmlDocEmpty, [], None, (2,0--2,1), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [LineComment (2,2--2,6)] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [LineComment (2,2--2,6)] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ ImplFile
(App
(Atomic, false, Ident foo, Const (Unit, (3,3--3,5)), (3,0--3,5)),
(3,0--3,5))], PreXmlDocEmpty, [], None, (3,0--3,5),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [LineComment (2,0--2,11)] }, set []))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

namespace Meh
// comment!
foo()
val a: int
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,18 @@ SigFile
("/root/CodeComment/CommentOnSingleLineSignatureFile.fsi",
QualifiedNameOfFile CommentOnSingleLineSignatureFile, [], [],
[SynModuleOrNamespaceSig
([Meh], false, DeclaredNamespace, [], PreXmlDocEmpty, [], None,
(2,0--2,13), { LeadingKeyword = Namespace (2,0--2,9) })],
([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, (4,0--4,10), { LeadingKeyword = Val (4,0--4,3)
InlineKeyword = None
WithKeyword = None
EqualsRange = None }), (4,0--4,10))],
PreXmlDocEmpty, [], None, (2,0--4,10),
{ LeadingKeyword = Namespace (2,0--2,9) })],
{ ConditionalDirectives = []
CodeComments = [LineComment (3,0--3,11)] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (3,6--3,7) })],
(2,0--9,9))], PreXmlDocEmpty, [], None, (3,0--10,0),
{ LeadingKeyword = None })], (true, false),
{ LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments =
[LineComment (4,4--4,40); LineComment (6,4--6,36);
LineComment (7,4--7,27)] }, set []))

(4,4)-(7,27) parse info XML comment is not placed on a valid language element.
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ ImplFile
InlineKeyword = None
EqualsRange = Some (3,6--3,7) })], (2,0--3,9))],
PreXmlDocEmpty, [], None, (3,0--4,0), { LeadingKeyword = None })],
(true, false), { ConditionalDirectives = []
CodeComments = [] }, set []))
(true, true), { ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ ImplFile
YieldOrReturn ((false, true), Ident bar, (6,4--6,14)),
(3,4--6,14), { EqualsRange = Some (3,13--3,14) }),
(2,6--7,1)), (2,0--7,1)), (2,0--7,1))], PreXmlDocEmpty, [],
None, (2,0--7,1), { LeadingKeyword = None })], (true, false),
None, (2,0--7,1), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ ImplFile
YieldOrReturn ((false, true), Ident bar, (7,4--7,14)),
(3,4--7,14), { EqualsRange = Some (3,13--3,14) }),
(2,6--8,1)), (2,0--8,1)), (2,0--8,1))], PreXmlDocEmpty, [],
None, (2,0--8,1), { LeadingKeyword = None })], (true, false),
None, (2,0--8,1), { LeadingKeyword = None })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ let v =
()
#endif
*)
42
42
Loading