From ed8a6ea1205b08f2e7d39a232f9c1f756d3a3ad8 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Thu, 4 Feb 2016 10:59:29 -0800 Subject: [PATCH] Code streamlining. --- .../semantics/TemplateArgumentDeduction.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPLinkage.java | 49 +++++++++---------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java index 7bb067f2281..d21f4ab569e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java @@ -630,7 +630,7 @@ public class TemplateArgumentDeduction { private static ICPPClassType findBaseInstance(ICPPClassType a, ICPPClassTemplate pTemplate, int maxdepth, HashSet handled, IASTNode point) throws DOMException { if (a instanceof ICPPTemplateInstance) { - final ICPPTemplateInstance inst = (ICPPTemplateInstance) a; + ICPPTemplateInstance inst = (ICPPTemplateInstance) a; ICPPClassTemplate tmpl= getPrimaryTemplate(inst); if (pTemplate.isSameType(tmpl)) return a; 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 c41553067c5..457dc645793 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 @@ -505,7 +505,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { getPDOM().putCachedResult(inputBinding, pdomBinding); } - if (shouldUpdate(pdomBinding, fromName)) { + if (fromName != null && shouldUpdate(pdomBinding, fromName)) { IBinding fromBinding = fromName.getBinding(); pdomBinding.update(this, fromBinding, null); @@ -520,32 +520,29 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { } private boolean shouldUpdate(PDOMBinding pdomBinding, IASTName fromName) throws CoreException { - if (fromName != null) { - if (pdomBinding instanceof IParameter || pdomBinding instanceof ICPPTemplateParameter) - return false; - if (fromName.isReference()) { - return false; - } - if (pdomBinding instanceof ICPPMember) { - IASTNode node= fromName.getParent(); - while (node != null) { - if (node instanceof IASTCompositeTypeSpecifier) { - return true; - } - node= node.getParent(); - } - return false; - } - if (fromName.isDefinition()) { - return true; - } - // Update opaque enums. - if (pdomBinding instanceof ICPPEnumeration && fromName.isDeclaration()) { - return true; - } - return !getPDOM().hasLastingDefinition(pdomBinding); + if (pdomBinding instanceof IParameter || pdomBinding instanceof ICPPTemplateParameter) + return false; + if (fromName.isReference()) { + return false; } - return false; + if (pdomBinding instanceof ICPPMember) { + IASTNode node= fromName.getParent(); + while (node != null) { + if (node instanceof IASTCompositeTypeSpecifier) { + return true; + } + node= node.getParent(); + } + return false; + } + if (fromName.isDefinition()) { + return true; + } + // Update opaque enums. + if (pdomBinding instanceof ICPPEnumeration && fromName.isDeclaration()) { + return true; + } + return !getPDOM().hasLastingDefinition(pdomBinding); } PDOMBinding createBinding(PDOMNode parent, IBinding binding, long fileLocalRec, IASTNode point)