mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Push through an easy refactoring to the way we validate and install implicit constructors. This patch would be NFC but for a regression test that now must diagnose. #26159 changed validation order in such a way that the code in validation-test-macosx-x86_64/compiler_crashers_2_fixed/0124-sr5825.swift used to be accepted. This patch once again changes validation order, so we now reject this code, restoring the behavior seen on all prior versions of Swift. On its face, this test should work. In order for it to do so, witness matching has to be smarter about the declarations it asks for their interface type, or it will risk these circular constructions accidentally being accepted or rejected on a whim.
17 lines
433 B
Swift
17 lines
433 B
Swift
// RUN: %target-typecheck-verify-swift
|
|
|
|
struct DefaultAssociatedType {
|
|
}
|
|
|
|
protocol Protocol {
|
|
associatedtype AssociatedType = DefaultAssociatedType
|
|
init(object: AssociatedType)
|
|
}
|
|
|
|
final class Conformance: Protocol {
|
|
private let object: AssociatedType
|
|
init(object: AssociatedType) { // expected-error {{reference to invalid associated type 'AssociatedType' of type 'Conformance'}}
|
|
self.object = object
|
|
}
|
|
}
|