// 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 v<ih>() -> (ih, ih -> ih) -> ih {
   h ih h.b = {
}
 {
   ih) {
        ed  }
}
protocol v {
}
class h: v{  class func b {}
class m<n : m> {
}
func u(l: Any, kj: Any) -> (((Any, Any) -> Any) -> Any) {
    l {
    }
}
func l(lk: (((Any, Any) -> Any) -> Any)) -> Any {
    l lk({
    })
}
func dc(a: v) -> <n>(() -> n) -> v {
}
class m: m {
}
class f : x {
}
protocol m {
}
k f : m {
}
k x<g, q: m where g.x == q> {
}
class ji<n>: u {
    q(fe: n) {
    }
}
protocol m {
}
k w<gf> : m {
    func l(l: w.r) {
    }
}
func ^(u: kj, l) -> l {
}
protocol u {
}
protocol l : u {
}
protocol w : u {
}
protocol h {
}
k h : h {
}
func b<ih : l, l : h where l.v == ih> (l: l) {
}
func b<f : h where f.v == w> (l: f) {
}
k m<n> {
}
class u<v : l, ih : l where v.h == ih> {
}
protocol l {
}
k w<ed : l> : l {
}
protocol w : l { func l
