This revision adds a field kind to the RecordVal class, replacing the prefix bit in the TyAndKind member (formerly TyAndPrefix). A field can now have one of three kinds: normal, nonconcrete OK (indicated by the 'field' keyword), and template argument.
This revision prepares for the next one, where I will improve the algorithms that deal with class and multiclass template arguments.
clang-format: please reformat the code
- bool isTemplateArg() const { - return TyAndKind.getInt() == FK_TemplateArg; - } + bool isTemplateArg() const { return TyAndKind.getInt() == FK_TemplateArg; }