@@ -154,18 +154,18 @@ protocol ProtocolChain2 : ProtocolChain1 {
154154class Adopter15 : ProtocolChain2 { } //expected-error {{type 'Adopter15' does not conform to protocol 'ProtocolChain2'}} expected-error {{type 'Adopter15' does not conform to protocol 'ProtocolChain1'}}
155155
156156protocol ProtocolParallel1 {
157- associatedtype Foo1 // expected-note {{protocol requires nested type 'Foo1'; add nested type 'Foo1' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
158- associatedtype Foo2 // expected-note {{protocol requires nested type 'Foo2'; add nested type 'Foo2' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
159- associatedtype Foo3 // expected-note {{protocol requires nested type 'Foo3'; add nested type 'Foo3' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
157+ associatedtype Foo1 // expected-note {{protocol requires nested type 'Foo1'; add nested type 'Foo1' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
158+ associatedtype Foo2 // expected-note {{protocol requires nested type 'Foo2'; add nested type 'Foo2' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
159+ associatedtype Foo3 // expected-note {{protocol requires nested type 'Foo3'; add nested type 'Foo3' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
160160 // FIXME: Why do we add stubs for all missing requirements when the note implies a single one?
161- func Foo4( ) // expected-note {{protocol requires function 'Foo4()' with type '() -> ()'; add a stub for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
161+ func Foo4( ) // expected-note {{protocol requires function 'Foo4()' with type '() -> ()'; add a stub for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
162162}
163163
164164protocol ProtocolParallel2 {
165- associatedtype Bar1 // expected-note {{protocol requires nested type 'Bar1'; add nested type 'Bar1' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
166- associatedtype Bar2 // expected-note {{protocol requires nested type 'Bar2'; add nested type 'Bar2' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
167- associatedtype Bar3 // expected-note {{protocol requires nested type 'Bar3'; add nested type 'Bar3' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n}}
168- func Bar4( ) // expected-note {{protocol requires function 'Bar4()' with type '() -> ()'; add a stub for conformance}}{{171:57-57=\n func Bar4() {\n <#code#>\n \}\n}}
165+ associatedtype Bar1 // expected-note {{protocol requires nested type 'Bar1'; add nested type 'Bar1' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
166+ associatedtype Bar2 // expected-note {{protocol requires nested type 'Bar2'; add nested type 'Bar2' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
167+ associatedtype Bar3 // expected-note {{protocol requires nested type 'Bar3'; add nested type 'Bar3' for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n }}
168+ func Bar4( ) // expected-note {{protocol requires function 'Bar4()' with type '() -> ()'; add a stub for conformance}}{{171:57-57=\n typealias Foo1 = <#type#>\n\n typealias Foo2 = <#type#>\n\n typealias Foo3 = <#type#>\n\n func Foo4() {\n <#code#>\n \}\n\n typealias Bar1 = <#type#>\n\n typealias Bar2 = <#type#>\n\n typealias Bar3 = <#type#>\n\n func Bar4() {\n <#code#>\n \}\n}}
169169}
170170
171171class Adopter16 : ProtocolParallel1 , ProtocolParallel2 { } // expected-error {{type 'Adopter16' does not conform to protocol 'ProtocolParallel1'}} expected-error {{type 'Adopter16' does not conform to protocol 'ProtocolParallel2'}}
0 commit comments