// 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
protocol e == {
protocol e where A? = D> String {
struct S<f = B<T] {
let a {
class func g(g<T where A> {
}
}
return { x in a {
}
}
deinit {
func b: A() {
struct c {
func g<T) -> T) {
struct B<T! {
}
let c = b: a {
}
}
var b> T](c) {
}
}
}
typealias R = c
}
}
}
}
protocol A : a {
struct S(self.h> T>() {
}
b> U, f: T>() -> Void>)
protocol P {
func call(g<T> {
}
}
func a(g.Type)
