[clang] [clang-tools-extra] [clang][CodeComplete] skip explicit obj param in SignatureHelp (PR #146649)

Mythreya Kuricheti via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 29 23:59:37 PDT 2025


================
@@ -3294,18 +3294,27 @@ TEST(SignatureHelpTest, SkipExplicitObjectParameter) {
     const auto Result = signatureHelp(testPath(TU.Filename), Code.point("c1"),
                                       *Preamble, Inputs, MarkupKind::PlainText);
 
-    EXPECT_EQ(1, Result.signatures.size());
+    EXPECT_EQ(1U, Result.signatures.size());
 
     EXPECT_THAT(Result.signatures[0], AllOf(sig("foo([[int arg]]) -> void")));
   }
   {
     const auto Result = signatureHelp(testPath(TU.Filename), Code.point("c2"),
                                       *Preamble, Inputs, MarkupKind::PlainText);
 
-    EXPECT_EQ(1, Result.signatures.size());
+    EXPECT_EQ(1U, Result.signatures.size());
 
     EXPECT_THAT(Result.signatures[0], AllOf(sig("([[A]], [[int]]) -> void")));
   }
+  {
+    const auto Result = signatureHelp(testPath(TU.Filename), Code.point("c3"),
+                                      *Preamble, Inputs, MarkupKind::PlainText);
+    // TODO: We expect 1 signature here
+    // EXPECT_EQ(1U, Result.signatures.size());
+
+    // EXPECT_THAT(Result.signatures[0], AllOf(sig("([[A]], [[int]]) ->
----------------
MythreyaK wrote:

> The compiler seems to accept any type for self when using this syntax, e.g. (&A::foo)(42, 42); compiles (which is admittedly a bit strange).

Oh yeah, I missed that. @cor3ntin, would this be a bug? 

https://github.com/llvm/llvm-project/pull/146649


More information about the cfe-commits mailing list