@@ -75,7 +75,7 @@ func fail2<
75
75
where
76
76
T. Foo == U . Foo , T. Foo == X , U. Foo == Y // expected-error{{generic parameter 'Foo' cannot be equal to both 'X' and 'Y'}}
77
77
> ( t: T , u: U ) -> ( X , Y ) {
78
- return ( t. foo, u. foo) // expected-error{{cannot convert return expression of type '(X, X)' to expected return type '(X, Y)'}}
78
+ return ( t. foo, u. foo) // expected-error{{cannot convert return expression of type '(X, X)' to return type '(X, Y)'}}
79
79
}
80
80
81
81
func test4< T: Barrable where T. Bar == Y > ( t: T ) -> Y {
@@ -87,7 +87,7 @@ func fail3<
87
87
where
88
88
T. Bar == X // expected-error{{'X' does not conform to required protocol 'Fooable'}}
89
89
> ( t: T ) -> X {
90
- return t. bar // expected-error{{cannot convert return expression of type 'T.Bar' to expected return type 'X'}}
90
+ return t. bar // expected-error{{cannot convert return expression of type 'T.Bar' to return type 'X'}}
91
91
}
92
92
93
93
func test5< T: Barrable where T. Bar. Foo == X > ( t: T ) -> X {
@@ -108,7 +108,7 @@ func fail4<
108
108
T. Bar == Y ,
109
109
T. Bar. Foo == Z // expected-error{{generic parameter 'Foo' cannot be equal to both 'Foo' (aka 'X') and 'Z'}}
110
110
> ( t: T ) -> ( Y , Z ) {
111
- return ( t. bar, t. bar. foo) // expected-error{{cannot convert return expression of type '(Y, X)' to expected return type '(Y, Z)'}}
111
+ return ( t. bar, t. bar. foo) // expected-error{{cannot convert return expression of type '(Y, X)' to return type '(Y, Z)'}}
112
112
}
113
113
114
114
// TODO: repeat diagnostic
@@ -118,7 +118,7 @@ func fail5<
118
118
T. Bar. Foo == Z ,
119
119
T. Bar == Y // expected-error 2{{generic parameter 'Foo' cannot be equal to both 'Z' and 'Foo'}}
120
120
> ( t: T ) -> ( Y , Z ) {
121
- return ( t. bar, t. bar. foo) // expected-error{{cannot convert return expression of type '(Y, X)' to expected return type '(Y, Z)'}}
121
+ return ( t. bar, t. bar. foo) // expected-error{{cannot convert return expression of type '(Y, X)' to return type '(Y, Z)'}}
122
122
}
123
123
124
124
func test8< T: Fooable where T. Foo == X , T. Foo == Y > ( t: T ) { } // expected-error{{generic parameter 'Foo' cannot be equal to both 'X' and 'Y'}}
@@ -130,7 +130,7 @@ func testAssocTypeEquivalence<
130
130
}
131
131
132
132
func fail6< T where T == Int > ( t: T ) -> Int { // expected-error{{same-type requirement makes generic parameter 'T' non-generic}}
133
- return t // expected-error{{cannot convert return expression of type 'T' to expected return type 'Int'}}
133
+ return t // expected-error{{cannot convert return expression of type 'T' to return type 'Int'}}
134
134
}
135
135
136
136
func test8<
0 commit comments