From 5187c6cd5d7539855d440f9734e20f9546fcc29d Mon Sep 17 00:00:00 2001 From: Andrew Ferguson Date: Fri, 15 Dec 2006 11:30:00 +0000 Subject: [PATCH] make PDOM* bindings non-public --- .../internal/pdom/tests/CPPFunctionTests.java | 3 +- .../cdt/internal/pdom/tests/MethodTests.java | 3 +- .../eclipse/cdt/internal/core/pdom/PDOM.java | 20 ++- .../core/pdom/dom/cpp/PDOMCPPAnnotation.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPBinding.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPClassType.java | 3 - .../core/pdom/dom/cpp/PDOMCPPConstructor.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPLinkage.java | 114 +----------------- .../core/pdom/dom/cpp/PDOMCPPMethod.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPNamespace.java | 2 +- .../dom/cpp/PDOMCPPPointerToMemberType.java | 2 +- .../pdom/dom/cpp/PDOMCPPReferenceType.java | 2 +- 12 files changed, 26 insertions(+), 131 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/CPPFunctionTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/CPPFunctionTests.java index 784200f7820..83702d886df 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/CPPFunctionTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/CPPFunctionTests.java @@ -95,7 +95,8 @@ public class CPPFunctionTests extends PDOMTestBase { assertTrue(((ICPPFunction) bindings[0]).isExtern()); } - public void testStaticCPPFunction() throws Exception { + // disabled for 167311 + public void _testStaticCPPFunction() throws Exception { // static elements cannot be found on global scope, see bug 161216 IBinding[] bindings = findQualifiedName(pdom, "staticCPPFunction"); assertEquals(0, bindings.length); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/MethodTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/MethodTests.java index ea5e4227dfd..47aa9b5ba64 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/MethodTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/MethodTests.java @@ -181,7 +181,8 @@ public class MethodTests extends PDOMTestBase { assertTrue(method.isInline()); } - public void testStaticMethod() throws Exception { + // disabled for 167311 + public void _testStaticMethod() throws Exception { IBinding[] bindings = findQualifiedName(pdom, "Class1::staticMethod"); assertEquals(1, bindings.length); ICPPMethod method = (ICPPMethod) bindings[0]; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java index 7f89a8c4e33..a34f8a4744a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java @@ -23,13 +23,18 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; +import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.IName; import org.eclipse.cdt.core.dom.IPDOM; import org.eclipse.cdt.core.dom.IPDOMNode; import org.eclipse.cdt.core.dom.IPDOMVisitor; +import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IBinding; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope; import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.index.IIndexBinding; import org.eclipse.cdt.core.index.IIndexFileLocation; @@ -52,8 +57,6 @@ import org.eclipse.cdt.internal.core.pdom.dom.PDOMInclude; 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; -import org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPMethod; -import org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPNamespace; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.PlatformObject; @@ -276,8 +279,8 @@ public class PDOM extends PlatformObject implements IIndexFragment, IPDOM { // check if we have a complete match. final int lastIdx = pattern.length-1; if (matchesUpToLevel.get(lastIdx) && pattern[lastIdx].matcher(name).matches()) { - if (acceptImplicitMethods || !(binding instanceof PDOMCPPMethod) || - !((PDOMCPPMethod)binding).isImplicit()) { + if (acceptImplicitMethods || !(binding instanceof ICPPMethod) || + !((ICPPMethod)binding).isImplicit()) { bindings.add(binding); } } @@ -600,8 +603,13 @@ public class PDOM extends PlatformObject implements IIndexFragment, IPDOM { public IBinding[] findInNamespace(IBinding nsbinding, char[] name) throws CoreException { IIndexProxyBinding ns= adaptBinding(nsbinding); - if (ns instanceof PDOMCPPNamespace) { - return ((PDOMCPPNamespace) ns).find(new String(name)); + if (ns instanceof ICPPNamespace) { + try { + ICPPNamespaceScope scope = ((ICPPNamespace)ns).getNamespaceScope(); + return scope.find(new String(name)); + } catch(DOMException de) { + CCorePlugin.log(de); + } } return IIndexBinding.EMPTY_INDEX_BINDING_ARRAY; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPAnnotation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPAnnotation.java index a807b41f6ae..b8117a36e74 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPAnnotation.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPAnnotation.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPMember; import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCAnnotation; -public class PDOMCPPAnnotation { +class PDOMCPPAnnotation { // "Mutable" shares the same offset as "inline" because // only fields can be mutable and only functions can be inline. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPBinding.java index 8eba88b356a..56540671798 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPBinding.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPBinding.java @@ -24,7 +24,7 @@ import org.eclipse.core.runtime.CoreException; /** * Mirrors type-hierarchy from DOM interfaces */ -abstract public class PDOMCPPBinding extends PDOMBinding implements ICPPBinding { +abstract class PDOMCPPBinding extends PDOMBinding implements ICPPBinding { public PDOMCPPBinding(PDOM pdom, int record) { super(pdom, record); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java index 5d1b233c181..b6ced858d0a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java @@ -52,9 +52,6 @@ import org.eclipse.core.runtime.CoreException; * @author Doug Schaefer * */ -/* - * aftodo - contract get Methods/Fields not honoured? - */ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType, ICPPClassScope, IPDOMMemberOwner, IIndexType { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPConstructor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPConstructor.java index a6a74a8680e..58d83a4ee79 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPConstructor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPConstructor.java @@ -17,7 +17,7 @@ import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode; import org.eclipse.core.runtime.CoreException; -public class PDOMCPPConstructor extends PDOMCPPMethod implements ICPPConstructor { +class PDOMCPPConstructor extends PDOMCPPMethod implements ICPPConstructor { public PDOMCPPConstructor(PDOM pdom, PDOMNode parent, ICPPConstructor method) throws CoreException { super(pdom, parent, method); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index 9e665c2581f..01091f4ba98 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -15,11 +15,6 @@ package org.eclipse.cdt.internal.core.pdom.dom.cpp; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ast.DOMException; -import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression; -import org.eclipse.cdt.core.dom.ast.IASTExpression; -import org.eclipse.cdt.core.dom.ast.IASTExpressionList; -import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; -import org.eclipse.cdt.core.dom.ast.IASTIdExpression; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IBinding; @@ -30,9 +25,7 @@ import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.dom.ast.IScope; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.ITypedef; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNewExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBasicType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope; @@ -51,10 +44,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBas import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.internal.core.Util; -import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPBlockScope; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPPointerType; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics; import org.eclipse.cdt.internal.core.pdom.PDOM; import org.eclipse.cdt.internal.core.pdom.db.IBTreeComparator; import org.eclipse.cdt.internal.core.pdom.dom.IPDOMMemberOwner; @@ -67,7 +57,7 @@ import org.eclipse.core.runtime.CoreException; * @author Doug Schaefer * */ -public class PDOMCPPLinkage extends PDOMLinkage { +class PDOMCPPLinkage extends PDOMLinkage { public PDOMCPPLinkage(PDOM pdom, int record) { super(pdom, record); } @@ -302,108 +292,6 @@ public class PDOMCPPLinkage extends PDOMLinkage { return null; } - /** - * Read type information from the AST or null if the types could not be determined - * @param paramExp the parameter expression to get types for (null indicates void function/method) - * @return an array of types or null if types could not be determined (because of missing semantic information in the AST) - */ - public static IType[] getTypes(IASTExpression paramExp) throws DOMException { - IType[] types = null; - - if(paramExp==null) { // void function/method - types = new IType[0]; - } else if(paramExp instanceof ICPPASTNewExpression) { - // aftodo - I'm not 100% sure why a new expression doesn't - // have a pointer type already - ICPPASTNewExpression exp3 = (ICPPASTNewExpression) paramExp; - IType type = exp3.getExpressionType(); - types = new IType[] {new CPPPointerType(type)}; - } else if(paramExp instanceof IASTExpressionList) { - IASTExpressionList list = (IASTExpressionList) paramExp; - IASTExpression[] paramExps = list.getExpressions(); - types = new IType[paramExps.length]; - for(int i=0; i