1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-12 02:35:37 +02:00

PDOM - Some minor fixes to get by PDOMNotImplemented errors while indexing real projects.

This commit is contained in:
Doug Schaefer 2006-01-19 21:03:11 +00:00
parent 0017da7863
commit f61c63ba58
5 changed files with 24 additions and 8 deletions

View file

@ -1108,13 +1108,14 @@ public class CPPSemantics {
ICPPBase [] bases = null; ICPPBase [] bases = null;
if( lookIn instanceof ICPPClassScope ){ if( lookIn instanceof ICPPClassScope ){
ICPPClassType c = ((ICPPClassScope)lookIn).getClassType(); ICPPClassType c = ((ICPPClassScope)lookIn).getClassType();
bases = c.getBases(); if (c != null)
bases = c.getBases();
} }
Object inherited = null; Object inherited = null;
Object result = null; Object result = null;
if( bases.length == 0 ) if( bases == null || bases.length == 0 )
return null; return null;
//use data to detect circular inheritance //use data to detect circular inheritance

View file

@ -40,7 +40,9 @@ public class PDOMCField extends PDOMMember implements IField {
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
throw new PDOMNotImplementedError(); return null;
// TODO - do we need the real type?
//throw new PDOMNotImplementedError();
} }
public boolean isStatic() throws DOMException { public boolean isStatic() throws DOMException {

View file

@ -54,7 +54,7 @@ public class PDOMCStructure extends PDOMMemberOwner implements ICompositeType {
public IField findField(String name) throws DOMException { public IField findField(String name) throws DOMException {
try { try {
PDOMMember[] members = findMembers(name.toCharArray()); PDOMMember[] members = findMembers(name.toCharArray());
return (PDOMCField)members[0]; return members.length > 0 ? (PDOMCField)members[0] : null;
} catch (CoreException e) { } catch (CoreException e) {
CCorePlugin.log(e); CCorePlugin.log(e);
return null; return null;

View file

@ -13,8 +13,10 @@ package org.eclipse.cdt.internal.core.pdom.dom.c;
import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.IVariable; import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.internal.core.dom.parser.c.CVariable;
import org.eclipse.cdt.internal.core.pdom.PDOMDatabase; import org.eclipse.cdt.internal.core.pdom.PDOMDatabase;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding; import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode;
@ -29,6 +31,8 @@ public class PDOMCVariable extends PDOMBinding implements IVariable {
public PDOMCVariable(PDOMDatabase pdom, PDOMNode parent, IASTName name) throws CoreException { public PDOMCVariable(PDOMDatabase pdom, PDOMNode parent, IASTName name) throws CoreException {
super(pdom, parent, name, PDOMCLinkage.CVARIABLE); super(pdom, parent, name, PDOMCLinkage.CVARIABLE);
CVariable binding = (CVariable)name.getBinding();
IType type = binding.getType();
} }
public PDOMCVariable(PDOMDatabase pdom, int record) { public PDOMCVariable(PDOMDatabase pdom, int record) {
@ -40,7 +44,9 @@ public class PDOMCVariable extends PDOMBinding implements IVariable {
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
throw new PDOMNotImplementedError(); return null;
// TODO - do we need the real type?
//throw new PDOMNotImplementedError();
} }
public boolean isStatic() throws DOMException { public boolean isStatic() throws DOMException {

View file

@ -26,6 +26,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField; import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
import org.eclipse.cdt.internal.core.pdom.PDOMDatabase; import org.eclipse.cdt.internal.core.pdom.PDOMDatabase;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMMember; import org.eclipse.cdt.internal.core.pdom.dom.PDOMMember;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMMemberOwner; import org.eclipse.cdt.internal.core.pdom.dom.PDOMMemberOwner;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode;
@ -53,7 +54,11 @@ public class PDOMCPPClassType extends PDOMMemberOwner implements ICPPClassType,
} }
public boolean isSameType(IType type) { public boolean isSameType(IType type) {
throw new PDOMNotImplementedError(); if (type instanceof PDOMBinding)
return record == ((PDOMBinding)type).getRecord();
else
// TODO - should we check for real?
return false;
} }
public Object clone() { public Object clone() {
@ -121,7 +126,9 @@ public class PDOMCPPClassType extends PDOMMemberOwner implements ICPPClassType,
} }
public ICPPClassType getClassType() { public ICPPClassType getClassType() {
throw new PDOMNotImplementedError(); return null;
// TODO - do we need the real type?
//throw new PDOMNotImplementedError();
} }
public ICPPMethod[] getImplicitMethods() { public ICPPMethod[] getImplicitMethods() {
@ -148,7 +155,7 @@ public class PDOMCPPClassType extends PDOMMemberOwner implements ICPPClassType,
try { try {
PDOMMember[] matches = findMembers(name.toCharArray()); PDOMMember[] matches = findMembers(name.toCharArray());
// TODO - need to check for overloads // TODO - need to check for overloads
return matches[0]; return matches.length > 0 ? matches[0] : null;
} catch (CoreException e) { } catch (CoreException e) {
CCorePlugin.log(e); CCorePlugin.log(e);
return null; return null;