// RUN: not %target-swift-frontend %s -parse
// REQUIRES: asserts

// Distributed under the terms of the MIT license
// Test case submitted to project by https://github.com/practicalswift (practicalswift)
// Test case found by fuzzing

func f<e>() -> (e, e -> e) -> e {
{
{
}
}
protocol f {
}
class e: f {
class funT>: NSObject {
init(foo: T) {
B>(t: T) {
} x
x) {
}
class a {
var _ = i() {
}
}
func i(c: () -> ()) {
}
class a {
var _ = i() {
}
}
}
class d<j : i, f : i where j.i == f> : e {
}
class d<j, f> {
}
protocol i {
}
}
func n<q>() {
b b {
}
}
func n(j: Any, t: Any) -> (((Any, Any) -> Any) -> Any) {
k {
}
}
var d = b
protocol a {
}
protocol b : a {
}
protocol c : a {
}
protocol d {
}
struct e : d {
}
func i<j : b, k : d where k.f == j> (n: k) {
}
func i<l : d where l.f == c> (n: l) {
}
protocol b {
}
struct c {
func e() {
}
}
struct c<e> {
}
func b(g: f) -> <e>(()-> e) -> i
