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

protocol P {
class a {
func g<d where T where g<T>: a {
var d = [Void{
case c,
{
struct Q<T : a {
println() {
}
let i: a {
println(f: NSObject {
class b: a {
class
case c,
