lukasza added inline comments.

================
Comment at: unittests/ASTMatchers/ASTMatchersTraversalTest.cpp:253
+      matches("struct A {}; using B = A; B b;",
+              varDecl(hasType(hasUnqualifiedDesugaredType(recordType())))));
+}
----------------
# deep testing suggestion

If we do end up landing the implementation of hasUnqualifiedDesugaredType from 
this CL, then I think it might be good to tweak the test so that it verifies 
that the matching here is "deep" (i.e. that the matcher doesn't just strip a 
single level of sugar).

    matches("struct A {}; using B = A; using C = B; C c;", ...


# deep-vs-shallow-vs-everythingInBetween

At one point, when discussing the old implementation of hasDeclaration (before 
https://reviews.llvm.org/D27104) we were wondering whether it should match for 
all the cases below:

    std::string input = "struct A {}; using B = A; using C = B; using D = C; D 
d;";
    EXPECT_TRUE(matches(input,
        
varDecl(...something-hasDeclaration-something...(typeAliasDecl(hasName("B"))))));
    EXPECT_TRUE(matches(input,
        
varDecl(...something-hasDeclaration-something...(typeAliasDecl(hasName("C"))))));
    EXPECT_TRUE(matches(input,
        
varDecl(...something-hasDeclaration-something...(typeAliasDecl(hasName("D"))))));

This is not something I want or care about myself, but I wanted to check if the 
above is something to think about.  For example - maybe exposing a 
singleStepDesugarsTo(...) matcher is better (because it can be used to build 
the hasUnqualifiedDesugaredType).

As I said - this is not very important to me (I only care about full desugaring 
all the way to a tag type), but it might be something to ponder before 
committing to the current implementation of hasUnqualifiedDesugaredType.


https://reviews.llvm.org/D27207



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to