You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
classC0:P0_A,P0_B{} // expected-error{{type 'C0' does not conform to protocol 'P0_A'}} expected-error{{type 'C0' does not conform to protocol 'P0_B'}} expected-note{{do you want to add protocol stubs?}}{{23-23=\n typealias T = <#type#>\n}}
10
+
6
11
protocolP1{
7
12
@available(*, deprecated)
8
13
func foo1()
9
14
func foo2()
15
+
func foo3(arg:Int, arg2:String)
16
+
func foo4<T:P1>(_:T)
10
17
}
11
18
12
19
protocolP2{
13
20
func bar1()
14
21
func bar2()
22
+
23
+
func foo2()
24
+
func foo3(arg:Int, arg2:String)
25
+
func foo3(arg:Int, arg2:Int)
26
+
func foo4<T:P1>(_:T)
27
+
func foo4<T:P2>(_:T)
15
28
}
16
29
17
-
classC1:P1,P2{} // expected-error{{type 'C1' does not conform to protocol 'P1'}} expected-error{{type 'C1' does not conform to protocol 'P2'}} expected-note{{do you want to add protocol stubs?}}{{20-20=\n func foo1() {\n <#code#>\n \}\n\n func foo2() {\n <#code#>\n \}\n\n func bar1() {\n <#code#>\n \}\n\n func bar2() {\n <#code#>\n \}\n}}
30
+
classC1:P1,P2{} // expected-error{{type 'C1' does not conform to protocol 'P1'}} expected-error{{type 'C1' does not conform to protocol 'P2'}} expected-note{{do you want to add protocol stubs?}}{{20-20=\n func foo1() {\n <#code#>\n \}\n\n func foo2() {\n <#code#>\n \}\n\n func foo3(arg: Int, arg2: String) {\n <#code#>\n \}\n\n func foo4<T>(_: T) where T : P1 {\n <#code#>\n \}\n\n func bar1() {\n <#code#>\n \}\n\n func bar2() {\n <#code#>\n \}\n\n func foo3(arg: Int, arg2: Int) {\n <#code#>\n \}\n}}
18
31
19
32
protocolP3{
20
33
associatedtypeT1
@@ -23,13 +36,29 @@ protocol P3 {
23
36
}
24
37
25
38
protocolP4:P3{
39
+
associatedtypeT1
26
40
associatedtypeT4=T1
27
41
associatedtypeT5=T2
28
42
associatedtypeT6=T3
29
43
}
30
44
31
45
classC2:P4{} // expected-error{{type 'C2' does not conform to protocol 'P4'}} expected-error{{type 'C2' does not conform to protocol 'P3'}} expected-note{{do you want to add protocol stubs?}}{{16-16=\n typealias T1 = <#type#>\n\n typealias T2 = <#type#>\n\n typealias T3 = <#type#>\n}}
32
46
47
+
protocolP5{
48
+
func foo1()
49
+
func foo2(arg:Int, arg2:String)
50
+
func foo3<T:P3>(_:T)
51
+
}
52
+
53
+
protocolP6:P5{
54
+
func foo1()
55
+
func foo2(arg:Int, arg2:String)
56
+
func foo2(arg:Int, arg2:Int)
57
+
func foo3<T:P3>(_:T)
58
+
func foo3<T:P4>(_:T)
59
+
}
60
+
61
+
classC3:P6{} // expected-error{{type 'C3' does not conform to protocol 'P5'}} expected-error{{type 'C3' does not conform to protocol 'P6'}} expected-note{{do you want to add protocol stubs?}}{{16-16=\n func foo1() {\n <#code#>\n \}\n\n func foo2(arg: Int, arg2: String) {\n <#code#>\n \}\n\n func foo2(arg: Int, arg2: Int) {\n <#code#>\n \}\n\n func foo3<T>(_: T) where T : P3 {\n <#code#>\n \}\n}}
0 commit comments