diff --git a/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp new file mode 100644 index 00000000000..f0a3dc7fbdc --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp @@ -0,0 +1,3 @@ +void test() { + int i = Ns::ENUM_VALUE; +} diff --git a/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp.expected b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp.expected new file mode 100644 index 00000000000..0c5202a7730 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.cpp.expected @@ -0,0 +1,4 @@ +#include "Enumerator_307738.h" +void test() { + int i = Ns::ENUM_VALUE; +} diff --git a/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.h b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.h new file mode 100644 index 00000000000..9bf96c4891b --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/addInclude/Enumerator_307738.h @@ -0,0 +1,3 @@ +namespace Ns { + enum MyEnum {ENUM_VALUE}; +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/AddIncludeTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/AddIncludeTest.java index 9b092ee6a27..36fa9388ac0 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/AddIncludeTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/AddIncludeTest.java @@ -149,4 +149,9 @@ public class AddIncludeTest extends TestCase { select("func306670"); assertAddIncludeResult(); } + + public void testEnumerator_307738() throws Exception { + select("ENUM_VALUE"); + assertAddIncludeResult(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java index 38bbdb468f2..db81e5a3061 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java @@ -55,6 +55,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.ICompositeType; import org.eclipse.cdt.core.dom.ast.IEnumeration; +import org.eclipse.cdt.core.dom.ast.IEnumerator; import org.eclipse.cdt.core.dom.ast.IFunction; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.ITypedef; @@ -260,8 +261,8 @@ public class AddIncludeOnSelectionAction extends TextEditorAction { } } IIndexName[] definitions= null; - // class, struct, union, enum - if (indexBinding instanceof ICompositeType || indexBinding instanceof IEnumeration) { + // class, struct, union, enum-type, enum-item + if (indexBinding instanceof ICompositeType || indexBinding instanceof IEnumeration || indexBinding instanceof IEnumerator) { definitions= index.findDefinitions(indexBinding); } else if (indexBinding instanceof ITypedef || (indexBinding instanceof IFunction)) { definitions = index.findDeclarations(indexBinding);