From 732a9957911eb290f7ec958c9c7f48a40b6376ca Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Thu, 29 May 2008 07:43:37 +0000 Subject: [PATCH] Correct scope provided by class-specializations for instantiating its base-classes. --- .../internal/core/dom/parser/cpp/CPPClassSpecialization.java | 4 ++-- .../core/pdom/dom/cpp/PDOMCPPClassSpecialization.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 572af360ee1..49b08a96e45 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 @@ -85,7 +85,7 @@ public class CPPClassSpecialization extends CPPSpecialization implements ICPPBase specBinding = (ICPPBase) ((ICPPInternalBase)binding).clone(); IBinding base = binding.getBaseClass(); if (base instanceof IType) { - IType specBase = CPPTemplates.instantiateType((IType) base, argumentMap, getScope()); + IType specBase = CPPTemplates.instantiateType((IType) base, argumentMap, specScope); specBase = SemanticUtil.getUltimateType(specBase, false); if (specBase instanceof IBinding && !(specBase instanceof IProblemBinding)) { ((ICPPInternalBase)specBinding).setBaseClass((IBinding)specBase); @@ -105,7 +105,7 @@ public class CPPClassSpecialization extends CPPSpecialization implements bindings[i] = new CPPBaseClause(bases[i]); IBinding base = bindings[i].getBaseClass(); if (base instanceof IType) { - IType specBase = CPPTemplates.instantiateType((IType) base, argumentMap, null); + IType specBase = CPPTemplates.instantiateType((IType) base, argumentMap, specScope); if (specBase instanceof ICPPClassType) { ((CPPBaseClause) bindings[i]).setBaseClass((ICPPClassType) specBase); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassSpecialization.java index f3df5aa737e..1fa4da23953 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassSpecialization.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassSpecialization.java @@ -165,7 +165,7 @@ class PDOMCPPClassSpecialization extends PDOMCPPSpecialization implements ICPPBase specBase = (ICPPBase) ((ICPPInternalBase)origBase).clone(); IBinding origClass = origBase.getBaseClass(); if (origClass instanceof IType) { - IType specClass = CPPTemplates.instantiateType((IType) origClass, getArgumentMap(), getScope()); + IType specClass = CPPTemplates.instantiateType((IType) origClass, getArgumentMap(), this); specClass = SemanticUtil.getUltimateType(specClass, true); if (specClass instanceof IBinding) { ((ICPPInternalBase)specBase).setBaseClass((IBinding) specClass);