[PATCH] D36610: [Tooling] Add option to getFullyQualifiedName using a custom PritingPolicy
Sterling Augustine via cfe-commits
cfe-commits at lists.llvm.org
Fri May 4 13:16:26 PDT 2018
Committed as r331552.
On Fri, May 4, 2018 at 12:43 PM, Mikhail Ramalho via Phabricator <
reviews at reviews.llvm.org> wrote:
> mikhail.ramalho updated this revision to Diff 145255.
> mikhail.ramalho added a comment.
>
> Fixed the test case.
>
>
> https://reviews.llvm.org/D36610
>
> Files:
> include/clang/AST/QualTypeNames.h
> lib/AST/QualTypeNames.cpp
> unittests/Tooling/QualTypeNamesTest.cpp
>
>
> Index: unittests/Tooling/QualTypeNamesTest.cpp
> ===================================================================
> --- unittests/Tooling/QualTypeNamesTest.cpp
> +++ unittests/Tooling/QualTypeNamesTest.cpp
> @@ -26,9 +26,13 @@
> std::string ExpectedName =
> ExpectedQualTypeNames.lookup(VD->getNameAsString());
> if (ExpectedName != "") {
> - std::string ActualName =
> - TypeName::getFullyQualifiedName(VD->getType(), *Context,
> - WithGlobalNsPrefix);
> + PrintingPolicy Policy(Context->getPrintingPolicy());
> + Policy.SuppressScope = false;
> + Policy.AnonymousTagLocations = true;
> + Policy.PolishForDeclaration = true;
> + Policy.SuppressUnwrittenScope = true;
> + std::string ActualName = TypeName::getFullyQualifiedName(
> + VD->getType(), *Context, Policy, WithGlobalNsPrefix);
> if (ExpectedName != ActualName) {
> // A custom message makes it much easier to see what declaration
> // failed compared to EXPECT_EQ.
> @@ -217,6 +221,26 @@
> " }\n"
> "}\n"
> );
> +
> + TypeNameVisitor AnonStrucs;
> + AnonStrucs.ExpectedQualTypeNames["a"] = "short";
> + AnonStrucs.ExpectedQualTypeNames["un_in_st_1"] =
> + "union (anonymous struct at input.cc:1:1)::(anonymous union at "
> + "input.cc:2:27)";
> + AnonStrucs.ExpectedQualTypeNames["b"] = "short";
> + AnonStrucs.ExpectedQualTypeNames["un_in_st_2"] =
> + "union (anonymous struct at input.cc:1:1)::(anonymous union at "
> + "input.cc:5:27)";
> + AnonStrucs.ExpectedQualTypeNames["anon_st"] =
> + "struct (anonymous struct at input.cc:1:1)";
> + AnonStrucs.runOver(R"(struct {
> + union {
> + short a;
> + } un_in_st_1;
> + union {
> + short b;
> + } un_in_st_2;
> + } anon_st;)");
> }
>
> } // end anonymous namespace
> Index: lib/AST/QualTypeNames.cpp
> ===================================================================
> --- lib/AST/QualTypeNames.cpp
> +++ lib/AST/QualTypeNames.cpp
> @@ -452,12 +452,8 @@
>
> std::string getFullyQualifiedName(QualType QT,
> const ASTContext &Ctx,
> + const PrintingPolicy &Policy,
> bool WithGlobalNsPrefix) {
> - PrintingPolicy Policy(Ctx.getPrintingPolicy());
> - Policy.SuppressScope = false;
> - Policy.AnonymousTagLocations = false;
> - Policy.PolishForDeclaration = true;
> - Policy.SuppressUnwrittenScope = true;
> QualType FQQT = getFullyQualifiedType(QT, Ctx, WithGlobalNsPrefix);
> return FQQT.getAsString(Policy);
> }
> Index: include/clang/AST/QualTypeNames.h
> ===================================================================
> --- include/clang/AST/QualTypeNames.h
> +++ include/clang/AST/QualTypeNames.h
> @@ -72,6 +72,7 @@
> /// \param[in] WithGlobalNsPrefix - If true, then the global namespace
> /// specifier "::" will be prepended to the fully qualified name.
> std::string getFullyQualifiedName(QualType QT, const ASTContext &Ctx,
> + const PrintingPolicy &Policy,
> bool WithGlobalNsPrefix = false);
>
> /// \brief Generates a QualType that can be used to name the same type
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180504/3eb05b4b/attachment.html>
More information about the cfe-commits
mailing list