// RUN: %target-typecheck-verify-swift struct G: ~Copyable {} extension G: Copyable where T: Copyable {} protocol Base {} protocol Derived: Base {} // Normally we would require the conditional conformance 'G: Base' to be // explicitly declared, but that would break source compatibility if G // used to be unconditionally Copyable. extension G: Derived {} // expected-note {{requirement from conditional conformance of 'G' to 'Base'}} struct NotCopyable: ~Copyable {} struct IsCopyable {} func f(_: T.Type) {} f(G.self) // expected-error {{global function 'f' requires that 'NotCopyable' conform to 'Copyable'}} f(G.self) // accepted