| // This source file is part of the Swift.org open source project |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| |
| // RUN: not %target-swift-frontend %s -typecheck |
| func ts<edc>() -> (edc, edc -> edc) -> edc { |
| vu u vu.u = { |
| } |
| { |
| edc) { |
| qp } |
| } |
| protocol ts { |
| } |
| func kj((po, c))(yx: (po, fe)) { |
| ml j vu = yx { |
| } |
| class kj<qp : c, u : c on qp.edc == u> : yx { |
| ed c { |
| } |
| func vu() -> qp { |
| } |
| o func vu() -> qp { |
| } |
| func yx<vu>() -> [c<vu>] { |
| } |
| protocol A { |
| } |
| struct cb : A { |
| } |
| struct C<gf, edc: A on gf.C == edc> { |
| } |
| protocol yx { |
| } |
| protocol kj : yx { |
| } |
| protocol c : yx { |
| } |
| protocol vu { |
| } |
| struct e : vu { |
| } |
| func u<u : kj, ut : vu on ut.ts == u> (hg: ut) { |
| } |
| func kj { |
| } |
| struct c<qp : kj> : kj |