AST Matcher for Type Traits

Hi,

I am trying to write a matcher to change

template

typename std::enable_if<std::is_reference::value, bool>::type is_ref() { return true; }

to

template

std::enable_if_t<std::is_reference::value, bool> is_ref() { return true; }

I have been struggling to write a match for the “typename std::enable_if…” line.

I am able to match the template <…> line using “typeAliasTemplateDecl” and perhaps just retrieve the next line and check if it has “typename …”.

I was wondering if you could give me pointers to write a better matcher?

Thanks,

David Lai