// 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
class n<j : n> {
}
func k<d {
    m k {
  func m
        k _ = m
    }
}
protocol o {
    class func k()
}
class m: o {
    class func k() { }
}
(m() as o).l n {
    {
    f m = m
 d.j = {
}
 {
   n) {
        o  }
}
func f(k: Any, j: Any) -> (((Any, Any) -> Any) -> c
k)
func c<i>() -> (i, i -> i) -> i {
  n j: g, j: d
let l = h
l()
f
protocol l : f { func f
protocol       h g
    }
} {
}
class l<r, l> {
}
protocol n {
    j q
}
protocol k : k {
}
class k<f : l, qT> {
    let a: [(T, () -> ())] = []
}
rn z({
        (p: Any, q:Any) -> Any in
        return p
    })
}
b(a(1, a(2, 3)))
func a<d>() -> [c{    enum b {
        case c
