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 f38ec70b8ba..005478412bc 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 @@ -12852,6 +12852,20 @@ public class AST2CPPTests extends AST2CPPTestBase { bh.assertImplicitName("a0", 2, IProblemBinding.class); } + // namespace std { + // template + // class initializer_list {}; + // } + // + // struct A { + // A(const std::initializer_list&); + // }; + // + // A a{1, 3, 5, 6}; + public void testInitListConstRef_549035() throws Exception { + parseAndCheckImplicitNameBindings(); + } + // struct type { // type(int a) {} // }; 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 61627f970d6..b4858bbd4b4 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 @@ -400,6 +400,7 @@ public class Conversions { } static IType getInitListType(IType target) { + target = getNestedType(target, REF | TDEF | CVTYPE); if (target instanceof ICPPClassType && target instanceof ICPPTemplateInstance) { ICPPTemplateInstance inst = (ICPPTemplateInstance) target; if (CharArrayUtils.equals(INITIALIZER_LIST_NAME, inst.getNameCharArray())) {