aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaCodeComplete.cpp
diff options
context:
space:
mode:
authorMythreya <git@mythreya.dev>2025-07-01 05:33:56 -0700
committerGitHub <noreply@github.com>2025-07-01 08:33:56 -0400
commitd9d9ab869817d6448949886f89032b06cddf63d4 (patch)
tree0746be34cdc43b2ba33dd56ce9663f4f72fb9821 /clang/lib/Sema/SemaCodeComplete.cpp
parentb8b74945514358f1ebeac0874172f37fc7bfa38e (diff)
downloadllvm-d9d9ab869817d6448949886f89032b06cddf63d4.zip
llvm-d9d9ab869817d6448949886f89032b06cddf63d4.tar.gz
llvm-d9d9ab869817d6448949886f89032b06cddf63d4.tar.bz2
[clang][CodeComplete] skip explicit obj param in code completion string (#146258)
Fixes clangd/clangd#2339
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
-rw-r--r--clang/lib/Sema/SemaCodeComplete.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp
index 78d4586..b5d4a94 100644
--- a/clang/lib/Sema/SemaCodeComplete.cpp
+++ b/clang/lib/Sema/SemaCodeComplete.cpp
@@ -3260,6 +3260,13 @@ static void AddFunctionParameterChunks(Preprocessor &PP,
break;
}
+ // C++23 introduces an explicit object parameter, a.k.a. "deducing this"
+ // Skip it for autocomplete and treat the next parameter as the first
+ // parameter
+ if (FirstParameter && Param->isExplicitObjectParameter()) {
+ continue;
+ }
+
if (FirstParameter)
FirstParameter = false;
else