Skip to content

[Test] Add tests from SR-8767 / rdar://problem/44522298. #20795

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 14, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions test/decl/protocol/sr8767.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// RUN: %target-typecheck-verify-swift

// SR-8767: a number of related problems with unqualified lookup of
// associated type names.


// #1
public protocol PA {
associatedtype F
}

public protocol PDA : PA {
}

public protocol PrB {
associatedtype F
}

extension PDA where Self : PrB {
public init(first: F?) {
fatalError()
}
}

// #2
public protocol S { associatedtype F }
public protocol AM : S {}
public protocol AL { associatedtype F }
extension AM where Self : AL {
public init(first: F?) { fatalError() }
}

// #3
public protocol S2 { associatedtype F }
public protocol A2 : S2 {}
public protocol Z2 { associatedtype F }
extension A2 where Self : Z2 {
public init(first: F?) { fatalError() }
}

// #4
public protocol BM { associatedtype F }
public protocol C : BM {}
public protocol BL { associatedtype F }
extension C where Self : BL { public init(first: F?) { fatalError() } }

// #5
public protocol AZ { associatedtype F }
public protocol ZA : AZ {}
public protocol AA { associatedtype F }
extension ZA where Self : AA { public init(first: F?) { fatalError() } }

// #6
public protocol AZ2 { associatedtype F }
public protocol ZA2 : AZ2 {}
public protocol ZZ2 { associatedtype F }
extension ZA2 where Self : ZZ2 { public init(first: F?) { fatalError() } }

// #7
public protocol ZA3 { associatedtype F }
public protocol AZ3 : ZA3 {}
public protocol ZZ3 { associatedtype F }
extension AZ3 where Self : ZZ3 { public init(first: F?) { fatalError() } }