// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GP1 | FileCheck %s -check-prefix=A1 // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GP2 | FileCheck %s -check-prefix=A1 // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GP3 | FileCheck %s -check-prefix=A1 // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GP4 | FileCheck %s -check-prefix=TYPE1 // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GP5 | FileCheck %s -check-prefix=TYPE1 class A1 {} class A2 {} protocol P1 {} extension A1 where #^GP1^#{} extension A1 where T1 : P1, #^GP2^# {} extension A1 where T1 : P1, #^GP3^# extension A1 where T1 : #^GP4^# extension A1 where T1 : P1, T2 : #^GP5^# // A1: Begin completions // A1-DAG: Decl[GenericTypeParam]/Local: T1[#T1#]; name=T1 // A1-DAG: Decl[GenericTypeParam]/Local: T2[#T2#]; name=T2 // A1-DAG: Decl[GenericTypeParam]/Local: T3[#T3#]; name=T3 // A1-NOT: T4 // A1-NOT: T5 // TYPE1: Begin completions // TYPE1-DAG: Decl[Protocol]/CurrModule: P1[#P1#]; name=P1 // TYPE1-DAG: Decl[Class]/CurrModule: A1[#A1#]; name=A1 // TYPE1-DAG: Decl[Class]/CurrModule: A2[#A2#]; name=A2 // TYPE1-NOT: T1 // TYPE1-NOT: T2 // TYPE1-NOT: T3 // TYPE1-NOT: T4 // TYPE1-NOT: T5