diff options
author | Andrew Niefer | 2005-04-01 15:38:01 +0000 |
---|---|---|
committer | Andrew Niefer | 2005-04-01 15:38:01 +0000 |
commit | f7566ee272d2e90d9d5018718ed1d476fc03fb02 (patch) | |
tree | 447d090e2d4df4f5f71ba1059ceb3cd02413836b /core/org.eclipse.cdt.core | |
parent | 7abf1397a20125babc348fba3c7798e0a96c89db (diff) | |
download | org.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.java | 23 |
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 ){ |