This is an archive of the discontinued LLVM Phabricator instance.

RecursiveASTVisitor should visit the nested name qualifiers in a template specialisation
ClosedPublic

Authored by arphaman on Jul 4 2017, 6:55 AM.

Details

Summary

Right now because of this issue rename cannot be initiated at name qualifiers in a template specialisation, e.g.:

struct Outer {
    template<typename T>
    struct Nested { };
};

template<>
struct Outer::Nested<int>; // Rename cannot be initiated at 'Outer' because the NNSL is not visited by the RecursiveASTVisitor

Diff Detail

Repository
rL LLVM

Event Timeline

arphaman created this revision.Jul 4 2017, 6:55 AM
vsk accepted this revision.Jul 10 2017, 3:11 PM

I haven't touched any AST code but this looks good to me: it's in line with what's done in TraverseRecordHelper and the test case is comprehensive.

unittests/Tooling/RecursiveASTVisitorTest.cpp
269 ↗(On Diff #105167)

Nit, 'specializations'

This revision is now accepted and ready to land.Jul 10 2017, 3:11 PM
This revision was automatically updated to reflect the committed changes.
arphaman marked an inline comment as done.