Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2005-04-01 15:38:01 +0000
committerAndrew Niefer2005-04-01 15:38:01 +0000
commitf7566ee272d2e90d9d5018718ed1d476fc03fb02 (patch)
tree447d090e2d4df4f5f71ba1059ceb3cd02413836b /core/org.eclipse.cdt.core
parent7abf1397a20125babc348fba3c7798e0a96c89db (diff)
downloadorg.eclipse.cdt-f7566ee272d2e90d9d5018718ed1d476fc03fb02.tar.gz
org.eclipse.cdt-f7566ee272d2e90d9d5018718ed1d476fc03fb02.tar.xz
org.eclipse.cdt-f7566ee272d2e90d9d5018718ed1d476fc03fb02.zip
fix bug 89828
Diffstat (limited to 'core/org.eclipse.cdt.core')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java23
1 files changed, 17 insertions, 6 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java
index e65f34c395c..34d1b0154d2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java
@@ -1301,13 +1301,24 @@ public class CPPSemantics {
return (IBinding) bindings[0];
}
- LookupData data = createLookupData( name, false );
- data.foundItems = bindings;
- try {
- return resolveAmbiguities( data, name );
- } catch ( DOMException e ) {
- return e.getProblem();
+ if( name.getPropertyInParent() != STRING_LOOKUP_PROPERTY ) {
+ LookupData data = createLookupData( name, false );
+ data.foundItems = bindings;
+ try {
+ return resolveAmbiguities( data, name );
+ } catch ( DOMException e ) {
+ return e.getProblem();
+ }
+ }
+
+ IBinding [] result = null;
+ for ( int i = 0; i < bindings.length; i++ ) {
+ if( bindings[i] instanceof IASTName )
+ result = (IBinding[]) ArrayUtil.append( IBinding.class, result, ((IASTName)bindings[i]).resolveBinding() );
+ else if( bindings[i] instanceof IBinding )
+ result = (IBinding[]) ArrayUtil.append( IBinding.class, result, bindings[i] );
}
+ return new CPPCompositeBinding( result );
}
static public boolean declaredBefore( Object obj, IASTNode node ){

Back to the top