diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/HeuristicResolver.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/HeuristicResolver.java index 6f7143b49c4..9a08b3e4d30 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/HeuristicResolver.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/HeuristicResolver.java @@ -114,6 +114,8 @@ public class HeuristicResolver { type = SemanticUtil.getNestedType(type, SemanticUtil.PTR); if (type instanceof ICompositeType) { return ((ICompositeType) type).getCompositeScope(); + } else if (type instanceof ICPPEnumeration) { + return ((ICPPEnumeration) type).asScope(); } return null; } diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java index 5ccfc967e6b..8902a93084a 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java @@ -606,6 +606,22 @@ public class CompletionTests extends CompletionTestBase { assertCompletionResults(new String[] { "i" }); } + // template + // struct A { + // enum class AA { + // Test + // }; + // }; + // + // template + // void test() + // { + // A::AA::/*cursor*/ + // } + public void testHeuristicEnumScopeResolution_520805() throws Exception { + assertCompletionResults(new String[] { "Test" }); + } + // template // struct A { // template