// This source file is part of the Swift.org open source project
// Copyright (c) 2014 - 2016 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
