// This source file is part of the Swift.org open source project
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors

// RUN: not --crash %target-swift-frontend %s -parse
=b<T=class B
}{
func b{enum B:T=(a
class
class
struct B:B{
class S<b<b{
struct B{
func a=b{enum B{for c
var e
class
case c
struct c
class A{map(a<T.c
let a{typealias e{struct c<T.E
func^(f.c<f:B:O{
"
func^
let a{
{
if true{
"
func g:O{typealias f
let : Int -> ($0
if true{struct Q<b<T=Swift.E=e
case c<f:T:O{[]as a{
func a=e== {struct c<T where g:f:O{enum b
protocol B{
func g:T:O{enum B:O{
"
=e
if true{
{
var e
{func b
struct c
let:a=e{
protocol B
struct B:T=b<T where H : Boole
func^(f: Int -> ($0
protocol B:a{
class A{typealias f
func g:B
func a!
class b
}
let a
struct c<h{
let:B{
struct Q<T where T>
let a=class a {class S<h{struct Q<T>:B{enum B<h
protocol a{enum b<>
func g:T>:B:B{enum b{class c
protocol A{
let a{
struct B{
class b
protocol B
if true{protocol a{
class c
class b<T:a!
struct B{enum b<T where g:O{
"
for c:a=class b{
let:A
if true{[]as a{enum b
struct B{enum B{struct Q<T where I=(a
protocol A:a
protocol B
case c
func^(f
if true{struct Q<>:d where H : Boole
struct c
}
if true{func i(
class A
}class B
case c
struct Q<
func a
func^(a!
struct c<
struct c
struct Q{enum B<T where T.c<T where I=c
struct A{enum b{
let:T.c
if true{
protocol a=e==class b{
func g:T:T.E=c
let : Boole
if case{
{
{
struct S{map(f: C {func < {class B{struct c
func b
var b<f: C {
func < {{
class A{
struct c<h
protocol B<T.E
{
protocol B:B:B
let:T:a{
protocol B{struct c
let a!
class S<T where H : Boole
struct c:{class a {
func g:B<T where I=e
if true{extension{
{
{for c<f: Int -> (a{
struct c<T where g:B:B:A{typealias f: C {enum B:O{for c
struct Q{enum b<T where g:B:a!
struct c,case{struct Q{struct Q{}
struct Q{
{func < {
{protocol B{
}
protocol A
case c<a
if true{struct Q<T where g:B:f:a!
var b{case
}
struct c<T=c,
}
{class B:a{
var b<T:B<T where I==e{enum b{class b{struct Q<T where I=e=class A
func b
struct c<>:b<>
protocol B<T.c
import a{struct S{
let:T=b
protocol a=e=c<T where B<T.E=class B{
class b<T where I=e{enum B{
case c<T where H : Int -> (f
}
if true{
struct Q<h
let:a
protocol A{extension{
class b{enum B{typealias e
"
struct c
let:a
}
struct Q{
}
import a
class a where g:B
