Skip to content

Commit 23acb96

Browse files
authored
Merge pull request #18202 from DougGregor/no-subst-unresolved-type
2 parents 4edbd83 + 5c008ab commit 23acb96

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

lib/Sema/CalleeCandidateInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ void CalleeCandidateInfo::collectCalleeCandidates(Expr *fn,
677677
if (baseType->isAnyObject())
678678
baseType = Type();
679679

680-
if (baseType) {
680+
if (baseType && !baseType->hasUnresolvedType()) {
681681
C.entityType = baseType->getTypeOfMember(CS.DC->getParentModule(),
682682
C.getDecl(), nullptr);
683683
C.substituted = true;
@@ -883,7 +883,7 @@ CalleeCandidateInfo::CalleeCandidateInfo(Type baseType,
883883
if (substType->isAnyObject())
884884
substType = Type();
885885

886-
if (substType && selfAlreadyApplied)
886+
if (substType && selfAlreadyApplied && !substType->hasUnresolvedType())
887887
substType =
888888
substType->getTypeOfMember(CS.DC->getParentModule(), decl, nullptr);
889889
if (substType) {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// RUN: not %target-swift-frontend -emit-ir %s
2+
3+
protocol ObservableType {
4+
associatedtype E
5+
}
6+
7+
extension ObservableType where E == Any {
8+
static func zip<O1>(_ source1: O1) { fatalError() }
9+
}
10+
11+
extension ObservableType {
12+
static func zip<O1, O2>(_ source1: O1, _ source2: O2) { fatalError() }
13+
}
14+
15+
class Observable<Element> : ObservableType {
16+
public typealias E = Element
17+
}
18+
19+
Observable.zip(1, 2)

0 commit comments

Comments
 (0)