From 080b701f7d9edc535a2f8f2bde861b8eb4075537 Mon Sep 17 00:00:00 2001 From: Andrew Ferguson Date: Mon, 28 Apr 2008 10:12:33 +0000 Subject: [PATCH] 224364: re-enable fix after performance improvements from Markus --- .../index/tests/IndexCPPBindingResolutionTest.java | 2 +- .../index/tests/IndexCPPTemplateResolutionTest.java | 2 +- .../core/dom/parser/cpp/semantics/Conversions.java | 13 +------------ .../core/dom/parser/cpp/semantics/SemanticUtil.java | 5 ----- .../internal/core/pdom/dom/cpp/PDOMCPPLinkage.java | 4 +--- 5 files changed, 4 insertions(+), 22 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java index 8e46c95e9a7..b65b44a07d9 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java @@ -1291,7 +1291,7 @@ public abstract class IndexCPPBindingResolutionTest extends IndexBindingResoluti // E e; // foo(e); // } - public void _testUserDefinedConversionOperator_224364() throws Exception { + public void testUserDefinedConversionOperator_224364() throws Exception { IBinding ca= getBindingFromASTName("C c;", 1); assertInstance(ca, ICPPClassType.class); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java index 9447e16b21a..7e734bdf144 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java @@ -1022,7 +1022,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // C cx; // foo(cx); // } - public void _testUserDefinedConversionOperator_224364() throws Exception { + public void testUserDefinedConversionOperator_224364() throws Exception { IBinding ca= getBindingFromASTName("C", 4); assertInstance(ca, ICPPClassType.class); assertInstance(ca, ICPPTemplateInstance.class); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java index cf748ebabe3..5a637b8ac5b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java @@ -41,10 +41,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPSpecialization; import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter; import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTypeParameter; import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassInstance; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassSpecialization; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassTemplate; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPPointerType; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding; import org.eclipse.cdt.internal.core.index.IIndexFragmentBinding; @@ -388,17 +384,10 @@ public class Conversions { } } } - - boolean checkConversionOperators= - (SemanticUtil.ENABLE_224364 && s instanceof ICPPClassType) - || (s instanceof CPPClassType - || s instanceof CPPClassTemplate - || s instanceof CPPClassSpecialization - || s instanceof CPPClassInstance); //conversion operators boolean ambiguousConversionOperator= false; - if (checkConversionOperators) { + if (s instanceof ICPPClassType) { ICPPMethod [] ops = SemanticUtil.getConversionOperators((ICPPClassType)s); if (ops.length > 0 && ops[0] instanceof IProblemBinding == false) { for (final ICPPMethod op : ops) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/SemanticUtil.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/SemanticUtil.java index 5d4389a856a..96f609d8770 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/SemanticUtil.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/SemanticUtil.java @@ -42,11 +42,6 @@ public class SemanticUtil { */ private static final CharArraySet cas= new CharArraySet(OverloadableOperator.values().length); - /** - * Switch for enabling fix for bug 224364 - */ - public static final boolean ENABLE_224364= System.getProperty("cdt.enable.224364") != null; //$NON-NLS-1$ - static { final int OPERATOR_SPC= OPERATOR_CHARS.length + 1; for(OverloadableOperator op : OverloadableOperator.values()) { 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 af9156540b6..7b46b7a5834 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 @@ -260,9 +260,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { || pdomBinding instanceof PDOMCPPDeferredClassInstance)) { // Add instantiated constructors to the index (bug 201174). addConstructors(pdomBinding, (ICPPClassType) binding); - if(SemanticUtil.ENABLE_224364) { - addConversionOperators(pdomBinding, (ICPPClassType) binding); - } + addConversionOperators(pdomBinding, (ICPPClassType) binding); } } catch (DOMException e) { throw new CoreException(Util.createStatus(e));