// 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 b<T : c {
class A {
enum B : a {
func c
var _ = c
}
func a<d {
enum B : a {
}
func b<H : a {
extension NSData {
class A {
protocol A {
}
extension NSData {
let t: a {
typealias e {
protocol A {
func a<T : b { func b<d {}
return "
}
enum B : A
