Skip to content

Commit 056ac83

Browse files
authored
Merge pull request #66635 from slavapestov/type-matcher-parameterized-protocol
AST: Fix logic error in TypeMatcher::visitParameterizedProtocolType()
2 parents df71ee0 + 68e22e1 commit 056ac83

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

include/swift/AST/TypeMatcher.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,10 +438,12 @@ class TypeMatcher {
438438

439439
if (firstArgs.size() == secondArgs.size()) {
440440
for (unsigned i : indices(firstArgs)) {
441-
return this->visit(CanType(firstArgs[i]),
442-
secondArgs[i],
443-
sugaredFirstType->castTo<ParameterizedProtocolType>()
444-
->getArgs()[i]);
441+
if (!this->visit(CanType(firstArgs[i]),
442+
secondArgs[i],
443+
sugaredFirstType->castTo<ParameterizedProtocolType>()
444+
->getArgs()[i])) {
445+
return false;
446+
}
445447
}
446448

447449
return true;

test/Generics/issue-63410.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// RUN: %target-typecheck-verify-swift
2+
3+
protocol Derived<A, B> where C == any Derived<Never, B> {
4+
associatedtype A
5+
associatedtype B
6+
7+
associatedtype C
8+
}

0 commit comments

Comments
 (0)