// RUN: %batch-code-completion -code-complete-inits-in-postfix-expr protocol MyProto { init(value: String) } extension MyProto where Self == MyStruct { init(arg: String) { self = Self(value: arg) } } struct MyStruct: MyProto { init(value: String) {} } func test1() { #^GLOBALEXPR^# // GLOBALEXPR-NOT: name=MyProto( // GLOBALEXPR-DAG: Decl[Struct]/CurrModule: MyStruct[#MyStruct#]; name=MyStruct // GLOBALEXPR-DAG: Decl[Constructor]/CurrModule: MyStruct({#value: String#})[#MyStruct#]; name=MyStruct(value:) // GLOBALEXPR-DAG: Decl[Constructor]/CurrModule: MyStruct({#arg: String#})[#MyStruct#]; name=MyStruct(arg:) // GLOBALEXPR-DAG: Decl[Protocol]/CurrModule/Flair[RareType]: MyProto[#MyProto#]; name=MyProto // GLOBALEXPR-NOT: name=MyProto( } func test2() { _ = MyProto(#^PROTOCOL_AFTER_PAREN^# // PROTOCOL_AFTER_PAREN-NOT: name=arg: // PROTOCOL_AFTER_PAREN-NOT: name=value: } func test3() { class Inner { func test() { #^GENERICEXPR^# // GENERICEXPR: Decl[GenericTypeParam]/Local: MyGeneric[#MyGeneric#]; name=MyGeneric // GENERICEXPR: Decl[Constructor]/Local: MyGeneric({#value: String#})[#MyProto#]; name=MyGeneric(value:) // GENERICEXPR: Decl[Constructor]/Local: MyGeneric({#arg: String#})[#MyProto#]; name=MyGeneric(arg:) } } }