Skip to content

Commit 44ccaa5

Browse files
committed
---
yaml --- r: 346687 b: refs/heads/master c: f92d712 h: refs/heads/master i: 346685: 5f59081 346683: 93f7f31 346679: 0d49e06 346671: cd0da2b 346655: 1cb5c17 346623: c66eaba
1 parent aecb7e7 commit 44ccaa5

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 178b344e8ea13bb29d54d7e1a40f55b18480eaa6
2+
refs/heads/master: f92d7123f1d6b7a4b13cf1024cf28580f0e31c4b
33
refs/heads/master-next: 203b3026584ecad859eb328b2e12490099409cd5
44
refs/tags/osx-passed: b6b74147ef8a386f532cf9357a1bde006e552c54
55
refs/tags/swift-2.2-SNAPSHOT-2015-12-01-a: 6bb18e013c2284f2b45f5f84f2df2887dc0f7dea

trunk/lib/Sema/TypeCheckType.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,8 @@ Type TypeChecker::resolveTypeInContext(
602602
if (resolution.getStage() == TypeResolutionStage::Structural) {
603603
return resolution.resolveSelfAssociatedType(
604604
selfType, foundDC, typeDecl->getName());
605+
} else if (auto assocType = dyn_cast<AssociatedTypeDecl>(typeDecl)) {
606+
typeDecl = assocType->getAssociatedTypeAnchor();
605607
}
606608
}
607609
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
2+
3+
// Ensure that the superclass's generid argument canonicalizes to
4+
// Sequence.Element.
5+
6+
// CHECK: @"symbolic _____y7ElementSTQzG
7+
8+
public protocol ElementTypeProtocol: RandomAccessCollection {
9+
typealias ElementType = Element
10+
}
11+
extension Array: ElementTypeProtocol {}
12+
13+
private class WrapperBase<T> {}
14+
private final class WrapperDerived<C: ElementTypeProtocol>: WrapperBase<C.ElementType> {
15+
init(base: C) {
16+
let _ = base
17+
}
18+
}

0 commit comments

Comments
 (0)