diff --git a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs index 4b141124f63475da1ae007ba56c386266e5e2cd1..7312b349a75c7b3a9997c1421f8972cc12508ea6 100644 --- a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs +++ b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs @@ -2148,7 +2148,7 @@ private static IEnumerable FilterDiagnosticsByLocation(IEnumerable FilterDiagnosticsByLocation(IEnumerable CompilationStage.Declare && includeEarlierStages)) { var declarationDiagnostics = GetSourceDeclarationDiagnostics(syntaxTree, filterSpanWithinTree, FilterDiagnosticsByLocation, cancellationToken); - Debug.Assert(declarationDiagnostics.All(d => d.ContainsLocation(syntaxTree, filterSpanWithinTree))); + Debug.Assert(declarationDiagnostics.All(d => d.HasIntersectingLocation(syntaxTree, filterSpanWithinTree))); builder.AddRange(declarationDiagnostics); } diff --git a/src/Compilers/CSharp/Test/Semantic/Diagnostics/GetDiagnosticsTests.cs b/src/Compilers/CSharp/Test/Semantic/Diagnostics/GetDiagnosticsTests.cs index b2a904221a5c19a71ad48285e76a406de1f936b7..f5c613e31c2db641617a2fe8b5afd13df393189c 100644 --- a/src/Compilers/CSharp/Test/Semantic/Diagnostics/GetDiagnosticsTests.cs +++ b/src/Compilers/CSharp/Test/Semantic/Diagnostics/GetDiagnosticsTests.cs @@ -81,9 +81,9 @@ class C : Abracadabra DiagnosticsHelper.VerifyDiagnostics(model, source, @"(?s)^.*$", ErrorId); DiagnosticsHelper.VerifyDiagnostics(model, source, @"Abracadabra", ErrorId); DiagnosticsHelper.VerifyDiagnostics(model, source, @"C : Abracadabra", ErrorId); - DiagnosticsHelper.VerifyDiagnostics(model, source, @"C : Abracadabr"); + DiagnosticsHelper.VerifyDiagnostics(model, source, @"C : Abracadabr", ErrorId); DiagnosticsHelper.VerifyDiagnostics(model, source, @"Abracadabra[\r\n]+", ErrorId); - DiagnosticsHelper.VerifyDiagnostics(model, source, @"bracadabra[\r\n]+"); + DiagnosticsHelper.VerifyDiagnostics(model, source, @"bracadabra[\r\n]+", ErrorId); } [Fact, WorkItem(1066483)] diff --git a/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs b/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs index 8f4e0be8f557ecb66d7164c358a8398124a5425d..74a17fe780682f403c10a4ea5aacc78b82227c1e 100644 --- a/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs +++ b/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs @@ -406,15 +406,15 @@ internal virtual IReadOnlyList Arguments } /// - /// Returns true if the diagnostic location (or any additional location) is within the given tree and optional filterSpanWithinTree. + /// Returns true if the diagnostic location (or any additional location) is within the given tree and intersects with the filterSpanWithinTree, if non-null. /// - internal bool ContainsLocation(SyntaxTree tree, TextSpan? filterSpanWithinTree = null) + internal bool HasIntersectingLocation(SyntaxTree tree, TextSpan? filterSpanWithinTree = null) { var locations = this.GetDiagnosticLocationsWithinTree(tree); foreach (var location in locations) { - if (!filterSpanWithinTree.HasValue || filterSpanWithinTree.Value.Contains(location.SourceSpan)) + if (!filterSpanWithinTree.HasValue || filterSpanWithinTree.Value.IntersectsWith(location.SourceSpan)) { return true; } diff --git a/src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb b/src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb index 7a49fd8270e3e8f0b24d560bc72487d73145d5aa..4adaf9867c8ebdb5ff17ec0aa56c9fd2078f8961 100644 --- a/src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb +++ b/src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb @@ -1981,7 +1981,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Private Shared Iterator Function FilterDiagnosticsByLocation(diagnostics As IEnumerable(Of Diagnostic), tree As SyntaxTree, filterSpanWithinTree As TextSpan?) As IEnumerable(Of Diagnostic) For Each diagnostic In diagnostics - If diagnostic.ContainsLocation(tree, filterSpanWithinTree) Then + If diagnostic.HasIntersectingLocation(tree, filterSpanWithinTree) Then Yield diagnostic End If Next diff --git a/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/GetDiagnosticsTests.vb b/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/GetDiagnosticsTests.vb index f67858824a2c25a4954b9c5bb0441638f8cc375e..932b4a16d0858a3bff9c642b7809c47f171e16a1 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/GetDiagnosticsTests.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/Diagnostics/GetDiagnosticsTests.vb @@ -29,7 +29,7 @@ End Class DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "(?s)^.*$", "BC30035", "BC30248", "BC30203", "BC30157") DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "@", "BC30035") DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "#", "BC30248") - DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "(?<=\!)", "BC30203") + DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "(?<=\!)", "BC30203", "BC30157") DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "!", "BC30203", "BC30157") End Sub @@ -79,9 +79,9 @@ End Class DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "(?s)^.*$", ErrorId) DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "Abracadabra", ErrorId) DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "ts Abracadabra", ErrorId) - DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "ts Abracadabr") + DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "ts Abracadabr", ErrorId) DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "Abracadabra[\r\n]+", ErrorId) - DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "bracadabra[\r\n]+") + DiagnosticsHelper.VerifyDiagnostics(model, sourceText, "bracadabra[\r\n]+", ErrorId) End Sub