Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2008-03-18 15:16:56 +0000
committerAnton Leherbauer2008-03-18 15:16:56 +0000
commit3333dfaa52904d5358d9677828330f48f6878442 (patch)
treeb2cb28baf3b2fa61934c98390cece8ea9eea2e13 /core/org.eclipse.cdt.core/parser
parentca5dd7b786c5f24df9404b3063206d13bfc9126f (diff)
downloadorg.eclipse.cdt-3333dfaa52904d5358d9677828330f48f6878442.tar.gz
org.eclipse.cdt-3333dfaa52904d5358d9677828330f48f6878442.tar.xz
org.eclipse.cdt-3333dfaa52904d5358d9677828330f48f6878442.zip
More content assist tests for plain C
Diffstat (limited to 'core/org.eclipse.cdt.core/parser')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java22
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java26
2 files changed, 27 insertions, 21 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
index ef4c2f48a4d..3e105d44313 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
@@ -1,14 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM Rational Software - Initial API and implementation
- * Yuan Zhang / Beth Tibbitts (IBM Research)
- * Bryan Wilkinson (QNX)
+ * IBM Rational Software - Initial API and implementation
+ * Yuan Zhang / Beth Tibbitts (IBM Research)
+ * Bryan Wilkinson (QNX)
+ * Anton Leherbauer (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.c;
@@ -17,7 +18,10 @@ import org.eclipse.cdt.core.dom.ast.IASTCompletionContext;
import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTName;
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.IType;
+import org.eclipse.cdt.core.parser.util.ArrayUtil;
/**
* @author jcamelon
@@ -77,6 +81,14 @@ public class CASTIdExpression extends CASTNode implements IASTIdExpression, IAST
}
public IBinding[] findBindings(IASTName n, boolean isPrefix) {
- return CVisitor.findBindingsForContentAssist(n, isPrefix);
+ IBinding[] bindings = CVisitor.findBindingsForContentAssist(n, isPrefix);
+
+ for (int i = 0; i < bindings.length; i++) {
+ if (bindings[i] instanceof IEnumeration || bindings[i] instanceof ICompositeType) {
+ bindings[i]= null;
+ }
+ }
+
+ return (IBinding[]) ArrayUtil.removeNulls(IBinding.class, bindings);
}
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
index 974eb8765f6..6c9651d11f2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
@@ -1,28 +1,25 @@
/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM Rational Software - Initial API and implementation
- * Yuan Zhang / Beth Tibbitts (IBM Research)
- * Bryan Wilkinson (QNX)
+ * IBM Rational Software - Initial API and implementation
+ * Yuan Zhang / Beth Tibbitts (IBM Research)
+ * Bryan Wilkinson (QNX)
+ * Anton Leherbauer (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.c;
-import java.util.ArrayList;
-import java.util.List;
-
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTCompletionContext;
import org.eclipse.cdt.core.dom.ast.IASTName;
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.ITypedef;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
+import org.eclipse.cdt.core.parser.util.ArrayUtil;
/**
* @author jcamelon
@@ -77,16 +74,13 @@ public class CASTTypedefNameSpecifier extends CASTBaseDeclSpecifier implements
public IBinding[] findBindings(IASTName n, boolean isPrefix) {
IBinding[] bindings = CVisitor.findBindingsForContentAssist(n, isPrefix);
- List filtered = new ArrayList();
-
+
for (int i = 0; i < bindings.length; i++) {
- if (bindings[i] instanceof ICompositeType
- || bindings[i] instanceof IEnumeration
- || bindings[i] instanceof ITypedef) {
- filtered.add(bindings[i]);
+ if (!(bindings[i] instanceof ITypedef)) {
+ bindings[i]= null;
}
}
- return (IBinding[]) filtered.toArray(new IBinding[filtered.size()]);
+ return (IBinding[]) ArrayUtil.removeNulls(IBinding.class, bindings);
}
}

Back to the top