@@ -1032,28 +1032,29 @@ struct B<T> {
1032
1032
}
1033
1033
1034
1034
trait Trait<T> {
1035
- fn f(a: T);
1035
+ fn f(&self, a: T) -> T ;
1036
1036
}
1037
1037
1038
1038
impl<T1, T2> Trait<T1> for B<T2> {
1039
- fn f(a: T1) -> T2 { self. a }
1039
+ fn f(&self, a: T1) -> T1 { a }
1040
1040
}
1041
1041
1042
1042
struct A {}
1043
1043
struct S {
1044
- b$0 : B<A>,
1045
- }"# ,
1044
+ b :$0 B<A>,
1045
+ }
1046
+ "# ,
1046
1047
r#"
1047
1048
struct B<T> {
1048
1049
a: T
1049
1050
}
1050
1051
1051
1052
trait Trait<T> {
1052
- fn f(a: T);
1053
+ fn f(&self, a: T) -> T ;
1053
1054
}
1054
1055
1055
1056
impl<T1, T2> Trait<T1> for B<T2> {
1056
- fn f(a: T1) -> T2 { self. a }
1057
+ fn f(&self, a: T1) -> T1 { a }
1057
1058
}
1058
1059
1059
1060
struct A {}
@@ -1062,10 +1063,11 @@ struct S {
1062
1063
}
1063
1064
1064
1065
impl<T1> Trait<T1> for S {
1065
- fn f(a: T1) -> A {
1066
- <B<A> as Trait<T1>>::f(a)
1066
+ fn f(&self, a: T1) -> T1 {
1067
+ <B<A> as Trait<T1>>::f(&self.b, a)
1067
1068
}
1068
- }"# ,
1069
+ }
1070
+ "# ,
1069
1071
) ;
1070
1072
}
1071
1073
@@ -1088,7 +1090,8 @@ impl<T, T0> Trait<T> for B<T0> {
1088
1090
1089
1091
struct S<T> {
1090
1092
b : $0B<T>,
1091
- }"# ,
1093
+ }
1094
+ "# ,
1092
1095
r#"
1093
1096
struct B<T> {
1094
1097
a: T
@@ -1110,7 +1113,8 @@ impl<T, T1> Trait<T> for S<T1> {
1110
1113
fn f(&self, a: T) -> T {
1111
1114
<B<T1> as Trait<T>>::f(&self.b, a)
1112
1115
}
1113
- }"# ,
1116
+ }
1117
+ "# ,
1114
1118
) ;
1115
1119
}
1116
1120
@@ -1133,7 +1137,8 @@ impl<'a, T, T0> Trait<T> for B<'a, T0> {
1133
1137
1134
1138
struct S<'a, T> {
1135
1139
b : $0B<'a, T>,
1136
- }"# ,
1140
+ }
1141
+ "# ,
1137
1142
r#"
1138
1143
struct B<'a, T> {
1139
1144
a: &'a T
@@ -1155,7 +1160,8 @@ impl<'a, T, T1> Trait<T> for S<'a, T1> {
1155
1160
fn f(&self, a: T) -> T {
1156
1161
<B<'a, T1> as Trait<T>>::f(&self.b, a)
1157
1162
}
1158
- }"# ,
1163
+ }
1164
+ "# ,
1159
1165
) ;
1160
1166
}
1161
1167
@@ -1179,7 +1185,8 @@ impl<T, T0> Trait<T> for B<T, T0> {
1179
1185
1180
1186
struct S<T> {
1181
1187
b :$0 B<i32, T>,
1182
- }"# ,
1188
+ }
1189
+ "# ,
1183
1190
r#"
1184
1191
struct B<T1, T2> {
1185
1192
a: T1,
@@ -1202,7 +1209,8 @@ impl<T1> Trait<i32> for S<T1> {
1202
1209
fn f(&self, a: i32) -> i32 {
1203
1210
<B<i32, T1> as Trait<i32>>::f(&self.b, a)
1204
1211
}
1205
- }"# ,
1212
+ }
1213
+ "# ,
1206
1214
) ;
1207
1215
}
1208
1216
@@ -1225,7 +1233,8 @@ impl<T> Trait<T> for B<T> {
1225
1233
1226
1234
struct S<T> {
1227
1235
b : $0B<T>,
1228
- }"# ,
1236
+ }
1237
+ "# ,
1229
1238
r#"
1230
1239
struct B<T> {
1231
1240
a: T
@@ -1247,7 +1256,8 @@ impl<T0> Trait<T0> for S<T0> {
1247
1256
fn f(&self, a: T0) -> T0 {
1248
1257
<B<T0> as Trait<T0>>::f(&self.b, a)
1249
1258
}
1250
- }"# ,
1259
+ }
1260
+ "# ,
1251
1261
) ;
1252
1262
}
1253
1263
0 commit comments