inserted-name bug?

Compiling the attached sample produces:

clang_inserted_name_bug.cpp:34:45: error: template argument for template
template parameter must be a class template or type alias template
typedef TraitChooser_t<TRAITS, BASE_TYPE, TemplClass> Traits;
^
clang_inserted_name_bug.cpp:35:55: error: template argument for template
template parameter must be a class template or type alias template
typedef BASE_TYPE<TraitChooser_t<TRAITS, BASE_TYPE, Temp…
^
2 errors generated.

I think this is incorrect as even though TemplClass becomes an injected-class-name when used in the template-argument-list where a template parameter goes it should get the template, not the class. Others discuss here:

This e-mail and its attachments are intended only for the individual or entity to whom it is addressed and may contain information that is confidential, privileged, inside information, or subject to other restrictions on use or disclosure. Any unauthorized use, dissemination or copying of this transmission or the information in it is prohibited and may be unlawful. If you have received this transmission in error, please notify the sender immediately by return e-mail, and permanently delete or destroy this e-mail, any attachments, and all copies (digital or paper). Unless expressly stated in this e-mail, nothing in this message should be construed as a digital or electronic signature. For additional important disclaimers and disclosures regarding KCG’s products and services, please click on the following link: http://www.kcg.com/legal/global-disclosures

clang_inserted_name_bug.cpp (1.46 KB)