// 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 compose<T {
class C> {
return d<U -> : Array<C) {
class A {
extension NSSet {
extension NSSet {
}
}
}
deinit {
}
}
}(f: AnyObject, f: C {
let t: C) {
}
return g, object2: U : $0) {
extension NSSet {
}
}
}
typealias e == f<T: Array<A? {
typealias e = b<D> Int -> Self {
protocol d = {
}
return g<D> {
let h: C) {
}
}
}
func call() {
}
}
protocol a = c: String {
self.b in x }
var f : e: c: Array<T! {
private class A {
var d = compose<T where T> {
}
}
protocol P {
}
func f: C {
}
return b<T>) {
}
}
return ""A>(x: d {
let a {
}
private let t: B? = F>: A {
}
}
private let t: AnyObject) {
struct d.e == {
typealias h: AnyObject.b {
}
func g<T.d<f : AnyObject) -> T : d {
typealias E
}
