diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java index 0ff961b323b..95b758b2c90 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java @@ -643,4 +643,14 @@ public class SemanticHighlightingTest extends TestCase { public void testArgumentsOfFunctionTemplateSpecialization_510788() throws Exception { makeAssertions(); } + + // struct Waldo { //$class + // static void find(); //$methodDeclaration + // }; + // int main() { //$functionDeclaration + // Waldo::search(); //$class,problem + // } + public void testQualifiedName_511331() throws Exception { + makeAssertions(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java index 16a09d53c5c..b354933e842 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java @@ -1469,6 +1469,11 @@ public class SemanticHighlightings { if (node instanceof IASTProblem) { return true; } + if (node instanceof ICPPASTQualifiedName) { + // Do not highlight entire qualified name. Allow those of its segments + // which resolve, to get a non-Problem highlighting. + return false; + } IBinding binding= token.getBinding(); if (binding instanceof IProblemBinding) { IProblemBinding problemBinding = (IProblemBinding) binding;