Skip to content

Commit 90dcfbc

Browse files
authored
Merge pull request #62467 from rintaro/ide-completion-rdar102958462
[CodeCompletion] Don't suggest opaque generic parameter types
2 parents 54f9cae + 4e33449 commit 90dcfbc

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

lib/AST/NameLookup.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3321,8 +3321,13 @@ void FindLocalVal::checkGenericParams(GenericParamList *Params) {
33213321
if (!Params)
33223322
return;
33233323

3324-
for (auto P : *Params)
3324+
for (auto P : *Params) {
3325+
if (P->isOpaqueType()) {
3326+
// Generic param for 'some' parameter type is not "visible".
3327+
continue;
3328+
}
33253329
checkValueDecl(P, DeclVisibilityKind::GenericParameter);
3330+
}
33263331
}
33273332

33283333
void FindLocalVal::checkSourceFile(const SourceFile &SF) {

lib/IDE/CompletionLookup.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1703,6 +1703,7 @@ void CompletionLookup::addTypeAliasRef(const TypeAliasDecl *TAD,
17031703
void CompletionLookup::addGenericTypeParamRef(
17041704
const GenericTypeParamDecl *GP, DeclVisibilityKind Reason,
17051705
DynamicLookupInfo dynamicLookupInfo) {
1706+
assert(!GP->getName().empty());
17061707
CodeCompletionResultBuilder Builder(
17071708
Sink, CodeCompletionResultKind::Declaration,
17081709
getSemanticContext(GP, Reason, dynamicLookupInfo));
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// RUN: %swift-ide-test -code-completion -code-completion-token COMPLETE -code-completion-annotate-results -source-filename %s
2+
3+
func f(_ s: some #^COMPLETE^#
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: %swift-ide-test -code-completion -code-completion-token COMPLETE -code-completion-annotate-results -source-filename %s
2+
3+
protocol P { }
4+
func f(_ p: some P) {
5+
#^COMPLETE^#
6+
}

0 commit comments

Comments
 (0)