1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-19 23:15:24 +02:00

Bug 307738: Add include for enumerators.

This commit is contained in:
Markus Schorn 2010-03-31 14:48:45 +00:00
parent b07eedb957
commit 72fd8f6158
5 changed files with 18 additions and 2 deletions

View file

@ -0,0 +1,3 @@
void test() {
int i = Ns::ENUM_VALUE;
}

View file

@ -0,0 +1,4 @@
#include "Enumerator_307738.h"
void test() {
int i = Ns::ENUM_VALUE;
}

View file

@ -0,0 +1,3 @@
namespace Ns {
enum MyEnum {ENUM_VALUE};
}

View file

@ -149,4 +149,9 @@ public class AddIncludeTest extends TestCase {
select("func306670"); select("func306670");
assertAddIncludeResult(); assertAddIncludeResult();
} }
public void testEnumerator_307738() throws Exception {
select("ENUM_VALUE");
assertAddIncludeResult();
}
} }

View file

@ -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.IBinding;
import org.eclipse.cdt.core.dom.ast.ICompositeType; import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.IEnumeration; 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.IFunction;
import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef; import org.eclipse.cdt.core.dom.ast.ITypedef;
@ -260,8 +261,8 @@ public class AddIncludeOnSelectionAction extends TextEditorAction {
} }
} }
IIndexName[] definitions= null; IIndexName[] definitions= null;
// class, struct, union, enum // class, struct, union, enum-type, enum-item
if (indexBinding instanceof ICompositeType || indexBinding instanceof IEnumeration) { if (indexBinding instanceof ICompositeType || indexBinding instanceof IEnumeration || indexBinding instanceof IEnumerator) {
definitions= index.findDefinitions(indexBinding); definitions= index.findDefinitions(indexBinding);
} else if (indexBinding instanceof ITypedef || (indexBinding instanceof IFunction)) { } else if (indexBinding instanceof ITypedef || (indexBinding instanceof IFunction)) {
definitions = index.findDeclarations(indexBinding); definitions = index.findDeclarations(indexBinding);