From 9869fc70a555bc09f0f4a7948152c6054d01252c Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Mon, 23 May 2016 20:39:49 -0700 Subject: [PATCH] Bug 494359 - Explicit specialization is improperly ignored Change-Id: I3294202002338281c7310f9ef77e2d5293566e0b --- .../internal/core/dom/parser/cpp/semantics/CPPTemplates.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java index 485a45f6707..889c9101972 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java @@ -461,7 +461,7 @@ public class CPPTemplates { ICPPTemplateInstance result = ((ICPPInstanceCache) template).getInstance(args); if (forDefinition && result instanceof IIndexBinding) return null; - if (result != null) { + if (result != null && !result.isExplicitSpecialization()) { // Don't use the cached instance if its argument is an index type and the requested // argument is an AST type. Despite identical signatures the types may be different. ICPPTemplateArgument[] instanceArgs = result.getTemplateArguments();