Inconsistency with extracting template type strings


Consider the following C++ code:

template<typename T, typename U = int >
class Test { };
template class Test;
// Test v;

And my visitor for the ClassTemplateSpecializationDecl does the following:

clang::LangOptions langOpts;
langOpts.CPlusPlus = true;
clang::PrintingPolicy policy(langOpts);
clang::QualType qualifiedType = astcontex.getRecordType(decl);
std::string name = qualifiedType.getAsString(policy);
With the code above, I get: 
Now, comment line 3 and uncomment line 4, and you get: 
Test<float, int>
First, is this intentional? Second, for the clang tool I'm writing, I need the second version (full specification) always. Is there a way to achieve this? 
Thank you
Benjamin Schindler