// 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 ji(ji: fe.vu) {
        ml let c = y {
}
struct c {
    var xw: ji.vu
    func v({
}
protocol ji {
}
struct c<rq : ji> : ji {
}
struct c<xw : hgf> {
}
func ay<xw>() -> [c<xw>] {
}
func ay(ji: q = ed) {
}
let c = ay
class gfe<x>: ih {
    ba(lk: x) {
    }
}
func ut<x : nm>(ji: x) {
}
func v(c: () -> ()) {
}
class ay {
    var _ = v() {
    }
}
protocol ut {
}
struct p : ut {
}
struct fed<gf, k: ut qp gf.fed == k> {
}
struct xw<ut : v, fed: v qp fed.rq == ut.rq> {
}
protocol v {
}
class ut: ut {
}
class p : fed {
}
var dcb: q -> q = {
}
let v: q = { (c: q, ut: q -> q) -> q yx
}(rq, dcb)
let dc: q = { c, ut yx
}(rq, dcb)
class ut<x : ut> {
}
protocol ut {
}
class fed<gf> {
    ba <ut: ut qp ut.p == gf>(v: ut.p) {
    }
}
func ^(ay: nm, n) -> n {
}
protocol ay {
}
class ji: ay {
}
(ji() ji ay).cb p<x : ut> {
}
protocol fed {
}
struct gf : fed {
    func fed<x qp x.k == wv>(ut: p<x>}
protocol c : ji { func ji
