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

Bug 459179 - ClassCastException in CPPSemantics.getParentScope

This commit is contained in:
Sergey Prigogin 2015-02-04 15:11:39 -08:00
parent 8eb15f3fca
commit 91981f9453
5 changed files with 18 additions and 5 deletions

View file

@ -35,7 +35,6 @@ import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.db.Database;
import org.eclipse.cdt.internal.core.pdom.db.IString;
import org.eclipse.cdt.internal.core.pdom.db.PDOMExternalReferencesList;
import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCGlobalScope;
import org.eclipse.cdt.internal.core.pdom.tag.PDOMTaggable;
import org.eclipse.core.runtime.CoreException;
@ -257,7 +256,7 @@ public abstract class PDOMBinding extends PDOMNamedNode implements IPDOMBinding
} catch (CoreException e) {
CCorePlugin.log(e);
}
return PDOMCGlobalScope.INSTANCE;
return getLinkage().getGlobalScope();
}
@Override
@ -271,7 +270,7 @@ public abstract class PDOMBinding extends PDOMNamedNode implements IPDOMBinding
} catch (CoreException e) {
CCorePlugin.log(e);
}
return PDOMCGlobalScope.INSTANCE;
return getLinkage().getGlobalScope();
}
@Override

View file

@ -180,10 +180,12 @@ public abstract class PDOMLinkage extends PDOMNamedNode implements IIndexLinkage
return null;
}
abstract public PDOMNode getNode(long record, int nodeType) throws CoreException;
public abstract PDOMNode getNode(long record, int nodeType) throws CoreException;
public abstract IBTreeComparator getIndexComparator();
public abstract PDOMGlobalScope getGlobalScope();
public IBTreeComparator getNestedBindingsComparator() {
return new FindBinding.NestedBindingsBTreeComparator(this);
}

View file

@ -43,6 +43,7 @@ import org.eclipse.cdt.internal.core.pdom.dom.FindBinding;
import org.eclipse.cdt.internal.core.pdom.dom.IPDOMMemberOwner;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMASTAdapter;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMGlobalScope;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMLinkage;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode;
import org.eclipse.core.runtime.CoreException;
@ -342,6 +343,11 @@ class PDOMCLinkage extends PDOMLinkage implements IIndexCBindingConstants {
return new FindBinding.DefaultBindingBTreeComparator(this);
}
@Override
public PDOMGlobalScope getGlobalScope() {
return PDOMCGlobalScope.INSTANCE;
}
@Override
public PDOMBinding addTypeBinding(IBinding type) throws CoreException {
return addBinding(type, null);

View file

@ -84,6 +84,6 @@ public abstract class PDOMCPPBinding extends PDOMBinding implements ICPPBinding
} catch (CoreException e) {
CCorePlugin.log(e);
}
return PDOMCPPGlobalScope.INSTANCE;
return getLinkage().getGlobalScope();
}
}

View file

@ -136,6 +136,7 @@ import org.eclipse.cdt.internal.core.pdom.dom.IPDOMMemberOwner;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMASTAdapter;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMFile;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMGlobalScope;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMLinkage;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMName;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode;
@ -1054,6 +1055,11 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
return new CPPFindBinding.CPPBindingBTreeComparator(this);
}
@Override
public PDOMGlobalScope getGlobalScope() {
return PDOMCPPGlobalScope.INSTANCE;
}
@Override
public void onCreateName(PDOMFile file, IASTName name, PDOMName pdomName) throws CoreException {
super.onCreateName(file, name, pdomName);