[PATCH] D117463: [clangd] Disable expand-auto action on constrained auto.

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 19 05:56:39 PST 2022

hokein added inline comments.

Comment at: clang-tools-extra/clangd/unittests/tweaks/ExpandAutoTypeTests.cpp:88
+      R"cpp(template <typename T> concept C = true;
+^C a^uto abc();
+    )cpp");
sammccall wrote:
> This shouldn't be unavailable because it's constrained, it should be unavailable because it's not deduced.
> Does this case pass or fail today?
> If the issue with constrained auto is syntactic, can you add a deductible test case?
> it should be unavailable because it's not deduced.

This is ideal, but not the behavior today -- the tweak is available but being failed to apply as we don't check the auto is deduced during prepare stage (it is expensive, requiring an AST traversal). 

For deducible cases, we replace the `C auto` with the actual type, e.g.
template <typename T> concept C = true;
C auto var = 123;  // => int var = 123;
I don't think this is an expected behavior. Given the deductible & nondeductible cases, it seems like an improvement to disable the tweak for constrained auto.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list