Files
swift-mirror/test/Sema/Inputs/enum_conformance_synthesis_other.swift
Huon Wilson 80a74b4dfc [AST] Choose an implied conformance source next to the type, if possible.
If a conformance to a protocol is implied by several other
conformances (i.e. protocol P: Equatable {} and protocol Q: Equatable {} and a
type declares conformance to both P and Q), we should choose a source that's in
the same file as the type, if we can, because automatic synthesis of
conformances (for Equatable, Hashable, etc.) only works in that case.

Fixes rdar://problem/41852654.
2018-07-06 18:24:21 +10:00

32 lines
715 B
Swift

// Note that for the test to be effective, each of these enums must only have
// its Equatable or Hashable conformance referenced /once/ in the primary file.
enum FromOtherFile : String {
// expected-note@-1 {{type declared here}}
case A = "a"
}
enum AlsoFromOtherFile : Int {
case A = 0
}
enum YetAnotherFromOtherFile: Float {
case A = 0.0
}
enum OtherFileNonconforming {
case A(Int)
}
enum YetOtherFileNonconforming {
// expected-note@-1 {{type declared here}}
case A(Int)
}
enum GenericOtherFileNonconforming<T> {
// expected-note@-1 {{type declared here}}
case A(T)
}
protocol ImplierOther: Equatable {}
extension ImpliedMain: ImplierMain {}
enum ImpliedOther: ImplierOther {
case a(Int)
}