Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Schorn2008-02-22 12:25:38 +0000
committerMarkus Schorn2008-02-22 12:25:38 +0000
commit270e8513e64e2f839ff7f3796af8b3ed7f0610a4 (patch)
treeb827d5e35a0629198949adb4cf2ef7222019e87e
parentb803bae59f466cd6b2fd3f7e937ab4324a5044d0 (diff)
downloadorg.eclipse.cdt-270e8513e64e2f839ff7f3796af8b3ed7f0610a4.tar.gz
org.eclipse.cdt-270e8513e64e2f839ff7f3796af8b3ed7f0610a4.tar.xz
org.eclipse.cdt-270e8513e64e2f839ff7f3796af8b3ed7f0610a4.zip
Bindings for names resolved via using declarations, bug 219424.
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java100
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java17
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java21
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java5
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ext/CElementHandleFactory.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPDelegate.java44
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNamespaceAlias.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPUsingDeclaration.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstance.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassSpecialization.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplate.java50
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java66
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredFunctionInstance.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDelegate.java163
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumeration.java25
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumerator.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPField.java29
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFieldSpecialization.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunction.java63
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionInstance.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionSpecialization.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplate.java36
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitTypedef.java53
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPLabel.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPMethod.java47
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespace.java30
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceAlias.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameter.java40
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameterSpecialization.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java124
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateNonTypeParameter.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplates.java21
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedef.java27
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedefSpecialization.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownBinding.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUsingDeclaration.java32
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java35
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java53
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPDelegateCreator.java29
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPInternalBinding.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CIndex.java24
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassType.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumeration.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumerator.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPField.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunction.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPMethod.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespace.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespaceAlias.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPParameter.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTypedef.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPUsingDeclaration.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPVariable.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java22
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java23
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java16
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumerator.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPField.java18
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunction.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java18
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java21
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPMethod.java21
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java18
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespaceAlias.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPParameter.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPTypedef.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUsingDeclaration.java34
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPVariable.java16
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/BaseUITestCase.java1
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/callhierarchy/BasicCallHierarchyTest.java5
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java46
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java30
78 files changed, 418 insertions, 1449 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
index c1341a23673..e17c1801a1a 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
@@ -87,7 +87,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionType;
@@ -1080,17 +1079,17 @@ public class AST2CPPTests extends AST2BaseTest {
ICPPUsingDeclaration using = (ICPPUsingDeclaration) collector
.getName(5).resolveBinding();
- ICPPDelegate[] delegates = using.getDelegates();
+ IBinding[] delegates = using.getDelegates();
assertEquals(delegates.length, 1);
- assertSame(delegates[0].getBinding(), f);
- assertInstances(collector, delegates[0], 2);
+ assertSame(delegates[0], f);
+ assertInstances(collector, delegates[0], 3); // decl + using-decl + ref
assertInstances(collector, A, 2);
assertInstances(collector, X, 3);
ICPPUsingDeclaration using_g = (ICPPUsingDeclaration) collector
.getName(8).resolveBinding();
- assertSame(using_g.getDelegates()[0].getBinding(), g);
- assertInstances(collector, using_g.getDelegates()[0], 2);
+ assertSame(using_g.getDelegates()[0], g);
+ assertInstances(collector, using_g.getDelegates()[0], 3); // decl + using-decl + ref
}
public void testFunctionDeclarations() throws Exception {
@@ -1516,8 +1515,8 @@ public class AST2CPPTests extends AST2BaseTest {
ICPPNamespace A = (ICPPNamespace) col.getName(0).resolveBinding();
IVariable x = (IVariable) col.getName(1).resolveBinding();
ICPPNamespace B = (ICPPNamespace) col.getName(2).resolveBinding();
- assertTrue(B instanceof ICPPDelegate);
- assertSame(((ICPPDelegate) B).getBinding(), A);
+ assertTrue(B instanceof ICPPNamespaceAlias);
+ assertSame(((ICPPNamespaceAlias) B).getBinding(), A);
assertInstances(col, A, 2);
assertInstances(col, B, 2);
@@ -2859,26 +2858,25 @@ public class AST2CPPTests extends AST2BaseTest {
tu.accept(col);
ICPPFunction f_ref = (ICPPFunction) col.getName(12).resolveBinding();
- assertTrue(f_ref instanceof ICPPDelegate);
- IFunction g_ref = (IFunction) col.getName(15).resolveBinding();
+ ICPPFunction g_ref = (ICPPFunction) col.getName(15).resolveBinding();
ICPPFunction f = (ICPPFunction) col.getName(1).resolveBinding();
- assertSame(((ICPPDelegate) f_ref).getBinding(), f);
+ assertSame(f_ref, f);
IFunction g = (IFunction) col.getName(13).resolveBinding();
assertSame(g, g_ref);
- assertInstances(col, f_ref, 1);
+ assertInstances(col, f_ref, 2);
assertInstances(col, g_ref, 2);
String[] s = f_ref.getQualifiedName();
- assertEquals(s[0], "D"); //$NON-NLS-1$
+ assertEquals(s[0], "B"); //$NON-NLS-1$
assertEquals(s[1], "f"); //$NON-NLS-1$
assertTrue(f_ref.isGloballyQualified());
- s = f.getQualifiedName();
- assertEquals(s[0], "B"); //$NON-NLS-1$
- assertEquals(s[1], "f"); //$NON-NLS-1$
+ s = g_ref.getQualifiedName();
+ assertEquals(s[0], "D"); //$NON-NLS-1$
+ assertEquals(s[1], "g"); //$NON-NLS-1$
assertTrue(f.isGloballyQualified());
}
@@ -2901,8 +2899,8 @@ public class AST2CPPTests extends AST2BaseTest {
s = alias.getQualifiedName();
assertEquals(s[0], "CWVLN"); //$NON-NLS-1$
- assertTrue(alias instanceof ICPPDelegate);
- assertSame(((ICPPDelegate) alias).getBinding(), ns);
+ assertTrue(alias instanceof ICPPNamespaceAlias);
+ assertSame(((ICPPNamespaceAlias) alias).getBinding(), ns);
IASTName[] refs = tu.getReferences(ns);
assertEquals(refs.length, 2);
@@ -2944,7 +2942,7 @@ public class AST2CPPTests extends AST2BaseTest {
assertSame(decls[0], col.getName(1));
assertSame(decls[1], col.getName(3));
- ICPPDelegate[] delegates = u.getDelegates();
+ IBinding[] delegates = u.getDelegates();
assertEquals(delegates.length, 2);
decls = tu.getDeclarationsInAST(delegates[0]);
@@ -2952,8 +2950,8 @@ public class AST2CPPTests extends AST2BaseTest {
assertSame(decls[0], col.getName(1));
assertSame(decls[1], col.getName(7));
- decls = tu.getDeclarationsInAST(delegates[0].getBinding());
- assertEquals(1, decls.length);
+ decls = tu.getDeclarationsInAST(delegates[0]);
+ assertEquals(2, decls.length); // function-decl + using-decl
assertSame(decls[0], col.getName(1));
}
@@ -2980,8 +2978,7 @@ public class AST2CPPTests extends AST2BaseTest {
IFunction f_decl = (IFunction) col.getName(10).resolveBinding();
IFunction f_ref = (IFunction) col.getName(19).resolveBinding();
- assertTrue(f_ref instanceof ICPPDelegate);
- assertSame(f_decl, ((ICPPDelegate) f_ref).getBinding());
+ assertSame(f_decl, f_ref);
}
public void testBug86470_3() throws Exception {
@@ -3003,15 +3000,12 @@ public class AST2CPPTests extends AST2BaseTest {
IBinding ref1 = col.getName(8).resolveBinding();
IBinding ref2 = col.getName(9).resolveBinding();
- assertTrue(ref1 instanceof ICPPDelegate);
- assertTrue(ref2 instanceof ICPPDelegate);
-
ICPPClassType g_struct = (ICPPClassType) col.getName(1)
.resolveBinding();
IFunction g_func = (IFunction) col.getName(2).resolveBinding();
- assertSame(g_struct, ((ICPPDelegate) ref2).getBinding());
- assertSame(g_func, ((ICPPDelegate) ref1).getBinding());
+ assertSame(g_struct,ref2);
+ assertSame(g_func, ref1);
ICPPUsingDeclaration comp = (ICPPUsingDeclaration) col.getName(7)
.resolveBinding();
@@ -3048,10 +3042,8 @@ public class AST2CPPTests extends AST2BaseTest {
.resolveBinding();
IVariable x_var = (IVariable) col.getName(1).resolveBinding();
- assertTrue(ref1 instanceof ICPPDelegate);
- assertTrue(ref2 instanceof ICPPDelegate);
- assertSame(x_struct, ((ICPPDelegate) ref2).getBinding());
- assertSame(x_var, ((ICPPDelegate) ref1).getBinding());
+ assertSame(x_struct, ref2);
+ assertSame(x_var, ref1);
IASTName[] refs = tu.getReferences(x_struct);
assertEquals(2, refs.length); // 1 ref + using-decl
@@ -3059,8 +3051,9 @@ public class AST2CPPTests extends AST2BaseTest {
assertSame(refs[1], col.getName(12));
String[] s = ref2.getQualifiedName();
- assertEquals(s[0], "x"); //$NON-NLS-1$
- assertFalse(ref2.isGloballyQualified());
+ assertEquals(s[0], "B"); //$NON-NLS-1$
+ assertEquals(s[1], "x"); //$NON-NLS-1$
+ assertTrue(ref2.isGloballyQualified());
s = x_struct.getQualifiedName();
assertEquals(s[0], "B"); //$NON-NLS-1$
@@ -3087,12 +3080,12 @@ public class AST2CPPTests extends AST2BaseTest {
ICPPFunction f = (ICPPFunction) col.getName(3).resolveBinding();
ICPPFunction f_ref = (ICPPFunction) col.getName(11).resolveBinding();
- assertTrue(f_ref instanceof ICPPDelegate);
- assertSame(((ICPPDelegate) f_ref).getBinding(), f);
+ assertSame( f_ref, f);
String[] s = f_ref.getQualifiedName();
- assertEquals(s[0], "f"); //$NON-NLS-1$
- assertFalse(f_ref.isGloballyQualified());
+ assertEquals(s[0], "A"); //$NON-NLS-1$
+ assertEquals(s[1], "f"); //$NON-NLS-1$
+ assertTrue(f_ref.isGloballyQualified());
s = f.getQualifiedName();
assertEquals(s[0], "A"); //$NON-NLS-1$
@@ -3352,20 +3345,15 @@ public class AST2CPPTests extends AST2BaseTest {
IBinding[] bs = scope.find("f"); //$NON-NLS-1$
assertEquals(bs.length, 3);
assertSame(bs[0], f3);
- assertSame(((ICPPDelegate) bs[1]).getBinding(), f1);
- assertSame(((ICPPDelegate) bs[2]).getBinding(), f2);
+ assertSame( bs[1], f1);
+ assertSame( bs[2], f2);
- String[] s = ((ICPPDelegate) bs[1]).getQualifiedName();
- assertEquals(s.length, 1);
- assertEquals(s[0], "f"); //$NON-NLS-1$
- assertFalse(((ICPPDelegate) bs[1]).isGloballyQualified());
- s = ((ICPPBinding) ((ICPPDelegate) bs[1]).getBinding())
- .getQualifiedName();
+ String[] s = ((ICPPBinding) bs[1]).getQualifiedName();
assertEquals(s.length, 2);
assertEquals(s[0], "A"); //$NON-NLS-1$
assertEquals(s[1], "f"); //$NON-NLS-1$
- assertTrue(((ICPPBinding) ((ICPPDelegate) bs[1]).getBinding())
+ assertTrue(((ICPPBinding) bs[1])
.isGloballyQualified());
}
@@ -5369,9 +5357,9 @@ public class AST2CPPTests extends AST2BaseTest {
ICPPField i = (ICPPField) col.getName(1).resolveBinding();
ICPPUsingDeclaration using = (ICPPUsingDeclaration) col.getName(6).resolveBinding();
- ICPPDelegate [] delegates = using.getDelegates();
+ IBinding[] delegates = using.getDelegates();
assertEquals( delegates.length, 1 );
- assertSame( i, delegates[0].getBinding() );
+ assertSame( i, delegates[0]);
assertSame( i, col.getName(16).resolveBinding() );
}
@@ -5627,18 +5615,18 @@ public class AST2CPPTests extends AST2BaseTest {
// check class
IBinding b= cldef.getName().resolveBinding();
assertEquals(3, tu.getReferences(b).length); // 2 refs + using-decl
- assertEquals(1, tu.getDefinitionsInAST(b).length); // class-def
- assertEquals(1, tu.getDeclarationsInAST(b).length); // class-def
+ assertEquals(2, tu.getDefinitionsInAST(b).length); // class-def + using-decl
+ assertEquals(2, tu.getDeclarationsInAST(b).length); // class-def + using-decl
// check functions
b= fdecl1.getName().resolveBinding();
assertEquals(3, tu.getReferences(b).length); // 2 refs + using-decl
- assertEquals(0, tu.getDefinitionsInAST(b).length); // no def
- assertEquals(1, tu.getDeclarationsInAST(b).length); // func-decl
+ assertEquals(1, tu.getDefinitionsInAST(b).length); // using-decl
+ assertEquals(2, tu.getDeclarationsInAST(b).length); // func-decl + using-decl
b= fdecl2.getName().resolveBinding();
assertEquals(3, tu.getReferences(b).length); // 2 refs + using-decl
- assertEquals(0, tu.getDefinitionsInAST(b).length); // no def
- assertEquals(1, tu.getDeclarationsInAST(b).length); // func-decl
+ assertEquals(1, tu.getDefinitionsInAST(b).length); // using-decl
+ assertEquals(2, tu.getDeclarationsInAST(b).length); // func-decl + using-decl
// check using declaration class
b= udcl.getName().resolveBinding();
@@ -5734,7 +5722,7 @@ public class AST2CPPTests extends AST2BaseTest {
// func(qualified);
// func(unqualified);
// }
- public void _testScopeOfUsingDelegates_Bug219424() throws Exception {
+ public void testScopeOfUsingDelegates_Bug219424() throws Exception {
BindingAssertionHelper bh= new BindingAssertionHelper(getContents(1)[0].toString(), true);
bh.assertNonProblem("cl c", 2);
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
index 13b67046e2f..8ccf2249151 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
@@ -1,19 +1,16 @@
/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM - Initial API and implementation
- * Markus Schorn (Wind River Systems)
- * Bryan Wilkinson (QNX)
- * Andrew Ferguson (Symbian)
+ * IBM - Initial API and implementation
+ * Markus Schorn (Wind River Systems)
+ * Bryan Wilkinson (QNX)
+ * Andrew Ferguson (Symbian)
*******************************************************************************/
-/*
- * Created on Mar 11, 2005
- */
package org.eclipse.cdt.core.parser.tests.ast2;
import java.util.Iterator;
@@ -47,7 +44,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
@@ -1150,8 +1146,7 @@ public class AST2TemplateTests extends AST2BaseTest {
assertSame( ((ICPPTemplateInstance)A3).getTemplateDefinition(), A2 );
ICPPClassTemplate A4 = (ICPPClassTemplate) col.getName(14).resolveBinding();
- assertTrue( A4 instanceof ICPPDelegate );
- assertSame( ((ICPPDelegate)A4).getBinding(), A1 );
+ assertSame( A4, A1 );
}
public void testTemplateTemplateParameter() throws Exception {
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java
index e3d99fab181..76522b8da91 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -55,7 +55,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.CPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMember;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
@@ -106,7 +105,8 @@ public class CompleteParser2Tests extends BaseTestCase {
shouldVisitNames = true;
}
public List nameList = new ArrayList();
- public int visit( IASTName name ){
+ @Override
+ public int visit( IASTName name ){
nameList.add( name );
return PROCESS_CONTINUE;
}
@@ -122,7 +122,8 @@ public class CompleteParser2Tests extends BaseTestCase {
shouldVisitNames = true;
}
public List nameList = new ArrayList();
- public int visit( IASTName name ){
+ @Override
+ public int visit( IASTName name ){
nameList.add( name );
return PROCESS_CONTINUE;
}
@@ -414,10 +415,10 @@ public class CompleteParser2Tests extends BaseTestCase {
assertInstances( col, C, 2 );
assertInstances( col, y, 1 );
- ICPPDelegate [] ds = using_x.getDelegates();
- assertSame( ds[0].getBinding(), x );
- assertSame( using_C.getDelegates()[0].getBinding(), C );
- assertSame( using_y.getDelegates()[0].getBinding(), y );
+ IBinding [] ds = using_x.getDelegates();
+ assertSame( ds[0], x );
+ assertSame( using_C.getDelegates()[0], C );
+ assertSame( using_y.getDelegates()[0], y );
}
public void testEnumerations() throws Exception
@@ -536,8 +537,8 @@ public class CompleteParser2Tests extends BaseTestCase {
assertInstances( col, A, 2 );
assertInstances( col, bar, 1 );
- assertSame( using_foo.getDelegates()[0].getBinding(), foo );
- assertSame( using_bar.getDelegates()[0].getBinding(), bar );
+ assertSame( using_foo.getDelegates()[0], foo );
+ assertSame( using_bar.getDelegates()[0], bar );
}
public void testLinkageSpec() throws Exception
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java
index e3abf8ec051..70fe54991b6 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java
@@ -31,7 +31,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
@@ -700,14 +699,12 @@ public class IndexCPPBindingResolutionBugs extends IndexBindingResolutionTestBas
// }
public void testAdvanceUsingDeclaration_Bug217102() throws Exception {
IBinding cl = getBindingFromASTName("Bar* Foo", 3);
- assertTrue(cl instanceof ICPPDelegate);
- cl= ((ICPPDelegate) cl).getBinding();
+
assertEquals("Bar", cl.getName());
assertTrue(cl instanceof ICPPClassType);
assertEquals("BAR", cl.getScope().getScopeName().toString());
cl = getBindingFromASTName("Bar* pBar", 3);
- cl= ((ICPPDelegate) cl).getBinding();
assertEquals("Bar", cl.getName());
assertTrue(cl instanceof ICPPClassType);
assertEquals("BAR", cl.getScope().getScopeName().toString());
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ext/CElementHandleFactory.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ext/CElementHandleFactory.java
index bd095e552ae..7536f6f33bc 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ext/CElementHandleFactory.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ext/CElementHandleFactory.java
@@ -27,7 +27,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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;
@@ -69,13 +68,7 @@ public class CElementHandleFactory {
public static ICElementHandle internalCreate(ITranslationUnit tu, IBinding binding, boolean definition,
IRegion region, long timestamp) throws CoreException, DOMException {
- if (binding instanceof ICPPDelegate) {
- ICPPDelegate delegate= (ICPPDelegate) binding;
- if (delegate.getDelegateType() == ICPPDelegate.USING_DECLARATION) {
- binding= delegate.getBinding();
- }
- }
-
+
ICElement parentElement= create(tu, binding.getScope());
if (parentElement == null) {
return null;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPDelegate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPDelegate.java
deleted file mode 100644
index 690f2a3d967..00000000000
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPDelegate.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-/*
- * Created on Mar 15, 2005
- */
-package org.eclipse.cdt.core.dom.ast.cpp;
-
-import org.eclipse.cdt.core.dom.ast.IBinding;
-
-/**
- * ICPPDelegate is meant to represent IBindings that are identical in most
- * ways to another binding. Namespace aliases and using declarations will both
- * be represented by delegates
- *
- * @author aniefer
- */
-public interface ICPPDelegate extends ICPPBinding, Cloneable {
- /**
- * Kinds of things delegates can represent
- */
- public static final int NAMESPACE_ALIAS = 1;
- public static final int USING_DECLARATION = 2;
-
- /**
- * What type of delegate is this?
- * @return
- */
- public int getDelegateType();
-
- /**
- * get the original binding that we are a delegate of
- * @return
- */
- public IBinding getBinding();
-}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNamespaceAlias.java
index e6b6ae32573..434ad9f111e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNamespaceAlias.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNamespaceAlias.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,14 +8,18 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-/*
- * Created on Mar 17, 2005
- */
package org.eclipse.cdt.core.dom.ast.cpp;
+import org.eclipse.cdt.core.dom.ast.IBinding;
+
/**
* @author aniefer
*/
-public interface ICPPNamespaceAlias extends ICPPNamespace, ICPPDelegate {
+public interface ICPPNamespaceAlias extends ICPPNamespace {
+
+ /**
+ * get the binding of the original namespace.
+ */
+ public IBinding getBinding();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPUsingDeclaration.java
index 283b7f828d1..c4c63a31621 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPUsingDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPUsingDeclaration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,13 +8,9 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-
-/*
- * Created on Mar 16, 2005
- */
package org.eclipse.cdt.core.dom.ast.cpp;
-import org.eclipse.cdt.core.dom.ast.DOMException;
+import org.eclipse.cdt.core.dom.ast.IBinding;
/**
* A using declaration introduces a name into the declarative region in which
@@ -31,5 +27,5 @@ public interface ICPPUsingDeclaration extends ICPPBinding {
* is a reference.
* @return
*/
- ICPPDelegate [] getDelegates() throws DOMException;
+ IBinding[] getDelegates();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstance.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstance.java
index 3b462f0dd85..0ba059e556c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstance.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassInstance.java
@@ -22,12 +22,10 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPDeferredTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.ObjectMap;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -159,19 +157,13 @@ public class CPPClassInstance extends CPPInstance implements ICPPClassType, ICPP
/* (non-Javadoc)
* @see java.lang.Object#clone()
*/
+ @Override
public Object clone(){
// TODO Auto-generated method stub
return this;
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassType.CPPClassTypeDelegate( usingDecl, this );
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IType#isSameType(org.eclipse.cdt.core.dom.ast.IType)
*/
public boolean isSameType( IType type ) {
@@ -216,6 +208,7 @@ public class CPPClassInstance extends CPPInstance implements ICPPClassType, ICPP
return ICPPMethod.EMPTY_CPPMETHOD_ARRAY;
}
+ @Override
public boolean equals(Object obj) {
return obj instanceof ICPPClassType ? isSameType((ICPPClassType)obj) : false;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassSpecialization.java
index 428b3f3d86f..8de18531b8a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassSpecialization.java
@@ -30,11 +30,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.ObjectMap;
@@ -242,13 +240,7 @@ public class CPPClassSpecialization extends CPPSpecialization implements
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassType.CPPClassTypeDelegate( usingDecl, this );
- }
-
+ @Override
public Object clone() {
// TODO Auto-generated method stub
return this;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplate.java
index 4880f70f3b6..212d7d87724 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplate.java
@@ -37,12 +37,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPSpecialization;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.internal.core.index.IIndexType;
@@ -55,40 +52,6 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
ICPPClassTemplate, ICPPClassType, ICPPInternalClassType, ICPPInternalClassTemplate,
ICPPInternalClassTypeMixinHost {
- public static class CPPClassTemplateDelegate extends CPPClassType.CPPClassTypeDelegate
- implements ICPPClassTemplate, ICPPInternalClassTemplate {
- public CPPClassTemplateDelegate(ICPPUsingDeclaration usingDecl, ICPPClassType cls) {
- super(usingDecl, cls);
- }
- public ICPPClassTemplatePartialSpecialization[] getPartialSpecializations() throws DOMException {
- return ((ICPPClassTemplate)getBinding()).getPartialSpecializations();
- }
- public ICPPTemplateParameter[] getTemplateParameters() throws DOMException {
- return ((ICPPClassTemplate)getBinding()).getTemplateParameters();
- }
- public void addSpecialization(IType[] arguments, ICPPSpecialization specialization) {
- final IBinding binding = getBinding();
- if (binding instanceof ICPPInternalBinding) {
- ((ICPPInternalTemplate)binding).addSpecialization(arguments, specialization);
- }
- }
- public IBinding instantiate(IType[] arguments) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).instantiate(arguments);
- }
- public ICPPSpecialization deferredInstance(IType[] arguments) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).deferredInstance(arguments);
- }
- public ICPPSpecialization getInstance(IType[] arguments) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).getInstance(arguments);
- }
- public void addPartialSpecialization(ICPPClassTemplatePartialSpecialization spec) {
- final IBinding binding = getBinding();
- if (binding instanceof ICPPInternalClassTemplate) {
- ((ICPPInternalClassTemplate)getBinding()).addPartialSpecialization(spec);
- }
- }
- }
-
private class FindDefinitionAction extends CPPASTVisitor {
private char[] nameArray = CPPClassTemplate.this.getNameCharArray();
public IASTName result = null;
@@ -100,6 +63,7 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
shouldVisitDeclarators = true;
}
+ @Override
public int visit(IASTName name) {
if (name instanceof ICPPASTTemplateId || name instanceof ICPPASTQualifiedName)
return PROCESS_CONTINUE;
@@ -128,14 +92,17 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
return PROCESS_CONTINUE;
}
+ @Override
public int visit(IASTDeclaration declaration) {
if (declaration instanceof IASTSimpleDeclaration || declaration instanceof ICPPASTTemplateDeclaration)
return PROCESS_CONTINUE;
return PROCESS_SKIP;
}
+ @Override
public int visit(IASTDeclSpecifier declSpec) {
return (declSpec instanceof ICPPASTCompositeTypeSpecifier) ? PROCESS_CONTINUE : PROCESS_SKIP;
}
+ @Override
public int visit(IASTDeclarator declarator) { return PROCESS_SKIP; }
}
@@ -147,6 +114,7 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
this.mixin= new ClassTypeMixin(this);
}
+ @Override
public ICPPSpecialization deferredInstance(IType[] arguments) {
ICPPSpecialization instance = getInstance(arguments);
if (instance == null) {
@@ -229,15 +197,11 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
partialSpecializations = (ICPPClassTemplatePartialSpecialization[]) ArrayUtil.trim(ICPPClassTemplatePartialSpecialization.class, partialSpecializations);
return partialSpecializations;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassTemplateDelegate(usingDecl, this);
- }
public boolean isSameType(IType type) {
if (type == this)
return true;
- if (type instanceof ITypedef || type instanceof IIndexType || type instanceof ICPPDelegate)
+ if (type instanceof ITypedef || type instanceof IIndexType)
return type.isSameType(this);
return false;
}
@@ -286,6 +250,7 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
return mixin.findField(name);
}
+ @Override
public Object clone() {
try {
return super.clone();
@@ -297,6 +262,7 @@ public class CPPClassTemplate extends CPPTemplateDefinition implements
/* (non-Javadoc)
* For debug purposes only
*/
+ @Override
public String toString() {
return ASTTypeUtil.getType(this);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java
index 33aa975d2ab..1d57269d2e0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java
@@ -40,11 +40,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
@@ -59,56 +57,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPClassType extends PlatformObject implements ICPPInternalClassTypeMixinHost, ICPPClassType, ICPPInternalClassType {
- public static class CPPClassTypeDelegate extends CPPDelegate implements ICPPClassType {
- public CPPClassTypeDelegate( ICPPUsingDeclaration usingDecl, ICPPClassType cls ){
- super( usingDecl, cls );
- }
- public ICPPBase[] getBases() throws DOMException {
- return ((ICPPClassType)getBinding()).getBases();
- }
- public IField[] getFields() throws DOMException {
- return ((ICPPClassType)getBinding()).getFields();
- }
- public IField findField( String name ) throws DOMException {
- return ((ICPPClassType)getBinding()).findField( name );
- }
- public ICPPField[] getDeclaredFields() throws DOMException {
- return ((ICPPClassType)getBinding()).getDeclaredFields();
- }
- public ICPPMethod[] getMethods() throws DOMException {
- return ((ICPPClassType)getBinding()).getMethods();
- }
- public ICPPMethod[] getAllDeclaredMethods() throws DOMException {
- return ((ICPPClassType)getBinding()).getAllDeclaredMethods();
- }
- public ICPPMethod[] getDeclaredMethods() throws DOMException {
- return ((ICPPClassType)getBinding()).getDeclaredMethods();
- }
- public ICPPConstructor[] getConstructors() throws DOMException {
- return ((ICPPClassType)getBinding()).getConstructors();
- }
- public IBinding[] getFriends() throws DOMException {
- return ((ICPPClassType)getBinding()).getFriends();
- }
- public int getKey() throws DOMException {
- return ((ICPPClassType)getBinding()).getKey();
- }
- public IScope getCompositeScope() throws DOMException {
- return ((ICPPClassType)getBinding()).getCompositeScope();
- }
- public ICPPMethod[] getConversionOperators() throws DOMException {
- IBinding binding = getBinding();
- if( binding instanceof ICPPInternalClassType )
- return ((ICPPInternalClassType)binding).getConversionOperators();
- return ICPPMethod.EMPTY_CPPMETHOD_ARRAY;
- }
- public boolean isSameType( IType type ) {
- return ((ICPPClassType)getBinding()).isSameType( type );
- }
- public ICPPClassType[] getNestedClasses() throws DOMException {
- return ((ICPPClassType)getBinding()).getNestedClasses();
- }
- }
public static class CPPClassTypeProblem extends ProblemBinding implements ICPPClassType{
public CPPClassTypeProblem( IASTNode node, int id, char[] arg ) {
super( node, id, arg );
@@ -144,9 +92,11 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
public IScope getCompositeScope() throws DOMException {
throw new DOMException( this );
}
+ @Override
public IScope getParent() throws DOMException {
throw new DOMException( this );
}
+ @Override
public IBinding[] find(String name) throws DOMException {
throw new DOMException( this );
}
@@ -178,6 +128,7 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
shouldVisitDeclarators = true;
}
+ @Override
public int visit( IASTName name ){
if( name instanceof ICPPASTTemplateId )
return PROCESS_SKIP;
@@ -208,14 +159,17 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
return PROCESS_CONTINUE;
}
+ @Override
public int visit( IASTDeclaration declaration ){
if(declaration instanceof IASTSimpleDeclaration || declaration instanceof ICPPASTTemplateDeclaration)
return PROCESS_CONTINUE;
return PROCESS_SKIP;
}
+ @Override
public int visit( IASTDeclSpecifier declSpec ){
return (declSpec instanceof ICPPASTCompositeTypeSpecifier ) ? PROCESS_CONTINUE : PROCESS_SKIP;
}
+ @Override
public int visit( IASTDeclarator declarator ) { return PROCESS_SKIP; }
}
@@ -404,11 +358,6 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
return true;
}
- public ICPPDelegate createDelegate( ICPPUsingDeclaration usingDecl ) {
- return new CPPClassTypeDelegate( usingDecl, this );
- }
-
-
public ILinkage getLinkage() {
return Linkage.CPP_LINKAGE;
}
@@ -418,7 +367,7 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
public boolean isSameType( IType type ) {
if (type == this)
return true;
- if (type instanceof ITypedef || type instanceof IIndexType || type instanceof ICPPDelegate)
+ if (type instanceof ITypedef || type instanceof IIndexType)
return type.isSameType(this);
return false;
}
@@ -467,6 +416,7 @@ public class CPPClassType extends PlatformObject implements ICPPInternalClassTyp
return mixin.findField(name);
}
+ @Override
public Object clone() {
try {
return super.clone();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java
index 34427bfffc7..5ba6ff5bf4e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java
@@ -20,11 +20,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPDeferredTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
/**
@@ -108,14 +106,6 @@ public class CPPDeferredClassInstance extends CPPInstance implements
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.ICompositeType#getKey()
*/
public int getKey() throws DOMException {
@@ -132,7 +122,8 @@ public class CPPDeferredClassInstance extends CPPInstance implements
/* (non-Javadoc)
* @see java.lang.Object#clone()
*/
- public Object clone() {
+ @Override
+ public Object clone() {
return this;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredFunctionInstance.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredFunctionInstance.java
index 4e5786420ee..a600f884e7e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredFunctionInstance.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredFunctionInstance.java
@@ -20,13 +20,11 @@ import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPDeferredTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -68,6 +66,7 @@ public class CPPDeferredFunctionInstance extends CPPInstance implements ICPPFunc
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance#getArguments()
*/
+ @Override
public IType[] getArguments() {
return arguments;
}
@@ -168,14 +167,6 @@ public class CPPDeferredFunctionInstance extends CPPInstance implements ICPPFunc
return ((ICPPFunction)getTemplateDefinition()).takesVarArgs();
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalFunction#isStatic(boolean)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDelegate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDelegate.java
deleted file mode 100644
index ca5c2ac9ff1..00000000000
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDelegate.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Markus Schorn (Wind River Systems)
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.cpp;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.DOMException;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.core.runtime.PlatformObject;
-
-/**
- * @author aniefer
- */
-public class CPPDelegate extends PlatformObject implements ICPPDelegate, ICPPInternalBinding {
- private final IBinding originalBinding;
- private ICPPUsingDeclaration usingDeclaration;
-
- /**
- *
- */
- public CPPDelegate(ICPPUsingDeclaration usingDecl, IBinding original ) {
- this.originalBinding = original;
- this.usingDeclaration = usingDecl;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate#getDelegateType()
- */
- public int getDelegateType() {
- return USING_DECLARATION;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate#getBinding()
- */
- public IBinding getBinding() {
- return originalBinding;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#getQualifiedName()
- */
- public String[] getQualifiedName() {
- return CPPVisitor.getQualifiedName( this );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#getQualifiedNameCharArray()
- */
- public char[][] getQualifiedNameCharArray() {
- return CPPVisitor.getQualifiedNameCharArray( this );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#isGloballyQualified()
- */
- public boolean isGloballyQualified() throws DOMException {
- IScope scope = getScope();
- while( scope != null ){
- if( scope instanceof ICPPBlockScope )
- return false;
- scope = scope.getParent();
- }
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
- */
- public String getName() {
- return usingDeclaration.getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
- */
- public char[] getNameCharArray() {
- return usingDeclaration.getNameCharArray();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
- */
- public IScope getScope() throws DOMException {
- return usingDeclaration.getScope();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#getDeclarations()
- */
- public IASTNode[] getDeclarations() {
- if (usingDeclaration instanceof ICPPInternalBinding) {
- return ((ICPPInternalBinding) usingDeclaration).getDeclarations();
- }
- return IASTNode.EMPTY_NODE_ARRAY;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#getDefinition()
- */
- public IASTNode getDefinition() {
- if (usingDeclaration instanceof ICPPInternalBinding) {
- return ((ICPPInternalBinding) usingDeclaration).getDefinition();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate( ICPPUsingDeclaration decl ) {
- CPPDelegate delegate= (CPPDelegate) clone();
- delegate.usingDeclaration= decl;
- return delegate;
- }
-
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- // cannot be thrown because we implement Clonable
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
- */
- public void addDefinition(IASTNode node) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTNode)
- */
- public void addDeclaration(IASTNode node) {
- }
-
- public void removeDeclaration(IASTNode node) {
- }
-
- public ILinkage getLinkage() {
- return Linkage.CPP_LINKAGE;
- }
-
- public ICPPUsingDeclaration getUsingDeclaration() {
- return usingDeclaration;
- }
-}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumeration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumeration.java
index 8817af98a03..df8942469d6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumeration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumeration.java
@@ -23,8 +23,6 @@ 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.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.core.runtime.PlatformObject;
@@ -33,17 +31,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPEnumeration extends PlatformObject implements IEnumeration, ICPPInternalBinding {
- public static class CPPEnumerationDelegate extends CPPDelegate implements IEnumeration {
- public CPPEnumerationDelegate( ICPPUsingDeclaration name, IEnumeration binding ) {
- super( name, binding );
- }
- public IEnumerator[] getEnumerators() throws DOMException {
- return ((IEnumeration)getBinding()).getEnumerators();
- }
- public boolean isSameType( IType type ) {
- return ((IEnumeration)getBinding()).isSameType( type );
- }
- }
private IASTName enumName;
/**
* @param specifier
@@ -95,7 +82,8 @@ public class CPPEnumeration extends PlatformObject implements IEnumeration, ICPP
return enumName;
}
- public Object clone(){
+ @Override
+ public Object clone(){
IType t = null;
try {
t = (IType) super.clone();
@@ -145,13 +133,6 @@ public class CPPEnumeration extends PlatformObject implements IEnumeration, ICPP
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPEnumerationDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
@@ -178,7 +159,7 @@ public class CPPEnumeration extends PlatformObject implements IEnumeration, ICPP
public boolean isSameType( IType type ) {
if( type == this )
return true;
- if( type instanceof ITypedef || type instanceof IIndexType || type instanceof ICPPDelegate)
+ if( type instanceof ITypedef || type instanceof IIndexType)
return type.isSameType( this );
return false;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumerator.java
index 079ca28744b..5409510a703 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPEnumerator.java
@@ -21,8 +21,6 @@ import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.core.runtime.PlatformObject;
@@ -30,14 +28,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPEnumerator extends PlatformObject implements IEnumerator, ICPPInternalBinding {
- public static class CPPEnumeratorDelegate extends CPPDelegate implements IEnumerator {
- public CPPEnumeratorDelegate( ICPPUsingDeclaration name, IEnumerator binding ) {
- super( name, binding );
- }
- public IType getType() throws DOMException {
- return ((IEnumerator)getBinding()).getType();
- }
- }
private IASTName enumName;
/**
@@ -128,13 +118,6 @@ public class CPPEnumerator extends PlatformObject implements IEnumerator, ICPPIn
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPEnumeratorDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPField.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPField.java
index 77db76e8743..bb2b5ac0b84 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPField.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPField.java
@@ -25,9 +25,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -35,20 +33,6 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
* @author aniefer
*/
public class CPPField extends CPPVariable implements ICPPField, ICPPInternalBinding {
- public static class CPPFieldDelegate extends CPPVariable.CPPVariableDelegate implements ICPPField {
- public CPPFieldDelegate( ICPPUsingDeclaration name, ICPPField binding ) {
- super( name, binding );
- }
- public int getVisibility() throws DOMException {
- return ((ICPPField)getBinding()).getVisibility();
- }
- public ICPPClassType getClassOwner() throws DOMException {
- return ((ICPPField)getBinding()).getClassOwner();
- }
- public ICompositeType getCompositeTypeOwner() throws DOMException {
- return getClassOwner();
- }
- }
public static class CPPFieldProblem extends CPPVariable.CPPVariableProblem implements ICPPField {
/**
* @param id
@@ -160,22 +144,17 @@ public class CPPField extends CPPVariable implements ICPPField, ICPPInternalBind
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable#isMutable()
*/
- public boolean isMutable() {
+ @Override
+ public boolean isMutable() {
return hasStorageClass( ICPPASTDeclSpecifier.sc_mutable);
}
- public boolean isExtern() {
+ @Override
+ public boolean isExtern() {
//7.1.1-5 The extern specifier can not be used in the declaration of class members
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPFieldDelegate( usingDecl, this );
- }
-
public ICompositeType getCompositeTypeOwner() throws DOMException {
return getClassOwner();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFieldSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFieldSpecialization.java
index 2cb2acb1767..09949952e5e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFieldSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFieldSpecialization.java
@@ -16,12 +16,9 @@ import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPField.CPPFieldDelegate;
/**
* @author aniefer
@@ -80,10 +77,6 @@ public class CPPFieldSpecialization extends CPPSpecialization implements ICPPFie
return false;
}
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFieldDelegate( usingDecl, this );
- }
-
public ICompositeType getCompositeTypeOwner() throws DOMException {
return getClassOwner();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunction.java
index 3c5bd9b3d14..0b1a4dde4e8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunction.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunction.java
@@ -24,7 +24,6 @@ import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IFunction;
import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IProblemBinding;
@@ -34,9 +33,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -49,59 +46,6 @@ import org.eclipse.core.runtime.PlatformObject;
*/
public class CPPFunction extends PlatformObject implements ICPPFunction, ICPPInternalFunction {
- public static class CPPFunctionDelegate extends CPPDelegate implements ICPPFunction, ICPPInternalFunction {
- public CPPFunctionDelegate( ICPPUsingDeclaration usingDecl, ICPPFunction binding ) {
- super( usingDecl, binding );
- }
-
- public IParameter[] getParameters() throws DOMException {
- return ((ICPPFunction)getBinding()).getParameters();
- }
- public IScope getFunctionScope() throws DOMException {
- return ((ICPPFunction)getBinding()).getFunctionScope();
- }
- public IFunctionType getType() throws DOMException {
- return ((ICPPFunction)getBinding()).getType();
- }
- public boolean isStatic() throws DOMException {
- return ((ICPPFunction)getBinding()).isStatic();
- }
- public boolean isMutable() throws DOMException {
- return ((ICPPFunction)getBinding()).isMutable();
- }
- public boolean isInline() throws DOMException {
- return ((ICPPFunction)getBinding()).isInline();
- }
- public boolean isExternC() throws DOMException {
- return ((ICPPFunction)getBinding()).isExternC();
- }
- public boolean isExtern() throws DOMException {
- return ((ICPPFunction)getBinding()).isExtern();
- }
- public boolean isAuto() throws DOMException {
- return ((ICPPFunction)getBinding()).isAuto();
- }
- public boolean isRegister() throws DOMException {
- return ((ICPPFunction)getBinding()).isRegister();
- }
- public boolean takesVarArgs() throws DOMException {
- return ((ICPPFunction)getBinding()).takesVarArgs();
- }
- public boolean isStatic( boolean resolveAll) {
- try {
- return ASTInternal.isStatic((IFunction) getBinding(), resolveAll);
- } catch (DOMException e) {
- return false;
- }
- }
- public IBinding resolveParameter( IASTParameterDeclaration param ) {
- final IBinding binding = getBinding();
- if (binding instanceof ICPPInternalFunction) {
- return ((ICPPInternalFunction)binding).resolveParameter( param );
- }
- return null;
- }
- }
public static class CPPFunctionProblem extends ProblemBinding implements ICPPFunction {
public CPPFunctionProblem( IASTNode node, int id, char[] arg ) {
super( node, id, arg );
@@ -507,13 +451,6 @@ public class CPPFunction extends PlatformObject implements ICPPFunction, ICPPInt
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate( ICPPUsingDeclaration usingDecl ) {
- return new CPPFunctionDelegate( usingDecl, this );
- }
-
static public boolean hasStorageClass( ICPPInternalFunction function, int storage){
ICPPASTFunctionDeclarator dtor = (ICPPASTFunctionDeclarator) function.getDefinition();
IASTNode[] ds = function.getDeclarations();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionInstance.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionInstance.java
index 5a281f1d239..f63091c2653 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionInstance.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionInstance.java
@@ -19,13 +19,11 @@ import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -46,13 +44,6 @@ public class CPPFunctionInstance extends CPPInstance implements ICPPFunction, IC
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunction.CPPFunctionDelegate( usingDecl, this );
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IFunction#getParameters()
*/
public IParameter[] getParameters() throws DOMException {
@@ -161,7 +152,8 @@ public class CPPFunctionInstance extends CPPInstance implements ICPPFunction, IC
return null;
}
- public boolean equals(Object obj) {
+ @Override
+ public boolean equals(Object obj) {
if( (obj instanceof ICPPTemplateInstance) && (obj instanceof ICPPFunction)){
try {
ICPPFunctionType ct1= (ICPPFunctionType) ((ICPPFunction)getSpecializedBinding()).getType();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionSpecialization.java
index 2cab96ea53d..e5d8c896440 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionSpecialization.java
@@ -24,14 +24,11 @@ import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.parser.util.ObjectMap;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunction.CPPFunctionDelegate;
/**
* @author aniefer
@@ -154,10 +151,6 @@ public class CPPFunctionSpecialization extends CPPSpecialization implements ICPP
return false;
}
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunctionDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalFunction#resolveParameter(org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration)
*/
@@ -193,7 +186,8 @@ public class CPPFunctionSpecialization extends CPPSpecialization implements ICPP
return null;
}
- public void addDefinition(IASTNode node) {
+ @Override
+ public void addDefinition(IASTNode node) {
IASTNode n = node;
while( n instanceof IASTName )
n = n.getParent();
@@ -202,6 +196,7 @@ public class CPPFunctionSpecialization extends CPPSpecialization implements ICPP
updateParameterBindings( (ICPPASTFunctionDeclarator) n );
super.addDefinition( n );
}
+ @Override
public void addDeclaration(IASTNode node) {
IASTNode n = node;
while( n instanceof IASTName )
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplate.java
index 3cdc08be3fb..0ebc9d4d865 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplate.java
@@ -29,12 +29,10 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
/**
@@ -94,29 +92,6 @@ public class CPPFunctionTemplate extends CPPTemplateDefinition implements ICPPFu
throw new DOMException( this );
}
}
- public static class CPPFunctionTemplateDelegate extends CPPFunction.CPPFunctionDelegate implements ICPPFunctionTemplate, ICPPInternalTemplate {
- public CPPFunctionTemplateDelegate( ICPPUsingDeclaration name, ICPPFunction binding ) {
- super( name, binding );
- }
- public ICPPTemplateParameter[] getTemplateParameters() throws DOMException {
- return ((ICPPFunctionTemplate)getBinding()).getTemplateParameters();
- }
- public void addSpecialization( IType[] arguments, ICPPSpecialization specialization ) {
- final IBinding binding = getBinding();
- if (binding instanceof ICPPInternalBinding) {
- ((ICPPInternalTemplate)getBinding()).addSpecialization( arguments, specialization );
- }
- }
- public IBinding instantiate( IType[] arguments ) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).instantiate( arguments );
- }
- public ICPPSpecialization deferredInstance( IType[] arguments ) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).deferredInstance( arguments );
- }
- public ICPPSpecialization getInstance( IType[] arguments ) {
- return ((ICPPInternalTemplateInstantiator)getBinding()).getInstance( arguments );
- }
- }
protected IFunctionType type = null;
/**
@@ -126,6 +101,7 @@ public class CPPFunctionTemplate extends CPPTemplateDefinition implements ICPPFu
super(name);
}
+ @Override
public void addDefinition(IASTNode node) {
if( !(node instanceof IASTName) )
return;
@@ -136,6 +112,7 @@ public class CPPFunctionTemplate extends CPPTemplateDefinition implements ICPPFu
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
+ @Override
public void addDeclaration(IASTNode node) {
if( !(node instanceof IASTName) )
return;
@@ -300,6 +277,7 @@ public class CPPFunctionTemplate extends CPPTemplateDefinition implements ICPPFu
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateDefinition#deferredInstance(org.eclipse.cdt.core.dom.ast.IType[])
*/
+ @Override
public ICPPSpecialization deferredInstance(IType[] arguments) {
ICPPSpecialization instance = getInstance( arguments );
if( instance == null ){
@@ -424,12 +402,4 @@ public class CPPFunctionTemplate extends CPPTemplateDefinition implements ICPPFu
public boolean isStatic( boolean resolveAll ) {
return hasStorageClass( IASTDeclSpecifier.sc_static );
}
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPFunctionTemplateDelegate( usingDecl, this );
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java
index ab098eba424..cdb3284171c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java
@@ -13,13 +13,11 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
/**
@@ -40,11 +38,6 @@ public class CPPFunctionTemplateSpecialization extends CPPFunctionSpecialization
return template.getTemplateParameters();
}
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
public void addSpecialization(IType[] arguments, ICPPSpecialization specialization) {
if( instances == null )
instances = new ObjectMap(2);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitTypedef.java
index 153bbae7ad6..49a7af5f0d3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitTypedef.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitTypedef.java
@@ -15,8 +15,6 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
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.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
/**
* The CPPImplicitTypedef is used to represent implicit typedefs that exist on the translation
@@ -41,35 +39,40 @@ public class CPPImplicitTypedef extends CPPTypedef implements ITypedef, ICPPInte
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.ITypedef#getType()
*/
- public IType getType() {
+ @Override
+ public IType getType() {
return type;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
*/
- public String getName() {
+ @Override
+ public String getName() {
return String.valueOf(name);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
*/
- public char[] getNameCharArray() {
+ @Override
+ public char[] getNameCharArray() {
return name;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
*/
- public IScope getScope() {
+ @Override
+ public IScope getScope() {
return scope;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IType#isSameType(org.eclipse.cdt.core.dom.ast.IType)
*/
- public boolean isSameType(IType t) {
+ @Override
+ public boolean isSameType(IType t) {
if( t == this )
return true;
if( t instanceof ITypedef ) {
@@ -91,7 +94,8 @@ public class CPPImplicitTypedef extends CPPTypedef implements ITypedef, ICPPInte
/* (non-Javadoc)
* @see java.lang.Object#clone()
*/
- public Object clone(){
+ @Override
+ public Object clone(){
IType t = null;
t = (IType) super.clone();
return t;
@@ -100,49 +104,48 @@ public class CPPImplicitTypedef extends CPPTypedef implements ITypedef, ICPPInte
/**
* returns null
*/
- public IASTNode[] getDeclarations() {
+ @Override
+ public IASTNode[] getDeclarations() {
return null;
}
/**
* returns null
*/
- public IASTNode getDefinition() {
+ @Override
+ public IASTNode getDefinition() {
return null;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPTypedefDelegate( usingDecl, this );
- }
-
+
/**
* does nothing
*/
- public void addDefinition(IASTNode node) {
+ @Override
+ public void addDefinition(IASTNode node) {
// do nothing
}
/**
* does nothing
*/
- public void addDeclaration(IASTNode node) {
+ @Override
+ public void addDeclaration(IASTNode node) {
// do nothing
}
/**
* does nothing
*/
- public void removeDeclaration(IASTNode node) {
+ @Override
+ public void removeDeclaration(IASTNode node) {
// do nothing
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedName()
*/
- public String[] getQualifiedName() {
+ @Override
+ public String[] getQualifiedName() {
String[] temp = new String[1];
temp[0] = String.valueOf(name);
@@ -152,7 +155,8 @@ public class CPPImplicitTypedef extends CPPTypedef implements ITypedef, ICPPInte
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedNameCharArray()
*/
- public char[][] getQualifiedNameCharArray() {
+ @Override
+ public char[][] getQualifiedNameCharArray() {
char[][] temp = new char[1][];
temp[0] = name;
@@ -162,7 +166,8 @@ public class CPPImplicitTypedef extends CPPTypedef implements ITypedef, ICPPInte
/**
* returns true
*/
- public boolean isGloballyQualified() {
+ @Override
+ public boolean isGloballyQualified() {
return true;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPLabel.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPLabel.java
index 3f2a4329aea..c4e06a456ae 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPLabel.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPLabel.java
@@ -17,8 +17,6 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.ILabel;
import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.core.runtime.PlatformObject;
@@ -116,14 +114,6 @@ public class CPPLabel extends PlatformObject implements ILabel, ICPPInternalBind
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- // TODO Auto-generated method stub
- return null;
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPMethod.java
index bd19e8c85f5..bc723df6d6d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPMethod.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPMethod.java
@@ -28,9 +28,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -38,35 +36,6 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
* @author aniefer
*/
public class CPPMethod extends CPPFunction implements ICPPMethod {
- public static class CPPMethodDelegate extends CPPFunction.CPPFunctionDelegate implements ICPPMethod {
- public CPPMethodDelegate( ICPPUsingDeclaration name, ICPPMethod binding ) {
- super( name, binding );
- }
- public int getVisibility() throws DOMException {
- return ((ICPPMethod)getBinding()).getVisibility();
- }
- public ICPPClassType getClassOwner() throws DOMException {
- return ((ICPPMethod)getBinding()).getClassOwner();
- }
- public boolean isVirtual() throws DOMException {
- return ((ICPPMethod)getBinding()).isVirtual();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod#isDestructor()
- */
- public boolean isDestructor() {
- char[] name = getNameCharArray();
- if (name.length > 1 && name[0] == '~')
- return true;
-
- return false;
- }
- public boolean isImplicit() {
- return ((ICPPMethod)getBinding()).isImplicit();
- }
- }
-
public static class CPPMethodProblem extends CPPFunctionProblem implements ICPPMethod {
/**
* @param id
@@ -189,6 +158,7 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
return scope.getClassType();
}
+ @Override
public IScope getScope() {
IASTNode node = (declarations != null && declarations.length > 0) ? declarations[0] : definition;
if( node instanceof IASTDeclarator ){
@@ -202,6 +172,7 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
return CPPVisitor.getContainingScope( node );
}
+ @Override
public String getName() {
if( definition != null ){
IASTName n = definition.getName();
@@ -217,6 +188,7 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
*/
+ @Override
public char[] getNameCharArray() {
if( definition != null ){
IASTName n = definition.getName();
@@ -230,13 +202,6 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPMethodDelegate( usingDecl, this );
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod#isVirtual()
*/
public boolean isVirtual() throws DOMException {
@@ -262,7 +227,8 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction#isInline()
*/
- public boolean isInline() throws DOMException {
+ @Override
+ public boolean isInline() throws DOMException {
IASTDeclaration decl = getPrimaryDeclaration();
if( decl instanceof IASTFunctionDefinition )
return true;
@@ -276,7 +242,8 @@ public class CPPMethod extends CPPFunction implements ICPPMethod {
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction#isMutable()
*/
- public boolean isMutable() {
+ @Override
+ public boolean isMutable() {
return hasStorageClass( this, ICPPASTDeclSpecifier.sc_mutable );
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespace.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespace.java
index ed8b625fa69..445a07dc9e7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespace.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespace.java
@@ -30,10 +30,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLinkageSpecification;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.core.parser.util.ObjectSet;
@@ -46,17 +44,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPInternalBinding {
- public static class CPPNamespaceDelegate extends CPPDelegate implements ICPPNamespace {
- public CPPNamespaceDelegate( ICPPUsingDeclaration name, ICPPNamespace binding ) {
- super( name, binding );
- }
- public ICPPNamespaceScope getNamespaceScope() throws DOMException {
- return ((ICPPNamespace)getBinding()).getNamespaceScope();
- }
- public IBinding[] getMemberBindings() throws DOMException {
- return ((ICPPNamespace)getBinding()).getMemberBindings();
- }
- }
public static class CPPNamespaceProblem extends ProblemBinding implements ICPPNamespace{
public CPPNamespaceProblem( IASTNode node, int id, char[] arg ) {
super( node, id, arg );
@@ -114,7 +101,8 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
this.namespaceDef = ns;
}
- public int visit( ICPPASTNamespaceDefinition namespace) {
+ @Override
+ public int visit( ICPPASTNamespaceDefinition namespace) {
ICPPASTNamespaceDefinition orig = namespaceDef, candidate = namespace;
while( candidate != null ){
if( !CharArrayUtils.equals( orig.getName().toCharArray(), candidate.getName().toCharArray() ) )
@@ -135,7 +123,8 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
return PROCESS_SKIP;
}
- public int visit( IASTDeclaration declaration ){
+ @Override
+ public int visit( IASTDeclaration declaration ){
if( declaration instanceof ICPPASTLinkageSpecification )
return PROCESS_CONTINUE;
return PROCESS_SKIP;
@@ -155,6 +144,7 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
shouldVisitDeclarations = true;
}
+ @Override
public int visit(IASTDeclarator declarator) {
while( declarator.getNestedDeclarator() != null )
declarator = declarator.getNestedDeclarator();
@@ -165,6 +155,7 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
return PROCESS_SKIP;
}
+ @Override
public int visit(IASTDeclSpecifier declSpec) {
if( declSpec instanceof ICPPASTCompositeTypeSpecifier ){
IBinding binding = ((ICPPASTCompositeTypeSpecifier)declSpec).getName().resolveBinding();
@@ -185,12 +176,14 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
}
return PROCESS_SKIP;
}
+ @Override
public int visit(ICPPASTNamespaceDefinition namespace) {
IBinding binding = namespace.getName().resolveBinding();
if( binding != null && !(binding instanceof IProblemBinding) )
members.put( binding );
return PROCESS_SKIP;
}
+ @Override
public int visit(IASTDeclaration declaration) {
if( declaration instanceof ICPPASTUsingDeclaration ){
IBinding binding =((ICPPASTUsingDeclaration)declaration).getName().resolveBinding();
@@ -300,13 +293,6 @@ public class CPPNamespace extends PlatformObject implements ICPPNamespace, ICPPI
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPNamespaceDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceAlias.java
index 0503a431c0e..f99836aac61 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceAlias.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceAlias.java
@@ -18,11 +18,9 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceAlias;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.core.runtime.PlatformObject;
@@ -50,13 +48,6 @@ public class CPPNamespaceAlias extends PlatformObject implements ICPPNamespaceAl
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate#getDelegateType()
- */
- public int getDelegateType() {
- return ICPPDelegate.NAMESPACE_ALIAS;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate#getBinding()
*/
public IBinding getBinding() {
@@ -125,14 +116,6 @@ public class CPPNamespaceAlias extends PlatformObject implements ICPPNamespaceAl
return alias;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- // TODO Auto-generated method stub
- return null;
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameter.java
index 6124835a080..eeb864075e8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameter.java
@@ -21,12 +21,9 @@ import org.eclipse.cdt.core.dom.ast.IASTInitializer;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@@ -37,36 +34,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPInternalBinding {
- public static class CPPParameterDelegate extends CPPDelegate implements ICPPParameter {
- public CPPParameterDelegate( ICPPUsingDeclaration name, IParameter binding ) {
- super( name, binding );
- }
- public IType getType() throws DOMException {
- return ((IParameter)getBinding()).getType();
- }
- public boolean isStatic() throws DOMException {
- return ((IParameter)getBinding()).isStatic();
- }
- public boolean isExtern() {
- return false;
- }
- public boolean isAuto() throws DOMException {
- return ((IParameter)getBinding()).isAuto();
- }
- public boolean isRegister() throws DOMException {
- return ((IParameter)getBinding()).isRegister();
- }
- public boolean isMutable() {
- return false;
- }
- public boolean hasDefaultValue() {
- return ((ICPPParameter)getBinding()).hasDefaultValue();
- }
- public boolean isExternC() {
- return false;
- }
- }
-
public static class CPPParameterProblem extends ProblemBinding implements ICPPParameter {
public CPPParameterProblem( IASTNode node, int id, char[] arg ) {
super( node, id, arg );
@@ -240,13 +207,6 @@ public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPI
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPParameterDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameterSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameterSpecialization.java
index 3495ddb9f48..93ea6b1233f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameterSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPParameterSpecialization.java
@@ -13,12 +13,9 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPParameter.CPPParameterDelegate;
/**
* @author aniefer
@@ -88,10 +85,6 @@ public class CPPParameterSpecialization extends CPPSpecialization implements ICP
return getParameter().hasDefaultValue();
}
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPParameterDelegate( usingDecl, this );
- }
-
public boolean isExternC() {
return false;
}
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 3f5ad847a9b..560088a149b 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
@@ -85,7 +85,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNewExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSwitchStatement;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration;
@@ -103,7 +102,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionType;
@@ -1343,9 +1341,6 @@ public class CPPSemantics {
}
IBinding binding = ( n instanceof IBinding) ? (IBinding)n : ((IASTName)n).resolveBinding();
- while( binding instanceof ICPPDelegate ){
- binding = ((ICPPDelegate)binding).getBinding();
- }
Object [] objs = ( names instanceof Object[] ) ? (Object[])names : null;
int idx = ( objs != null && objs.length > 0 ) ? 0 : -1;
Object o = ( idx != -1 ) ? objs[idx++] : names;
@@ -1355,9 +1350,6 @@ public class CPPSemantics {
if( b instanceof ICPPUsingDeclaration ){
objs = ArrayUtil.append( Object.class, objs, ((ICPPUsingDeclaration)b).getDelegates() );
} else {
- while( b instanceof ICPPDelegate ){
- b = ((ICPPDelegate)b).getBinding();
- }
if( binding != b )
return true;
@@ -2082,12 +2074,6 @@ public class CPPSemantics {
} else if( temp instanceof IType ){
if( type == null ){
type = temp;
- } else if( (temp instanceof ICPPDelegate && ((ICPPDelegate)temp).getBinding() == type) ||
- (type instanceof ICPPDelegate && ((ICPPDelegate)type).getBinding() == temp) ||
- (type instanceof ICPPDelegate && temp instanceof ICPPDelegate &&
- ((ICPPDelegate)type).getBinding() == ((ICPPDelegate)temp).getBinding()) )
- {
- //ok, delegates are synonyms
} else if( type instanceof ICPPClassTemplate && temp instanceof ICPPSpecialization &&
((IType) type).isSameType((IType) ((ICPPSpecialization)temp).getSpecializedBinding()))
{
@@ -2098,9 +2084,7 @@ public class CPPSemantics {
} else {
if( obj == null)
obj = temp;
- else if ( obj == temp ||
- (temp instanceof ICPPDelegate && ((ICPPDelegate)temp).getBinding() == obj) ||
- (obj instanceof ICPPDelegate && ((ICPPDelegate)obj).getBinding() == temp)) {
+ else if ( obj == temp ) {
//ok, delegates are synonyms
}
else {
@@ -2172,9 +2156,6 @@ public class CPPSemantics {
if (binding instanceof ICPPSpecialization) {
return ((ICPPSpecialization) binding).getSpecializedBinding() instanceof IIndexBinding;
}
- if (binding instanceof ICPPDelegate) {
- return ((ICPPDelegate) binding).getBinding() instanceof IIndexBinding;
- }
return false;
}
@@ -2387,52 +2368,39 @@ public class CPPSemantics {
boolean currHasAmbiguousParam = false; //currFn has an ambiguous parameter conversion (ok if not bestFn)
boolean bestHasAmbiguousParam = false; //bestFn has an ambiguous parameter conversion (not ok, ambiguous)
- IType [] sourceParameters = getSourceParameterTypes( data.functionParameters ); //the parameters the function is being called with
- IType [] targetParameters = null;
- boolean sourceVoid = ( data.functionParameters == null || data.functionParameters.length == 0 );
- int numSourceParams = 0;
- int targetLength = 0;
- int numFns = fns.length;
-
- IType impliedObjectType = data.getImpliedObjectArgument();
+ final IType[] sourceParameters = getSourceParameterTypes( data.functionParameters ); //the parameters the function is being called with
+ final boolean sourceVoid = ( data.functionParameters == null || data.functionParameters.length == 0 );
+ final IType impliedObjectType = data.getImpliedObjectArgument();
- outer: for( int fnIdx = 0; fnIdx < numFns; fnIdx++ ){
+ // loop over all functions
+ function_loop: for( int fnIdx = 0; fnIdx < fns.length; fnIdx++ ){
currFn = (IFunction) fns[fnIdx];
-
- if (currFn == null || bestFn == currFn ||
- (bestFn instanceof ICPPDelegate && currFn.equals(((ICPPDelegate)bestFn).getBinding())) ||
- (bestFn != null && currFn instanceof ICPPDelegate && bestFn.equals(((ICPPDelegate)currFn).getBinding())) )
- {
+ if (currFn == null || bestFn == currFn) {
continue;
}
- targetParameters = getTargetParameterTypes( currFn );
-
- targetLength = targetParameters.length;
- boolean useImplicitObj = ( currFn instanceof ICPPMethod && !(currFn instanceof ICPPConstructor) );
- numSourceParams = ( useImplicitObj ) ? sourceParameters.length + 1 : sourceParameters.length;
- int numTargetParams = 0;
+ final IType[] targetParameters = getTargetParameterTypes(currFn);
+ final int useImplicitObj = (currFn instanceof ICPPMethod && !(currFn instanceof ICPPConstructor)) ? 1 : 0;
+ final int sourceLen= Math.max(sourceParameters.length + useImplicitObj, 1);
+ final int numTargetParams= Math.max(targetParameters.length, 1+useImplicitObj);
- if( currFnCost == null || currFnCost.length != ((numSourceParams == 0) ? 1 : numSourceParams) ){
- currFnCost = new Cost [ (numSourceParams == 0) ? 1 : numSourceParams ];
+ if (currFnCost == null || currFnCost.length != sourceLen) {
+ currFnCost= new Cost[sourceLen];
}
comparison = 0;
boolean varArgs = false;
-
- for( int j = 0; j < numSourceParams || j == 0; j++ ){
- if( useImplicitObj ) {
- source = ( j == 0 ) ? impliedObjectType : sourceParameters[j - 1];
- numTargetParams = ( targetLength == 1 ) ? 2 : targetLength;
+ boolean isImpliedObject= false;
+ for (int j = 0; j < sourceLen; j++) {
+ if (useImplicitObj > 0) {
+ isImpliedObject= j==0;
+ source = isImpliedObject ? impliedObjectType : sourceParameters[j - 1];
} else {
source = sourceParameters[j];
- numTargetParams = ( targetLength == 0 ) ? 1 : targetLength;
}
- if( j < numTargetParams ){
- if( (useImplicitObj && targetLength == 1 && j == 1) ||
- (!useImplicitObj && targetLength == 0 && j == 0) )
- {
+ if (j < numTargetParams) {
+ if (j == targetParameters.length) {
target = VOID_TYPE;
} else {
target = targetParameters[j];
@@ -2440,27 +2408,24 @@ public class CPPSemantics {
} else
varArgs = true;
- if( useImplicitObj && j == 0 && ASTInternal.isStatic(currFn, false)) {
+ if (isImpliedObject && ASTInternal.isStatic(currFn, false)) {
//13.3.1-4 for static member functions, the implicit object parameter is considered to match any object
- cost = new Cost( source, target );
+ cost = new Cost(source, target);
cost.rank = Cost.IDENTITY_RANK; //exact match, no cost
- } else if( source == null ){
- continue outer;
- } else if( varArgs ){
- cost = new Cost( source, null );
+ } else if (source == null) {
+ continue function_loop;
+ } else if (varArgs) {
+ cost = new Cost(source, null);
cost.rank = Cost.ELLIPSIS_CONVERSION;
- } else if( source.isSameType( target ) ||
- ( sourceVoid && ((useImplicitObj && j == 1)||(!useImplicitObj && j == 0)) ) )
- {
+ } else if (source.isSameType(target) || (sourceVoid && j == useImplicitObj)) {
cost = new Cost( source, target );
cost.rank = Cost.IDENTITY_RANK; //exact match, no cost
} else {
- cost = checkStandardConversionSequence( source, target );
+ cost = checkStandardConversionSequence( source, target, isImpliedObject);
//12.3-4 At most one user-defined conversion is implicitly applied to
//a single value. (also prevents infinite loop)
- if( (cost.rank == Cost.NO_MATCH_RANK || cost.rank == Cost.FUZZY_TEMPLATE_PARAMETERS ) &&
- !data.forUserDefinedConversion )
- {
+ if (!data.forUserDefinedConversion && (cost.rank == Cost.NO_MATCH_RANK ||
+ cost.rank == Cost.FUZZY_TEMPLATE_PARAMETERS)) {
temp = checkUserDefinedConversionSequence( source, target );
if( temp != null ){
cost = temp;
@@ -2790,15 +2755,24 @@ public class CPPSemantics {
}
return result;
}
-
- static protected Cost checkStandardConversionSequence( IType source, IType target ) throws DOMException {
+ /**
+ * Computes the cost of using the standard conversion sequence from source to target.
+ * @param ignoreDerivedToBaseConversion handles the special case when members of different
+ * classes are nominated via using-declarations. In such a situation the derived to
+ * base conversion does not cause any costs.
+ * @throws DOMException
+ */
+ static protected Cost checkStandardConversionSequence( IType source, IType target, boolean isImplicitThis) throws DOMException {
Cost cost = lvalue_to_rvalue( source, target );
if( cost.source == null || cost.target == null ){
return cost;
}
- if( cost.source.isSameType( cost.target ) ){
+ if (cost.source.isSameType(cost.target) ||
+ // 7.3.3.13 for overload resolution the implicit this pointer is treated as if
+ // it were a pointer to the derived class
+ (isImplicitThis && cost.source instanceof ICPPClassType && cost.target instanceof ICPPClassType)) {
cost.rank = Cost.IDENTITY_RANK;
return cost;
}
@@ -2819,7 +2793,10 @@ public class CPPSemantics {
return cost;
}
- if( s.isSameType( t ) ){
+ if (s.isSameType(t) ||
+ // 7.3.3.13 for overload resolution the implicit this pointer is treated as if
+ // it were a pointer to the derived class
+ (isImplicitThis && s instanceof ICPPClassType && t instanceof ICPPClassType)) {
return cost;
}
@@ -2868,7 +2845,7 @@ public class CPPSemantics {
}
}
if( constructor != null && !constructor.isExplicit() ){
- constructorCost = checkStandardConversionSequence( t, target );
+ constructorCost = checkStandardConversionSequence( t, target, false );
}
}
@@ -2878,7 +2855,7 @@ public class CPPSemantics {
if( ops.length > 0 && !(ops[0] instanceof IProblemBinding) ){
Cost [] costs = null;
for (int i = 0; i < ops.length; i++) {
- cost = checkStandardConversionSequence( ops[i].getType().getReturnType(), target );
+ cost = checkStandardConversionSequence( ops[i].getType().getReturnType(), target, false );
if( cost.rank != Cost.NO_MATCH_RANK )
costs = (Cost[]) ArrayUtil.append( Cost.class, costs, cost );
}
@@ -3483,10 +3460,7 @@ public class CPPSemantics {
if( binding != null )
if( binding instanceof ICPPUsingDeclaration ){
- try {
- set.addAll( ((ICPPUsingDeclaration)binding).getDelegates() );
- } catch (DOMException e) {
- }
+ set.addAll( ((ICPPUsingDeclaration)binding).getDelegates() );
} else if( binding instanceof CPPCompositeBinding ){
set.addAll( ((CPPCompositeBinding)binding).getBindings() );
} else {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateNonTypeParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateNonTypeParameter.java
index 7f2957b4894..75e1da71dfe 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateNonTypeParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateNonTypeParameter.java
@@ -18,9 +18,7 @@ import org.eclipse.cdt.core.dom.ast.IASTInitializerExpression;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateNonTypeParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
/**
* @author aniefer
@@ -95,16 +93,9 @@ public class CPPTemplateNonTypeParameter extends CPPTemplateParameter implements
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
+ @Override
public void addDefinition(IASTNode node) {
// TODO Auto-generated method stub
@@ -113,6 +104,7 @@ public class CPPTemplateNonTypeParameter extends CPPTemplateParameter implements
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
+ @Override
public void addDeclaration(IASTNode node) {
// TODO Auto-generated method stub
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java
index 9b74b97c1bd..912bbc5031c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java
@@ -16,9 +16,7 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@@ -34,6 +32,7 @@ public class CPPTemplateParameter extends PlatformObject implements ICPPTemplate
declarations = new IASTName[] { name };
}
+ @Override
public Object clone() {
IType t = null;
try {
@@ -107,14 +106,6 @@ public class CPPTemplateParameter extends PlatformObject implements ICPPTemplate
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
public void addDefinition(IASTNode node) {
@@ -149,6 +140,7 @@ public class CPPTemplateParameter extends PlatformObject implements ICPPTemplate
return Linkage.CPP_LINKAGE;
}
+ @Override
public String toString() {
return getName();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java
index 27662ebec04..bd29f4deca8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java
@@ -26,14 +26,12 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.ObjectMap;
@@ -217,16 +215,9 @@ public class CPPTemplateTemplateParameter extends CPPTemplateParameter implement
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
+ @Override
public void addDefinition(IASTNode node) {
// TODO Auto-generated method stub
@@ -235,6 +226,7 @@ public class CPPTemplateTemplateParameter extends CPPTemplateParameter implement
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
+ @Override
public void addDeclaration(IASTNode node) {
// TODO Auto-generated method stub
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplates.java
index f0cc7351e9e..b11d8911758 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplates.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplates.java
@@ -1,19 +1,16 @@
/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM - Initial API and implementation
- * Bryan Wilkinson (QNX)
- * Markus Schorn (Wind River Systems)
- * Sergey Prigogin (Google)
+ * IBM - Initial API and implementation
+ * Bryan Wilkinson (QNX)
+ * Markus Schorn (Wind River Systems)
+ * Sergey Prigogin (Google)
*******************************************************************************/
-/*
- * Created on Mar 11, 2005
- */
package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
@@ -849,6 +846,7 @@ public class CPPTemplates {
shouldVisitStatements = true;
this.bindings = bindings;
}
+ @Override
public int visit(IASTName name) {
if (name.getBinding() != null) {
IBinding binding = name.getBinding();
@@ -870,6 +868,7 @@ public class CPPTemplates {
}
return PROCESS_CONTINUE;
}
+ @Override
public int visit(IASTStatement statement) {
return PROCESS_SKIP;
}
@@ -1428,15 +1427,19 @@ public class CPPTemplates {
this.functionParameters = functionParameters;
this.templateParameters = templateParameters;
}
+ @Override
public IParameter[] getParameters() {
return functionParameters;
}
+ @Override
public ICPPTemplateParameter[] getTemplateParameters() {
return templateParameters;
}
+ @Override
public IScope getScope() {
return null;
}
+ @Override
public IFunctionType getType() {
if (type == null) {
type = CPPVisitor.createImplicitFunctionType(new CPPBasicType(IBasicType.t_void, 0), functionParameters);
@@ -1532,7 +1535,7 @@ public class CPPTemplates {
pType = e.getProblem();
}
}
- Cost cost = CPPSemantics.checkStandardConversionSequence(argument, pType);
+ Cost cost = CPPSemantics.checkStandardConversionSequence(argument, pType, false);
if (cost == null || cost.rank == Cost.NO_MATCH_RANK) {
return false;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedef.java
index 07b0cfcf384..d225db0ff6a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedef.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedef.java
@@ -20,8 +20,6 @@ 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.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@@ -32,20 +30,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContainer, ICPPInternalBinding {
- public static class CPPTypedefDelegate extends CPPDelegate implements ITypedef, ITypeContainer {
- public CPPTypedefDelegate(ICPPUsingDeclaration name, ITypedef binding) {
- super(name, binding);
- }
- public IType getType() throws DOMException {
- return ((ITypedef)getBinding()).getType();
- }
- public boolean isSameType(IType type) {
- return ((ITypedef)getBinding()).isSameType(type);
- }
- public void setType(IType type) {
- ((ITypeContainer)getBinding()).setType(type);
- }
- }
private IASTName[] declarations = null;
private IType type = null;
@@ -128,7 +112,8 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
return CPPVisitor.getContainingScope(declarations[0].getParent());
}
- public Object clone() {
+ @Override
+ public Object clone() {
IType t = null;
try {
t = (IType) super.clone();
@@ -164,13 +149,6 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPTypedefDelegate(usingDecl, this);
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
@@ -207,6 +185,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
return Linkage.CPP_LINKAGE;
}
+ @Override
public String toString() {
return getName();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedefSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedefSpecialization.java
index be567c99a5a..7b26695fc1e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedefSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTypedefSpecialization.java
@@ -14,12 +14,9 @@ import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTypedef.CPPTypedefDelegate;
/**
* @author aniefer
@@ -54,7 +51,8 @@ public class CPPTypedefSpecialization extends CPPSpecialization implements
/* (non-Javadoc)
* @see java.lang.Object#clone()
*/
- public Object clone() {
+ @Override
+ public Object clone() {
IType t = null;
try {
t = (IType) super.clone();
@@ -90,13 +88,6 @@ public class CPPTypedefSpecialization extends CPPSpecialization implements
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPTypedefDelegate( usingDecl, this );
- }
-
public void setType(IType type) {
this.type = type;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownBinding.java
index a9811f78daa..b663a3faf32 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownBinding.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownBinding.java
@@ -19,9 +19,7 @@ import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ObjectMap;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -70,13 +68,6 @@ public class CPPUnknownBinding extends PlatformObject implements ICPPInternalUnk
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl1 ) {
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
public void addDefinition( IASTNode node ) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUsingDeclaration.java
index 84e2abcc3c2..e71e7165e39 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUsingDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUsingDeclaration.java
@@ -9,10 +9,6 @@
* IBM Corporation - initial API and implementation
* Markus Schorn (Wind River Systems)
*******************************************************************************/
-
-/*
- * Created on Mar 16, 2005
- */
package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ILinkage;
@@ -24,9 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.core.runtime.PlatformObject;
@@ -35,7 +29,7 @@ import org.eclipse.core.runtime.PlatformObject;
*/
public class CPPUsingDeclaration extends PlatformObject implements ICPPUsingDeclaration, ICPPInternalBinding{
private IASTName name;
- private ICPPDelegate [] delegates;
+ private IBinding [] delegates;
public CPPUsingDeclaration( IASTName name, IBinding [] bindings ) {
if( name instanceof ICPPASTQualifiedName ){
@@ -43,24 +37,13 @@ public class CPPUsingDeclaration extends PlatformObject implements ICPPUsingDecl
name = ns[ ns.length - 1 ];
}
this.name = name;
- this.delegates = createDelegates( bindings );
- }
-
- private ICPPDelegate [] createDelegates( IBinding [] bindings ){
- ICPPDelegate [] result = null;
- for( int i = 0; i < bindings.length; i++ ){
- if( bindings[i] instanceof ICPPDelegateCreator){
- ICPPDelegate delegate = ((ICPPDelegateCreator)bindings[i]).createDelegate( this );
- result = (ICPPDelegate[]) ArrayUtil.append( ICPPDelegate.class, result, delegate );
- }
- }
- return (ICPPDelegate[]) ArrayUtil.trim( ICPPDelegate.class, result );
+ this.delegates= bindings;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration#getDelegates()
*/
- public ICPPDelegate[] getDelegates() {
+ public IBinding[] getDelegates() {
return delegates;
}
@@ -131,13 +114,6 @@ public class CPPUsingDeclaration extends PlatformObject implements ICPPUsingDecl
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate( ICPPUsingDeclaration usingDecl ) {
- return null;
- }
-
- /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
public void addDefinition( IASTNode node ) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java
index 17d83ab9f61..51b52ae6692 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java
@@ -25,8 +25,6 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.Linkage;
@@ -38,32 +36,6 @@ import org.eclipse.core.runtime.PlatformObject;
* @author aniefer
*/
public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInternalVariable {
- public static class CPPVariableDelegate extends CPPDelegate implements ICPPVariable {
- public CPPVariableDelegate( ICPPUsingDeclaration name, ICPPVariable binding ) {
- super( name, binding );
- }
- public IType getType() throws DOMException {
- return ((ICPPVariable)getBinding()).getType();
- }
- public boolean isStatic() throws DOMException {
- return ((ICPPVariable)getBinding()).isStatic();
- }
- public boolean isMutable() throws DOMException {
- return ((ICPPVariable)getBinding()).isMutable();
- }
- public boolean isExtern() throws DOMException {
- return ((ICPPVariable)getBinding()).isExtern();
- }
- public boolean isExternC() throws DOMException {
- return ((ICPPVariable)getBinding()).isExternC();
- }
- public boolean isAuto() throws DOMException {
- return ((ICPPVariable)getBinding()).isAuto();
- }
- public boolean isRegister() throws DOMException {
- return ((ICPPVariable)getBinding()).isRegister();
- }
- }
public static class CPPVariableProblem extends ProblemBinding implements ICPPVariable{
public CPPVariableProblem( IASTNode node, int id, char[] arg ) {
super( node, id, arg );
@@ -285,13 +257,6 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
return true;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#createDelegate(org.eclipse.cdt.core.dom.ast.IASTName)
- */
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl ) {
- return new CPPVariableDelegate( usingDecl, this );
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java
index 22bc6bfbfd7..3c1ff4be251 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java
@@ -118,7 +118,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
@@ -1066,6 +1065,7 @@ public class CPPVisitor {
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration)
*/
+ @Override
public int visit(IASTDeclaration declaration) {
if ( declaration instanceof IASTProblemHolder )
addProblem(((IASTProblemHolder)declaration).getProblem());
@@ -1075,6 +1075,7 @@ public class CPPVisitor {
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processExpression(org.eclipse.cdt.core.dom.ast.IASTExpression)
*/
+ @Override
public int visit(IASTExpression expression) {
if ( expression instanceof IASTProblemHolder )
addProblem(((IASTProblemHolder)expression).getProblem());
@@ -1085,6 +1086,7 @@ public class CPPVisitor {
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processStatement(org.eclipse.cdt.core.dom.ast.IASTStatement)
*/
+ @Override
public int visit(IASTStatement statement) {
if ( statement instanceof IASTProblemHolder )
addProblem(((IASTProblemHolder)statement).getProblem());
@@ -1095,6 +1097,7 @@ public class CPPVisitor {
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processTypeId(org.eclipse.cdt.core.dom.ast.IASTTypeId)
*/
+ @Override
public int visit(IASTTypeId typeId) {
if ( typeId instanceof IASTProblemHolder )
addProblem(((IASTProblemHolder)typeId).getProblem());
@@ -1124,15 +1127,7 @@ public class CPPVisitor {
this.bindings = new IBinding[] {binding};
if (binding instanceof ICPPUsingDeclaration) {
- try {
- ICPPDelegate[] delegates= ((ICPPUsingDeclaration) binding).getDelegates();
- this.bindings= new IBinding[delegates.length+1];
- this.bindings[0]= binding;
- for (int i=0; i < delegates.length; i++) {
- this.bindings[i+1]= delegates[i].getBinding();
- }
- } catch (DOMException e) {
- }
+ this.bindings= ((ICPPUsingDeclaration) binding).getDelegates();
kind= KIND_COMPOSITE;
}
else if( binding instanceof ILabel )
@@ -1152,6 +1147,7 @@ public class CPPVisitor {
kind = KIND_OBJ_FN;
}
+ @Override
public int visit( IASTName name ){
if( name instanceof ICPPASTQualifiedName ) return PROCESS_CONTINUE;
@@ -1245,11 +1241,8 @@ public class CPPVisitor {
}
// a using declaration is a declaration for the references of its delegates
if (nameBinding instanceof ICPPUsingDeclaration) {
- try {
- if (ArrayUtil.contains(((ICPPUsingDeclaration) nameBinding).getDelegates(), bindings[i])) {
- return true;
- }
- } catch (DOMException e) {
+ if (ArrayUtil.contains(((ICPPUsingDeclaration) nameBinding).getDelegates(), bindings[i])) {
+ return true;
}
}
}
@@ -1272,13 +1265,6 @@ public class CPPVisitor {
while(true) {
if (binding instanceof ICPPSpecialization) {
binding= ((ICPPSpecialization) binding).getSpecializedBinding();
- } else if (binding instanceof ICPPDelegate) {
- ICPPDelegate delegate= (ICPPDelegate) binding;
- if (delegate.getDelegateType() == ICPPDelegate.USING_DECLARATION) {
- binding= delegate.getBinding();
- } else {
- break;
- }
} else {
break;
}
@@ -1308,14 +1294,7 @@ public class CPPVisitor {
this.bindings = new IBinding[] {binding};
if (binding instanceof ICPPUsingDeclaration) {
- try {
- ICPPDelegate[] delegates= ((ICPPUsingDeclaration) binding).getDelegates();
- this.bindings= new IBinding[delegates.length];
- for (int i = 0; i < delegates.length; i++) {
- binding= this.bindings[i]= delegates[i].getBinding();
- }
- } catch (DOMException e) {
- }
+ this.bindings= ((ICPPUsingDeclaration) binding).getDelegates();
kind= KIND_COMPOSITE;
} else if( binding instanceof ILabel ) {
kind = KIND_LABEL;
@@ -1332,6 +1311,7 @@ public class CPPVisitor {
}
}
+ @Override
public int visit( IASTName name ){
if( name instanceof ICPPASTQualifiedName || name instanceof ICPPASTTemplateId ) return PROCESS_CONTINUE;
@@ -1417,15 +1397,12 @@ public class CPPVisitor {
}
}
if (nameBinding instanceof ICPPUsingDeclaration) {
- try {
- ICPPDelegate[] delegates= ((ICPPUsingDeclaration) nameBinding).getDelegates();
- for (int i = 0; i < delegates.length; i++) {
- ICPPDelegate delegate = delegates[i];
- if (isReferenceBinding(delegate.getBinding())) {
- return true;
- }
+ IBinding[] delegates= ((ICPPUsingDeclaration) nameBinding).getDelegates();
+ for (int i = 0; i < delegates.length; i++) {
+ IBinding delegate = delegates[i];
+ if (isReferenceBinding(delegate)) {
+ return true;
}
- } catch (DOMException e) {
}
return false;
} else {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPDelegateCreator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPDelegateCreator.java
deleted file mode 100644
index c681144d6f7..00000000000
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPDelegateCreator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2007, 2008 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- * Markus Schorn (Wind River Systems)
- **********************************************************************/
-
-package org.eclipse.cdt.internal.core.dom.parser.cpp;
-
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-
-/**
- * @author Doug Schaefer
- *
- */
-public interface ICPPDelegateCreator {
-
- /**
- * Creates a delegate binding for the using declaration provided.
- * @param usingDecl
- */
- ICPPDelegate createDelegate( ICPPUsingDeclaration usingDecl );
-}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPInternalBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPInternalBinding.java
index b8e00af35cd..6ef3a41928d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPInternalBinding.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ICPPInternalBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,10 +8,6 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-
-/*
- * Created on Jan 24, 2005
- */
package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.IASTNode;
@@ -20,7 +16,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
/**
* @author aniefer
*/
-public interface ICPPInternalBinding extends ICPPBinding, ICPPDelegateCreator {
+public interface ICPPInternalBinding extends ICPPBinding {
//methods required by the CPPVisitor but not meant for the public interface
//implementors should keep the node with the lowest offset in declarations[0]
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CIndex.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CIndex.java
index de71ba24962..d799499567d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CIndex.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CIndex.java
@@ -27,10 +27,8 @@ 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.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.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.index.IIndexBinding;
@@ -42,7 +40,6 @@ import org.eclipse.cdt.core.index.IIndexMacro;
import org.eclipse.cdt.core.index.IIndexName;
import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPDelegate;
import org.eclipse.cdt.internal.core.index.composite.CompositingNotImplementedError;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
import org.eclipse.cdt.internal.core.index.composite.c.CCompositesFactory;
@@ -125,12 +122,7 @@ public class CIndex implements IIndex {
public IIndexName[] findNames(IBinding binding, int flags) throws CoreException {
LinkedList<IIndexFragmentName> result= new LinkedList<IIndexFragmentName>();
if (binding instanceof ICPPUsingDeclaration) {
- ICPPDelegate[] bindings= null;
- try {
- bindings = ((ICPPUsingDeclaration)binding).getDelegates();
- } catch (DOMException e) {
- CCorePlugin.log(e);
- }
+ IBinding[] bindings= ((ICPPUsingDeclaration)binding).getDelegates();
if (bindings == null || bindings.length == 0) {
return new IIndexName[0];
}
@@ -143,18 +135,8 @@ public class CIndex implements IIndex {
return multi.toArray(new IIndexName[multi.size()]);
}
binding= bindings[0];
- } else if (binding instanceof CPPDelegate) {
- CPPDelegate delegate= (CPPDelegate) binding;
- if (delegate.getDelegateType() == ICPPDelegate.USING_DECLARATION) {
- binding= delegate.getBinding();
- IIndexFragmentBinding ib= (IIndexFragmentBinding) delegate.getUsingDeclaration().getAdapter(IIndexFragmentBinding.class);
- if (ib != null) {
- final IIndexFragmentName[] names= ib.getFragment().findNames(ib, flags);
- result.addAll(Arrays.asList(names));
- }
- }
- }
-
+ }
+
int fragCount= 0;
for (int i = 0; i < fPrimaryFragmentCount; i++) {
final IIndexFragmentName[] names = fFragments[i].findNames(binding, flags);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java
index d57a42ceaeb..a362464c689 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java
@@ -18,15 +18,11 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassTemplate;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalTemplateInstantiator;
import org.eclipse.cdt.internal.core.index.CIndex;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
@@ -34,7 +30,7 @@ import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
import org.eclipse.core.runtime.CoreException;
public class CompositeCPPClassTemplate extends CompositeCPPClassType implements
-ICPPClassTemplate, ICPPDelegateCreator, ICPPInternalTemplateInstantiator {
+ICPPClassTemplate, ICPPInternalTemplateInstantiator {
public CompositeCPPClassTemplate(ICompositesFactory cf, ICPPClassType ct) {
super(cf, ct);
@@ -91,8 +87,4 @@ ICPPClassTemplate, ICPPDelegateCreator, ICPPInternalTemplateInstantiator {
return CPPTemplates.instantiateTemplate(this, arguments, null);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassTemplate.CPPClassTemplateDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassType.java
index 400fc752c6f..55f68c99766 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassType.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassType.java
@@ -19,22 +19,19 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBase;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType.CPPClassTypeDelegate;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPClassType extends CompositeCPPBinding implements ICPPClassType, ICPPDelegateCreator, IIndexType {
+class CompositeCPPClassType extends CompositeCPPBinding implements ICPPClassType, IIndexType {
public CompositeCPPClassType(ICompositesFactory cf, ICPPClassType rbinding) {
super(cf, rbinding);
}
+ @Override
public Object clone() {
fail(); return null;
}
@@ -94,7 +91,8 @@ class CompositeCPPClassType extends CompositeCPPBinding implements ICPPClassType
}
}
- public Object clone(){
+ @Override
+ public Object clone(){
return new CPPBaseDelegate(base, true);
}
}
@@ -176,8 +174,4 @@ class CompositeCPPClassType extends CompositeCPPBinding implements ICPPClassType
public boolean isSameType(IType type) {
return ((ICPPClassType)rbinding).isSameType(type);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassTypeDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumeration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumeration.java
index 912c9a3f907..ae83ac7afde 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumeration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumeration.java
@@ -15,15 +15,11 @@ import org.eclipse.cdt.core.dom.ast.IEnumeration;
import org.eclipse.cdt.core.dom.ast.IEnumerator;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPEnumeration.CPPEnumerationDelegate;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPEnumeration extends CompositeCPPBinding implements IEnumeration, ICPPDelegateCreator, IIndexType {
+class CompositeCPPEnumeration extends CompositeCPPBinding implements IEnumeration, IIndexType {
public CompositeCPPEnumeration(ICompositesFactory cf, IEnumeration rbinding) {
super(cf, (ICPPBinding) rbinding);
}
@@ -39,9 +35,6 @@ class CompositeCPPEnumeration extends CompositeCPPBinding implements IEnumeratio
return ((IEnumeration)rbinding).isSameType(type);
}
+ @Override
public Object clone() { fail(); return null; }
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPEnumerationDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumerator.java
index cc8da5cef26..11ef584fc02 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPEnumerator.java
@@ -14,14 +14,10 @@ import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IEnumerator;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPEnumerator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPEnumerator extends CompositeCPPBinding implements IEnumerator, ICPPDelegateCreator {
+class CompositeCPPEnumerator extends CompositeCPPBinding implements IEnumerator {
public CompositeCPPEnumerator(ICompositesFactory cf, IEnumerator rbinding) {
super(cf, (ICPPBinding) rbinding);
}
@@ -30,8 +26,4 @@ class CompositeCPPEnumerator extends CompositeCPPBinding implements IEnumerator,
IType type = ((IEnumerator)rbinding).getType();
return cf.getCompositeType((IIndexType)type);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPEnumerator.CPPEnumeratorDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPField.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPField.java
index 94655786799..427951f45ec 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPField.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPField.java
@@ -15,15 +15,11 @@ import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.IField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPField;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPField extends CompositeCPPVariable implements ICPPField, ICPPDelegateCreator {
+class CompositeCPPField extends CompositeCPPVariable implements ICPPField {
public CompositeCPPField(ICompositesFactory cf, ICPPField rbinding) {
super(cf, rbinding);
}
@@ -41,8 +37,4 @@ class CompositeCPPField extends CompositeCPPVariable implements ICPPField, ICPPD
IBinding preresult = ((IField)rbinding).getCompositeTypeOwner();
return (ICompositeType) cf.getCompositeBinding((IIndexFragmentBinding) preresult);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPField.CPPFieldDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunction.java
index b91005ad141..ecbfa9de705 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunction.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunction.java
@@ -17,16 +17,12 @@ import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunction;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPFunction extends CompositeCPPBinding implements ICPPFunction, ICPPDelegateCreator {
+class CompositeCPPFunction extends CompositeCPPBinding implements ICPPFunction {
public CompositeCPPFunction(ICompositesFactory cf, ICPPFunction rbinding) {
super(cf, rbinding);
@@ -81,10 +77,12 @@ class CompositeCPPFunction extends CompositeCPPBinding implements ICPPFunction,
return ((ICPPFunction)rbinding).takesVarArgs();
}
+ @Override
public Object clone() {
fail(); return null;
}
+ @Override
public String toString() {
StringBuffer result = new StringBuffer();
try {
@@ -94,8 +92,4 @@ class CompositeCPPFunction extends CompositeCPPBinding implements ICPPFunction,
}
return result.toString();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunction.CPPFunctionDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java
index 84cb387d75f..072613379af 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java
@@ -13,19 +13,15 @@ package org.eclipse.cdt.internal.core.index.composite.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunctionTemplate;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalTemplateInstantiator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-public class CompositeCPPFunctionTemplate extends CompositeCPPFunction implements ICPPFunctionTemplate, ICPPInternalTemplateInstantiator, ICPPDelegateCreator {
+public class CompositeCPPFunctionTemplate extends CompositeCPPFunction implements ICPPFunctionTemplate, ICPPInternalTemplateInstantiator {
public CompositeCPPFunctionTemplate(ICompositesFactory cf, ICPPFunction rbinding) {
super(cf, rbinding);
@@ -50,8 +46,4 @@ public class CompositeCPPFunctionTemplate extends CompositeCPPFunction implement
public IBinding instantiate(IType[] arguments) {
return InternalTemplateInstantiatorUtil.instantiate(arguments, cf, rbinding);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunctionTemplate.CPPFunctionTemplateDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPMethod.java
index 9ea52a08282..a8bf72c2ab8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPMethod.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPMethod.java
@@ -12,16 +12,12 @@ package org.eclipse.cdt.internal.core.index.composite.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPMethod;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPMethod extends CompositeCPPFunction implements ICPPMethod, ICPPDelegateCreator {
+class CompositeCPPMethod extends CompositeCPPFunction implements ICPPMethod {
public CompositeCPPMethod(ICompositesFactory cf, ICPPFunction rbinding) {
super(cf, rbinding);
@@ -47,8 +43,4 @@ class CompositeCPPMethod extends CompositeCPPFunction implements ICPPMethod, ICP
public int getVisibility() throws DOMException {
return ((ICPPMethod)rbinding).getVisibility();
}
-
- public final ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPMethod.CPPMethodDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespace.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespace.java
index da34359a08b..0bb7f4c7cd5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespace.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespace.java
@@ -12,16 +12,12 @@ package org.eclipse.cdt.internal.core.index.composite.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNamespace;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPNamespace extends CompositeCPPBinding implements ICPPNamespace, ICPPDelegateCreator {
+class CompositeCPPNamespace extends CompositeCPPBinding implements ICPPNamespace {
ICPPNamespace[] namespaces;
public CompositeCPPNamespace(ICompositesFactory cf, ICPPNamespace[] namespaces) {
super(cf, namespaces[0]);
@@ -41,8 +37,4 @@ class CompositeCPPNamespace extends CompositeCPPBinding implements ICPPNamespace
public ICPPNamespaceScope getNamespaceScope() throws DOMException {
return new CompositeCPPNamespaceScope(cf, namespaces);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPNamespace.CPPNamespaceDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespaceAlias.java
index e1b61d28ea1..1f07fa5c544 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespaceAlias.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPNamespaceAlias.java
@@ -34,8 +34,4 @@ class CompositeCPPNamespaceAlias extends CompositeCPPBinding implements ICPPName
IIndexFragmentBinding ns = (IIndexFragmentBinding) ((ICPPNamespaceAlias)rbinding).getBinding();
return cf.getCompositeBinding(ns);
}
-
- public int getDelegateType() {
- return NAMESPACE_ALIAS;
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPParameter.java
index 49e60103a92..bfc07fff866 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPParameter.java
@@ -10,15 +10,11 @@
*******************************************************************************/
package org.eclipse.cdt.internal.core.index.composite.cpp;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPParameter;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPParameter extends CompositeCPPVariable implements ICPPParameter, ICPPDelegateCreator {
+class CompositeCPPParameter extends CompositeCPPVariable implements ICPPParameter {
public CompositeCPPParameter(ICompositesFactory cf, ICPPVariable rbinding) {
super(cf, rbinding);
}
@@ -26,8 +22,4 @@ class CompositeCPPParameter extends CompositeCPPVariable implements ICPPParamete
public boolean hasDefaultValue() {
return ((ICPPParameter)rbinding).hasDefaultValue();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPParameter.CPPParameterDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTypedef.java
index fb67c94c5a2..9efb5334190 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTypedef.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTypedef.java
@@ -14,10 +14,7 @@ import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTypedef;
import org.eclipse.cdt.internal.core.index.CPPTypedefClone;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
@@ -40,11 +37,8 @@ class CompositeCPPTypedef extends CompositeCPPBinding implements ITypedef, IInde
fail();
}
+ @Override
public Object clone() {
return new CPPTypedefClone(this);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPTypedef.CPPTypedefDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPUsingDeclaration.java
index 1186af675fe..9ce463943a0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPUsingDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPUsingDeclaration.java
@@ -12,10 +12,8 @@ package org.eclipse.cdt.internal.core.index.composite.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
@@ -28,19 +26,16 @@ class CompositeCPPUsingDeclaration extends CompositeCPPBinding implements ICPPUs
fail(); return null;
}
- public ICPPDelegate[] getDelegates() throws DOMException {
- ICPPDelegate[] delegates = ((ICPPUsingDeclaration) rbinding).getDelegates();
- ICPPDelegate[] composites = new ICPPDelegate[delegates.length];
+ public IBinding[] getDelegates() {
+ IBinding[] delegates = ((ICPPUsingDeclaration) rbinding).getDelegates();
+ IBinding[] composites = new IBinding[delegates.length];
int j = 0;
for (int i = 0; i < delegates.length; i++) {
- IBinding binding = delegates[i].getBinding();
+ IBinding binding = delegates[i];
if (binding instanceof IIndexFragmentBinding) {
- binding = cf.getCompositeBinding((IIndexFragmentBinding) binding);
- if (binding instanceof ICPPDelegateCreator) {
- composites[j++] = ((ICPPDelegateCreator) binding).createDelegate(this);
- }
+ composites[j++] = cf.getCompositeBinding((IIndexFragmentBinding) binding);
}
}
- return (ICPPDelegate[]) ArrayUtil.trim(ICPPDelegate.class, composites);
+ return (IBinding[]) ArrayUtil.trim(IBinding.class, composites);
}
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPVariable.java
index 047249d10f0..6c7ec5144f9 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPVariable.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPVariable.java
@@ -13,15 +13,11 @@ package org.eclipse.cdt.internal.core.index.composite.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.index.composite.ICompositesFactory;
-class CompositeCPPVariable extends CompositeCPPBinding implements ICPPVariable, ICPPDelegateCreator {
+class CompositeCPPVariable extends CompositeCPPBinding implements ICPPVariable {
public CompositeCPPVariable(ICompositesFactory cf, ICPPVariable delegate) {
super(cf, delegate);
@@ -55,8 +51,4 @@ class CompositeCPPVariable extends CompositeCPPBinding implements ICPPVariable,
public boolean isStatic() throws DOMException {
return ((ICPPVariable)rbinding).isStatic();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPVariable.CPPVariableDelegate(usingDecl, this);
- }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java
index 8bc912fb33b..479902681ae 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java
@@ -28,13 +28,11 @@ import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.index.IIndexName;
@@ -42,11 +40,9 @@ import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassScope;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassTemplate;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPDeferredClassInstance;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalTemplateInstantiator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexScope;
@@ -62,7 +58,7 @@ import org.eclipse.core.runtime.CoreException;
*/
class PDOMCPPClassTemplate extends PDOMCPPClassType
implements ICPPClassTemplate, ICPPInternalTemplateInstantiator,
- ICPPTemplateScope, ICPPDelegateCreator {
+ ICPPTemplateScope {
private static final int PARAMETERS = PDOMCPPClassType.RECORD_SIZE + 0;
private static final int INSTANCES = PDOMCPPClassType.RECORD_SIZE + 4;
@@ -84,10 +80,12 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
super(pdom, bindingRecord);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPP_CLASS_TEMPLATE;
}
@@ -152,6 +150,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
return null;
}
+ @Override
public IBinding getBinding(IASTName name, boolean resolve, IIndexFileSet fileSet) throws DOMException {
try {
if (getDBName().equals(name.toCharArray())) {
@@ -163,9 +162,11 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
}
IndexFilter filter = new IndexFilter() {
+ @Override
public boolean acceptBinding(IBinding binding) {
return !(binding instanceof ICPPTemplateParameter || binding instanceof ICPPSpecialization);
}
+ @Override
public boolean acceptLinkage(ILinkage linkage) {
return linkage.getLinkageID() == ILinkage.CPP_LINKAGE_ID;
}
@@ -180,6 +181,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
return null;
}
+ @Override
public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet) throws DOMException {
IBinding[] result = null;
try {
@@ -190,9 +192,11 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
result = (IBinding[]) ArrayUtil.append(IBinding.class, result, this);
}
IndexFilter filter = new IndexFilter() {
+ @Override
public boolean acceptBinding(IBinding binding) {
return !(binding instanceof ICPPTemplateParameter || binding instanceof ICPPSpecialization);
}
+ @Override
public boolean acceptLinkage(ILinkage linkage) {
return linkage.getLinkageID() == ILinkage.CPP_LINKAGE_ID;
}
@@ -268,6 +272,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
private PDOMCPPTemplateScope scope;
+ @Override
public IIndexScope getParent() {
if (scope == null) {
scope = new PDOMCPPTemplateScope();
@@ -275,6 +280,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
return scope;
}
+ @Override
public void accept(IPDOMVisitor visitor) throws CoreException {
super.accept(visitor);
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, getLinkageImpl());
@@ -283,6 +289,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
list.accept(visitor);
}
+ @Override
public void addMember(PDOMNode member) throws CoreException {
if (member instanceof ICPPTemplateParameter) {
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, getLinkageImpl());
@@ -370,6 +377,7 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
return CPPTemplates.instantiateTemplate(this, arguments, null);
}
+ @Override
public boolean isSameType(IType type) {
if (type instanceof ITypedef) {
return type.isSameType(this);
@@ -420,8 +428,4 @@ class PDOMCPPClassTemplate extends PDOMCPPClassType
return false;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassTemplate.CPPClassTemplateDelegate(usingDecl, this);
- }
}
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 62e90a3e7a2..ab00c1906c3 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
@@ -36,10 +36,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
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.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.index.IndexFilter;
@@ -47,8 +45,6 @@ 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.CPPClassScope;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType.CPPClassTypeDelegate;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexScope;
import org.eclipse.cdt.internal.core.index.IIndexType;
@@ -67,7 +63,7 @@ import org.eclipse.core.runtime.CoreException;
*
*/
class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
- ICPPClassScope, IPDOMMemberOwner, IIndexType, IIndexScope, ICPPDelegateCreator {
+ ICPPClassScope, IPDOMMemberOwner, IIndexType, IIndexScope {
@SuppressWarnings("static-access")
private static final int FIRSTBASE = PDOMCPPBinding.RECORD_SIZE + 0;
@@ -90,6 +86,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
super(pdom, bindingRecord);
}
+ @Override
public void update(PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof ICPPClassType) {
ICPPClassType ct= (ICPPClassType) newBinding;
@@ -111,10 +108,12 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
list.addMember(member);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPCLASSTYPE;
}
@@ -136,7 +135,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
}
public boolean isSameType(IType type) {
- if (type instanceof ITypedef || type instanceof ICPPDelegate) {
+ if (type instanceof ITypedef) {
return type.isSameType(this);
}
@@ -176,6 +175,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
}
}
+ @Override
public void accept(IPDOMVisitor visitor) throws CoreException {
super.accept(visitor);
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + MEMBERLIST, getLinkageImpl());
@@ -304,6 +304,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
}
}
+ @Override
public boolean isGloballyQualified() throws DOMException {
try {
return getParentNode() instanceof PDOMLinkage;
@@ -316,6 +317,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
return this;
}
+ @Override
public void addChild(PDOMNode member) throws CoreException {
addMember(member);
}
@@ -335,6 +337,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
return true;
}
+ @Override
public IBinding getBinding(IASTName name, boolean resolve, IIndexFileSet fileSet) throws DOMException {
try {
final char[] nameChars = name.toCharArray();
@@ -354,6 +357,7 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
return null;
}
+ @Override
public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet) throws DOMException {
IBinding[] result = null;
try {
@@ -399,10 +403,12 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
// Not implemented
+ @Override
public Object clone() {fail();return null;}
public IField findField(String name) throws DOMException {fail();return null;}
public IBinding[] getFriends() throws DOMException {fail();return null;}
+ @Override
public boolean mayHaveChildren() {
return true;
}
@@ -433,11 +439,8 @@ class PDOMCPPClassType extends PDOMCPPBinding implements ICPPClassType,
public IIndexBinding getScopeBinding() {
return this;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPClassTypeDelegate(usingDecl, this);
- }
+ @Override
public String toString() {
return ASTTypeUtil.getType(this);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
index 908de31dac9..9efb3838657 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumeration.java
@@ -21,10 +21,6 @@ import org.eclipse.cdt.core.dom.ast.IEnumerator;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPEnumeration.CPPEnumerationDelegate;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexType;
import org.eclipse.cdt.internal.core.pdom.PDOM;
@@ -38,7 +34,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*/
class PDOMCPPEnumeration extends PDOMCPPBinding
- implements IEnumeration, IIndexType, ICPPBinding, ICPPDelegateCreator {
+ implements IEnumeration, IIndexType, ICPPBinding {
private static final int FIRST_ENUMERATOR = PDOMBinding.RECORD_SIZE + 0;
@@ -54,10 +50,12 @@ class PDOMCPPEnumeration extends PDOMCPPBinding
super(pdom, record);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPENUMERATION;
}
@@ -100,7 +98,7 @@ class PDOMCPPEnumeration extends PDOMCPPBinding
}
public boolean isSameType(IType type) {
- if (type instanceof ITypedef || type instanceof ICPPDelegate) {
+ if (type instanceof ITypedef) {
return type.isSameType(this);
}
@@ -131,12 +129,8 @@ class PDOMCPPEnumeration extends PDOMCPPBinding
return false;
}
+ @Override
public Object clone() {
throw new PDOMNotImplementedError();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPEnumerationDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumerator.java
index 9fd15bfabc4..0ec78ac70d9 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumerator.java
@@ -16,10 +16,6 @@ import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IEnumerator;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPEnumerator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
@@ -30,7 +26,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*
*/
-class PDOMCPPEnumerator extends PDOMCPPBinding implements IEnumerator, ICPPBinding, ICPPDelegateCreator {
+class PDOMCPPEnumerator extends PDOMCPPBinding implements IEnumerator, ICPPBinding {
private static final int ENUMERATION = PDOMBinding.RECORD_SIZE + 0;
private static final int NEXT_ENUMERATOR = PDOMBinding.RECORD_SIZE + 4;
@@ -49,10 +45,12 @@ class PDOMCPPEnumerator extends PDOMCPPBinding implements IEnumerator, ICPPBindi
super(pdom, record);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPENUMERATOR;
}
@@ -75,9 +73,4 @@ class PDOMCPPEnumerator extends PDOMCPPBinding implements IEnumerator, ICPPBindi
return null;
}
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPEnumerator.CPPEnumeratorDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPField.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPField.java
index f5506764e86..fabca43f6e1 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPField.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPField.java
@@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.pdom.dom.cpp;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPField;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMNode;
@@ -30,7 +26,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*
*/
-class PDOMCPPField extends PDOMCPPVariable implements ICPPField, ICPPDelegateCreator {
+class PDOMCPPField extends PDOMCPPVariable implements ICPPField {
public PDOMCPPField(PDOM pdom, PDOMNode parent, ICPPField field)
throws CoreException {
@@ -42,11 +38,13 @@ class PDOMCPPField extends PDOMCPPVariable implements ICPPField, ICPPDelegateCre
}
// @Override
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
// @Override
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPFIELD;
}
@@ -65,28 +63,33 @@ class PDOMCPPField extends PDOMCPPVariable implements ICPPField, ICPPDelegateCre
}
// @Override
+ @Override
public boolean isMutable() {
return getBit(getByte(record + ANNOTATIONS), PDOMCPPAnnotation.MUTABLE_OFFSET);
}
// @Override
+ @Override
public boolean isAuto() {
// ISO/IEC 14882:2003 9.2.6
return false;
}
// @Override
+ @Override
public boolean isExtern() {
// ISO/IEC 14882:2003 9.2.6
return false;
}
// @Override
+ @Override
public boolean isExternC() {
return false;
}
// @Override
+ @Override
public boolean isRegister() {
// ISO/IEC 14882:2003 9.2.6
return false;
@@ -95,9 +98,4 @@ class PDOMCPPField extends PDOMCPPVariable implements ICPPField, ICPPDelegateCre
public ICompositeType getCompositeTypeOwner() {
return getClassOwner();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPField.CPPFieldDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunction.java
index 99f063f23e4..e5a7f369148 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunction.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunction.java
@@ -22,13 +22,9 @@ import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.Util;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunction;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IndexCPPSignatureUtil;
import org.eclipse.cdt.internal.core.pdom.PDOM;
@@ -45,7 +41,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*
*/
-class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverloader, ICPPDelegateCreator {
+class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverloader {
/**
* Offset of total number of function parameters (relative to the
@@ -108,6 +104,7 @@ class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverl
setParameters(pft, params);
}
+ @Override
public void update(final PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof ICPPFunction) {
IFunction func= (ICPPFunction) newBinding;
@@ -164,10 +161,12 @@ class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverl
super(pdom, bindingRecord);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPFUNCTION;
}
@@ -248,15 +247,18 @@ class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverl
return getBit(getByte(record + ANNOTATION), PDOMCAnnotation.VARARGS_OFFSET);
}
+ @Override
public Object clone() {
throw new PDOMNotImplementedError();
}
+ @Override
public int pdomCompareTo(PDOMBinding other) {
int cmp= super.pdomCompareTo(other);
return cmp==0 ? compareSignatures(this, other) : cmp;
}
+ @Override
public String toString() {
StringBuffer result = new StringBuffer();
result.append(getName()+" "+ASTTypeUtil.getParameterTypeString(getType())); //$NON-NLS-1$
@@ -283,9 +285,4 @@ class PDOMCPPFunction extends PDOMCPPBinding implements ICPPFunction, IPDOMOverl
}
return 0;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunction.CPPFunctionDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java
index cfa16346f5a..90d200c7cfd 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java
@@ -21,7 +21,6 @@ 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.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization;
@@ -29,15 +28,12 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateDefinition;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPDeferredFunctionInstance;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunctionTemplate;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalTemplateInstantiator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexScope;
@@ -55,7 +51,7 @@ import org.eclipse.core.runtime.CoreException;
*/
class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
ICPPFunctionTemplate, ICPPInternalTemplateInstantiator,
- IPDOMMemberOwner, ICPPTemplateScope, IIndexScope, ICPPDelegateCreator {
+ IPDOMMemberOwner, ICPPTemplateScope, IIndexScope {
private static final int TEMPLATE_PARAMS = PDOMCPPFunction.RECORD_SIZE + 0;
private static final int INSTANCES = PDOMCPPFunction.RECORD_SIZE + 4;
@@ -76,14 +72,17 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
super(pdom, bindingRecord);
}
+ @Override
public void update(PDOMLinkage linkage, IBinding name) {
// no support for updating templates, yet.
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPP_FUNCTION_TEMPLATE;
}
@@ -170,6 +169,7 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
return CPPTemplates.instantiateTemplate(this, arguments, null);
}
+ @Override
public void addChild(PDOMNode child) throws CoreException {
addMember(child);
}
@@ -187,6 +187,7 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
}
}
+ @Override
public void accept(IPDOMVisitor visitor) throws CoreException {
super.accept(visitor);
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + TEMPLATE_PARAMS, getLinkageImpl());
@@ -203,6 +204,7 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
return CPPSemantics.findBindings( this, name, false );
}
+ @Override
public IBinding getBinding(IASTName name, boolean resolve, IIndexFileSet fileSet)
throws DOMException {
try {
@@ -217,6 +219,7 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
return null;
}
+ @Override
public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet)
throws DOMException {
IBinding[] result = null;
@@ -234,9 +237,4 @@ class PDOMCPPFunctionTemplate extends PDOMCPPFunction implements
public IIndexBinding getScopeBinding() {
return this;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPFunctionTemplate.CPPFunctionTemplateDelegate(usingDecl, this);
- }
-
}
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 f94a2e997b3..714502cf97e 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
@@ -44,7 +44,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPDeferredTemplateInstance;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
@@ -198,6 +197,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
List<Runnable> postProcesses = new ArrayList<Runnable>();
+ @Override
public PDOMBinding addBinding(IASTName name) throws CoreException {
if (name == null || name instanceof ICPPASTQualifiedName)
return null;
@@ -230,14 +230,13 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
return pdomBinding;
}
+ @Override
public PDOMBinding addBinding(IBinding binding, IASTName fromName) throws CoreException {
// assign names to anonymous types.
binding= PDOMASTAdapter.getAdapterForAnonymousASTBinding(binding);
if (binding == null) {
return null;
}
- // references to the using-declarations delegates are stored with the original binding.
- binding = unwrapUsingDelarationDelegates(binding);
PDOMBinding pdomBinding = adaptBinding(binding);
if (pdomBinding != null) {
@@ -261,18 +260,6 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
return pdomBinding;
}
- private IBinding unwrapUsingDelarationDelegates(IBinding binding) {
- while (binding instanceof ICPPDelegate) {
- ICPPDelegate d= (ICPPDelegate) binding;
- if (d.getDelegateType() == ICPPDelegate.USING_DECLARATION) {
- binding= d.getBinding();
- } else {
- break;
- }
- }
- return binding;
- }
-
private void addConstructors(PDOMBinding pdomBinding, ICPPClassType binding)
throws DOMException, CoreException {
ICPPConstructor[] constructors = binding.getConstructors();
@@ -582,9 +569,6 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
*/
@Override
public PDOMBinding doAdaptBinding(IBinding binding) throws CoreException {
- // references to using-declarations are stored with the original binding.
- binding= unwrapUsingDelarationDelegates(binding);
-
PDOMNode parent = getAdaptedParent(binding, false);
if (parent == this) {
int localToFileRec= getLocalToFileRec(null, binding);
@@ -857,6 +841,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants {
}
}
+ @Override
public IBTreeComparator getIndexComparator() {
return new CPPFindBinding.CPPBindingBTreeComparator(pdom);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPMethod.java
index 5806c5290f7..2b2944acf89 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPMethod.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPMethod.java
@@ -25,13 +25,9 @@ import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFieldReference;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPReferenceType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.internal.core.Util;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPMethod;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.db.Database;
@@ -46,7 +42,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*
*/
-class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateCreator {
+class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod {
/**
* Offset of remaining annotation information (relative to the beginning of
@@ -82,6 +78,7 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
super(pdom, record);
}
+ @Override
public void update(final PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof ICPPMethod) {
ICPPMethod method= (ICPPMethod) newBinding;
@@ -94,10 +91,12 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
}
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPMETHOD;
}
@@ -110,6 +109,7 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
return getBit(getByte(record + ANNOTATION1), PDOMCPPAnnotation.DESTRUCTOR_OFFSET);
}
+ @Override
public boolean isMutable() throws DOMException {
throw new PDOMNotImplementedError();
}
@@ -118,24 +118,29 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
return getBit(getByte(record + ANNOTATION1), PDOMCPPAnnotation.IMPLICIT_METHOD_OFFSET);
}
+ @Override
public IScope getFunctionScope() throws DOMException {
throw new PDOMNotImplementedError();
}
+ @Override
public boolean isExtern() throws DOMException {
// ISO/IEC 14882:2003 9.2.6
return false;
}
+ @Override
public boolean isExternC() {
return false;
}
+ @Override
public boolean isAuto() throws DOMException {
// ISO/IEC 14882:2003 9.2.6
return false;
}
+ @Override
public boolean isRegister() throws DOMException {
// ISO/IEC 14882:2003 9.2.6
return false;
@@ -154,6 +159,7 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
}
}
+ @Override
public Object clone() {
throw new PDOMNotImplementedError();
}
@@ -165,11 +171,8 @@ class PDOMCPPMethod extends PDOMCPPFunction implements ICPPMethod, ICPPDelegateC
public boolean isVolatile() {
return getBit(getByte(record + ANNOTATION1), PDOMCAnnotation.VOLATILE_OFFSET + CV_OFFSET);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPMethod.CPPMethodDelegate(usingDecl, this);
- }
+ @Override
public int getAdditionalNameFlags(int standardFlags, IASTName name) {
if ((standardFlags & PDOMName.IS_REFERENCE) == PDOMName.IS_REFERENCE) {
IASTNode parent= name.getParent();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java
index 52b95eb6e88..54ee7a39d61 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespace.java
@@ -21,18 +21,14 @@ 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.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDirective;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNamespace;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexScope;
import org.eclipse.cdt.internal.core.pdom.PDOM;
@@ -48,7 +44,7 @@ import org.eclipse.core.runtime.CoreException;
*
*/
class PDOMCPPNamespace extends PDOMCPPBinding
- implements ICPPNamespace, ICPPNamespaceScope, IIndexScope, ICPPDelegateCreator {
+ implements ICPPNamespace, ICPPNamespaceScope, IIndexScope {
private static final int INDEX_OFFSET = PDOMBinding.RECORD_SIZE + 0;
@@ -63,10 +59,12 @@ class PDOMCPPNamespace extends PDOMCPPBinding
super(pdom, record);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPNAMESPACE;
}
@@ -75,6 +73,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding
return new BTree(pdom.getDB(), record + INDEX_OFFSET, getLinkageImpl().getIndexComparator());
}
+ @Override
public void accept(final IPDOMVisitor visitor) throws CoreException {
if (visitor instanceof IBTreeVisitor) {
getIndex().accept((IBTreeVisitor) visitor);
@@ -97,6 +96,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding
}
}
+ @Override
public void addChild(PDOMNode child) throws CoreException {
getIndex().insert(child.getRecord());
}
@@ -120,6 +120,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding
return IIndexBinding.EMPTY_INDEX_BINDING_ARRAY;
}
+ @Override
public IBinding getBinding(IASTName name, boolean resolve, IIndexFileSet fileSet) throws DOMException {
try {
IBinding[] bindings= getBindingsViaCache(name.toCharArray());
@@ -133,6 +134,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding
return null;
}
+ @Override
public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup, IIndexFileSet fileSet) throws DOMException {
IBinding[] result = null;
try {
@@ -169,6 +171,7 @@ class PDOMCPPNamespace extends PDOMCPPBinding
return true;
}
+ @Override
public boolean mayHaveChildren() {
return true;
}
@@ -198,9 +201,4 @@ class PDOMCPPNamespace extends PDOMCPPBinding
public IIndexBinding getScopeBinding() {
return this;
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPNamespace.CPPNamespaceDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespaceAlias.java
index 50cd4cdc876..c9560e2575f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespaceAlias.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPNamespaceAlias.java
@@ -46,6 +46,7 @@ class PDOMCPPNamespaceAlias extends PDOMCPPBinding implements ICPPNamespaceAlias
super(pdom, record);
}
+ @Override
public void update(final PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof ICPPNamespaceAlias) {
ICPPNamespaceAlias alias= (ICPPNamespaceAlias) newBinding;
@@ -64,10 +65,12 @@ class PDOMCPPNamespaceAlias extends PDOMCPPBinding implements ICPPNamespaceAlias
namespace != null ? namespace.getRecord() : 0);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPNAMESPACEALIAS;
}
@@ -95,10 +98,6 @@ class PDOMCPPNamespaceAlias extends PDOMCPPBinding implements ICPPNamespaceAlias
throw new PDOMNotImplementedError();
}
- public int getDelegateType() {
- return NAMESPACE_ALIAS;
- }
-
public IBinding getBinding() {
try {
return (IBinding) getLinkageImpl().getNode(getPDOM().getDB().getInt(record + NAMESPACE_BINDING));
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPParameter.java
index d36858deca3..3dbbf113e22 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPParameter.java
@@ -17,13 +17,9 @@ import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.index.IIndexFile;
import org.eclipse.cdt.internal.core.Util;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPParameter;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexFragment;
import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding;
@@ -42,7 +38,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*/
class PDOMCPPParameter extends PDOMNamedNode
- implements ICPPParameter, IIndexFragmentBinding, ICPPDelegateCreator {
+ implements ICPPParameter, IIndexFragmentBinding {
/**
* Offset of pointer to the next parameter (relative to the
@@ -119,10 +115,12 @@ class PDOMCPPParameter extends PDOMNamedNode
return flags;
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPPARAMETER;
}
@@ -199,6 +197,7 @@ class PDOMCPPParameter extends PDOMNamedNode
return null;
}
+ @Override
public char[] getNameCharArray() {
try {
return super.getNameCharArray();
@@ -243,11 +242,8 @@ class PDOMCPPParameter extends PDOMNamedNode
public int getBindingConstant() {
return getNodeType();
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPParameter.CPPParameterDelegate(usingDecl, this);
- }
+ @Override
public void delete(PDOMLinkage linkage) throws CoreException {
linkage.deleteType(getType(), record);
PDOMCPPParameter next= getNextParameter();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPTypedef.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPTypedef.java
index 20d155a996f..8d976ac9e35 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPTypedef.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPTypedef.java
@@ -17,13 +17,9 @@ import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IFunctionType;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
import org.eclipse.cdt.internal.core.Util;
import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTypedef;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.CPPTypedefClone;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.index.IIndexType;
@@ -37,7 +33,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*/
class PDOMCPPTypedef extends PDOMCPPBinding
- implements ITypedef, ITypeContainer, IIndexType, ICPPDelegateCreator {
+ implements ITypedef, ITypeContainer, IIndexType {
private static final int TYPE = PDOMBinding.RECORD_SIZE + 0;
@@ -58,6 +54,7 @@ class PDOMCPPTypedef extends PDOMCPPBinding
super(pdom, record);
}
+ @Override
public void update(final PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof ITypedef) {
ITypedef td= (ITypedef) newBinding;
@@ -114,10 +111,12 @@ class PDOMCPPTypedef extends PDOMCPPBinding
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPTYPEDEF;
}
@@ -152,12 +151,8 @@ class PDOMCPPTypedef extends PDOMCPPBinding
public void setType(IType type) { fail(); }
+ @Override
public Object clone() {
return new CPPTypedefClone(this);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPTypedef.CPPTypedefDelegate(usingDecl, this);
- }
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUsingDeclaration.java
index b94c8be5564..f5c4dc05886 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUsingDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUsingDeclaration.java
@@ -11,12 +11,9 @@
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.IBinding;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
@@ -40,18 +37,12 @@ class PDOMCPPUsingDeclaration extends PDOMCPPBinding implements ICPPUsingDeclara
private static final int NEXT_DELEGATE = PDOMCPPBinding.RECORD_SIZE + 4;
@SuppressWarnings({ "hiding", "static-access" })
protected static final int RECORD_SIZE = PDOMCPPBinding.RECORD_SIZE + 8;
- private ICPPDelegate[] delegates;
+ private IBinding[] delegates;
public PDOMCPPUsingDeclaration(PDOM pdom, PDOMNode parent, ICPPUsingDeclaration using)
throws CoreException {
super(pdom, parent, using.getNameCharArray());
- ICPPDelegate[] delegates;
- try {
- delegates = using.getDelegates();
- } catch (DOMException e) {
- CCorePlugin.log(e);
- return;
- }
+ IBinding[] delegates= using.getDelegates();
int nextRecord = 0;
for (int i = delegates.length; --i >= 0;) {
PDOMCPPUsingDeclaration simpleUsing = i > 0 ?
@@ -70,36 +61,37 @@ class PDOMCPPUsingDeclaration extends PDOMCPPBinding implements ICPPUsingDeclara
super(pdom, parent, name);
}
- private void setTargetBinding(PDOMLinkage linkage, ICPPDelegate delegate) throws CoreException {
- PDOMBinding target = getLinkageImpl().adaptBinding(delegate.getBinding());
+ private void setTargetBinding(PDOMLinkage linkage, IBinding delegate) throws CoreException {
+ PDOMBinding target = getLinkageImpl().adaptBinding(delegate);
pdom.getDB().putInt(record + TARGET_BINDING, target != null ? target.getRecord() : 0);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPP_USING_DECLARATION;
}
- public ICPPDelegate[] getDelegates() {
+ public IBinding[] getDelegates() {
if (delegates == null) {
- delegates = new ICPPDelegate[1];
+ delegates = new IBinding[1];
int i = 0;
PDOMCPPUsingDeclaration alias = this;
try {
do {
- IBinding binding = alias.getBinding();
- if (binding instanceof ICPPDelegateCreator) {
- ICPPDelegate delegate = ((ICPPDelegateCreator) binding).createDelegate(this);
- delegates= (ICPPDelegate[]) ArrayUtil.append(ICPPDelegate.class, delegates, i++, delegate);
- }
+ IBinding delegate = alias.getBinding();
+ if (delegate != null) {
+ delegates= (IBinding[]) ArrayUtil.append(IBinding.class, delegates, i++, delegate);
+ }
} while ((alias = alias.getNext()) != null);
} catch (CoreException e) {
CCorePlugin.log(e);
}
- delegates = (ICPPDelegate[]) ArrayUtil.trim(ICPPDelegate.class, delegates);
+ delegates = (IBinding[]) ArrayUtil.trim(IBinding.class, delegates);
}
return delegates;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPVariable.java
index 64970fc0bb5..91cdf17bf4a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPVariable.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPVariable.java
@@ -19,12 +19,8 @@ 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.IVariable;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable;
import org.eclipse.cdt.internal.core.Util;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDelegateCreator;
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.db.Database;
@@ -39,7 +35,7 @@ import org.eclipse.core.runtime.CoreException;
* @author Doug Schaefer
*
*/
-class PDOMCPPVariable extends PDOMCPPBinding implements ICPPVariable, ICPPDelegateCreator {
+class PDOMCPPVariable extends PDOMCPPBinding implements ICPPVariable {
/**
* Offset of pointer to type information for this parameter
@@ -72,6 +68,7 @@ class PDOMCPPVariable extends PDOMCPPBinding implements ICPPVariable, ICPPDelega
}
}
+ @Override
public void update(final PDOMLinkage linkage, IBinding newBinding) throws CoreException {
if (newBinding instanceof IVariable) {
IVariable var= (IVariable) newBinding;
@@ -103,10 +100,12 @@ class PDOMCPPVariable extends PDOMCPPBinding implements ICPPVariable, ICPPDelega
super(pdom, record);
}
+ @Override
protected int getRecordSize() {
return RECORD_SIZE;
}
+ @Override
public int getNodeType() {
return IIndexCPPBindingConstants.CPPVARIABLE;
}
@@ -145,11 +144,8 @@ class PDOMCPPVariable extends PDOMCPPBinding implements ICPPVariable, ICPPDelega
public boolean isStatic() throws DOMException {
return getBit(getByte(record + ANNOTATIONS), PDOMCAnnotation.STATIC_OFFSET);
}
-
- public ICPPDelegate createDelegate(ICPPUsingDeclaration usingDecl) {
- return new CPPVariable.CPPVariableDelegate(usingDecl, this);
- }
-
+
+ @Override
public int getAdditionalNameFlags(int standardFlags, IASTName name) {
if ((standardFlags & PDOMName.IS_REFERENCE) == PDOMName.IS_REFERENCE) {
return CPPVariableReadWriteFlags.getReadWriteFlags(name);
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/BaseUITestCase.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/BaseUITestCase.java
index f7fa06fa36f..091badedf65 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/BaseUITestCase.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/BaseUITestCase.java
@@ -349,7 +349,6 @@ public class BaseUITestCase extends BaseTestCase {
}
runEventQueue(10);
}
- runEventQueue(30000);
fail("Timeout expired waiting for tree node " + label + "{" + i0 + "," + i1 + "}");
return null;
}
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/callhierarchy/BasicCallHierarchyTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/callhierarchy/BasicCallHierarchyTest.java
index 9ff62ade11c..9f6361883bf 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/callhierarchy/BasicCallHierarchyTest.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/callhierarchy/BasicCallHierarchyTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 Wind River Systems, Inc. and others.
+ * Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,7 +8,6 @@
* Contributors:
* Markus Schorn - initial API and implementation
*******************************************************************************/
-
package org.eclipse.cdt.ui.tests.callhierarchy;
import java.io.IOException;
@@ -659,7 +658,7 @@ public class BasicCallHierarchyTest extends CallHierarchyBaseTest {
i1= checkTreeNode(tree, 0, 0, "gf()"); // sf()[f1] <- gf()
i2= checkTreeNode(tree, 0, 1, "sf()"); // sf()[f1] <- sf()[f1]
- checkTreeNode(i0, 2, null);
+ checkTreeNode(tree, 0, 2, null);
expandTreeItem(i1);
expandTreeItem(i2);
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java
index f364932a971..41dca325b79 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java
@@ -13,6 +13,9 @@
package org.eclipse.cdt.internal.ui.search.actions;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
@@ -92,6 +95,7 @@ public class OpenDeclarationsAction extends SelectionParseAction {
super(CEditorMessages.getString("OpenDeclarations.dialog.title")); //$NON-NLS-1$
}
+ @Override
protected IStatus run(IProgressMonitor monitor) {
try {
clearStatusLine();
@@ -337,45 +341,20 @@ public class OpenDeclarationsAction extends SelectionParseAction {
}
private IName[] findDefinitions(IIndex index, IASTTranslationUnit ast, int isKind, IBinding binding) throws CoreException {
- IASTName[] declNames= ast.getDefinitionsInAST(binding);
- boolean containsUsingDirectives= false;
- for (int i = 0; i < declNames.length; i++) {
- IASTName name= declNames[i];
+ List<IASTName> declNames= new ArrayList<IASTName>();
+ declNames.addAll(Arrays.asList(ast.getDefinitionsInAST(binding)));
+ for (Iterator<IASTName> i = declNames.iterator(); i.hasNext();) {
+ IASTName name= i.next();
if (name.resolveBinding() instanceof ICPPUsingDeclaration) {
- containsUsingDirectives= true;
- break;
+ i.remove();
}
}
- if (containsUsingDirectives) {
- // prevent navigation from using-decl to itself, or prefer using-decls over original defs.
- declNames= separateUsingDecls(declNames, isKind != KIND_USING_DECL);
- }
- if (declNames.length > 0) {
- return declNames;
+ if (!declNames.isEmpty()) {
+ return declNames.toArray(new IASTName[declNames.size()]);
}
// 2. Try definition in index
- IIndexName[] inames= index.findNames(binding, IIndex.FIND_DEFINITIONS | IIndex.SEARCH_ACCROSS_LANGUAGE_BOUNDARIES);
- if (isKind != KIND_USING_DECL) {
- // prefer using decls
- for (int i = 0; i < inames.length; i++) {
- if (index.findBinding(inames[i]) instanceof ICPPUsingDeclaration) {
- return new IName[]{inames[i]};
- }
- }
- }
- return inames;
- }
-
- private IASTName[] separateUsingDecls(IASTName[] declNames, boolean keep) {
- ArrayList<IASTName> result= new ArrayList<IASTName>(declNames.length);
- for (int i = 0; i < declNames.length; i++) {
- IASTName name = declNames[i];
- if (keep == (name.resolveBinding() instanceof ICPPUsingDeclaration)) {
- result.add(name);
- }
- }
- return result.toArray(new IASTName[result.size()]);
+ return index.findNames(binding, IIndex.FIND_DEFINITIONS | IIndex.SEARCH_ACCROSS_LANGUAGE_BOUNDARIES);
}
private IName[] findDeclarations(IIndex index, IASTTranslationUnit ast,
@@ -394,6 +373,7 @@ public class OpenDeclarationsAction extends SelectionParseAction {
}
}
+ @Override
public void run() {
selNode = getSelectedStringFromEditor();
if (selNode != null) {
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
index 3dc5b254f39..3afb07e8582 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
@@ -1,14 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2007 QNX Software Systems and others.
+ * Copyright (c) 2007, 2008 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * QNX - Initial API and implementation
- * Markus Schorn (Wind River Systems)
- * Anton Leherbauer (Wind River Systems)
+ * QNX - Initial API and implementation
+ * Markus Schorn (Wind River Systems)
+ * Anton Leherbauer (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.ui.text.contentassist;
@@ -49,7 +49,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPDelegate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPMember;
@@ -81,11 +80,12 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
public DOMCompletionProposalComputer() {
}
- protected List computeCompletionProposals(
+ @Override
+ protected List<CCompletionProposal> computeCompletionProposals(
CContentAssistInvocationContext context,
IASTCompletionNode completionNode, String prefix) {
- List proposals = new ArrayList();
+ List<CCompletionProposal> proposals = new ArrayList<CCompletionProposal>();
if(inPreprocessorDirective(context)) {
// add only macros
@@ -145,7 +145,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
return false;
}
- private void addMacroProposals(CContentAssistInvocationContext context, String prefix, List proposals) {
+ private void addMacroProposals(CContentAssistInvocationContext context, String prefix, List<CCompletionProposal> proposals) {
char[] prefixChars= prefix.toCharArray();
IASTCompletionNode completionNode = context.getCompletionNode();
IASTPreprocessorMacroDefinition[] macros = completionNode.getTranslationUnit().getMacroDefinitions();
@@ -160,7 +160,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
handleMacro(macros[i], context, proposals);
}
- private void handleMacro(IASTPreprocessorMacroDefinition macro, CContentAssistInvocationContext context, List proposals) {
+ private void handleMacro(IASTPreprocessorMacroDefinition macro, CContentAssistInvocationContext context, List<CCompletionProposal> proposals) {
String macroName = macro.getName().toString();
Image image = getImage(CElementImageProvider.getMacroImageDescriptor());
@@ -208,7 +208,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
protected void handleBinding(IBinding binding,
CContentAssistInvocationContext cContext,
- IASTCompletionContext astContext, List proposals) {
+ IASTCompletionContext astContext, List<CCompletionProposal> proposals) {
if ((binding instanceof CPPImplicitFunction
|| binding instanceof CPPImplicitFunctionTemplate || binding instanceof CPPImplicitTypedef)
&& !(binding instanceof CPPImplicitMethod)) {
@@ -237,7 +237,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
return name.length == 0 || name[0] == '{';
}
- private void handleClass(ICPPClassType classType, IASTCompletionContext astContext, CContentAssistInvocationContext context, List proposals) {
+ private void handleClass(ICPPClassType classType, IASTCompletionContext astContext, CContentAssistInvocationContext context, List<CCompletionProposal> proposals) {
if (context.isContextInformationStyle()) {
try {
ICPPConstructor[] constructors = classType.getConstructors();
@@ -257,7 +257,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
}
}
- private void handleFunction(IFunction function, CContentAssistInvocationContext context, List proposals) {
+ private void handleFunction(IFunction function, CContentAssistInvocationContext context, List<CCompletionProposal> proposals) {
Image image = getImage(function);
StringBuffer repStringBuff = new StringBuffer();
@@ -341,7 +341,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
proposals.add(proposal);
}
- private void handleVariable(IVariable variable, CContentAssistInvocationContext context, List proposals) {
+ private void handleVariable(IVariable variable, CContentAssistInvocationContext context, List<CCompletionProposal> proposals) {
StringBuffer repStringBuff = new StringBuffer();
repStringBuff.append(variable.getName());
@@ -372,7 +372,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
private void handleNamespace(ICPPNamespace namespace,
IASTCompletionContext astContext,
- CContentAssistInvocationContext cContext, List proposals) {
+ CContentAssistInvocationContext cContext, List<CCompletionProposal> proposals) {
if (astContext instanceof ICPPASTQualifiedName) {
IASTCompletionContext parent = ((ICPPASTQualifiedName) astContext)
.getCompletionContext();
@@ -464,7 +464,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
} else if (binding instanceof ICPPFunctionTemplate) {
imageDescriptor = CElementImageProvider.getFunctionImageDescriptor();
} else if (binding instanceof ICPPUsingDeclaration) {
- ICPPDelegate[] delegates = ((ICPPUsingDeclaration)binding).getDelegates();
+ IBinding[] delegates = ((ICPPUsingDeclaration)binding).getDelegates();
if (delegates.length > 0)
return getImage(delegates[0]);
}

Back to the top