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

class B<T {
struct c<T {
var f = d<S
struct S<T
func d
struct S<T where S<T> : A {
struct c<d where T = c
