@@ -17,7 +17,7 @@ LL | fn in_impl_Fn_parameter_in_return() -> &'static impl Fn(impl Debug) { panic
17
17
| outer `impl Trait`
18
18
19
19
error[E0658]: `impl Trait` in type aliases is unstable
20
- --> $DIR/where-allowed.rs:121 :16
20
+ --> $DIR/where-allowed.rs:119 :16
21
21
|
22
22
LL | type Out = impl Debug;
23
23
| ^^^^^^^^^^
@@ -26,7 +26,7 @@ LL | type Out = impl Debug;
26
26
= help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
27
27
28
28
error[E0658]: `impl Trait` in type aliases is unstable
29
- --> $DIR/where-allowed.rs:157 :23
29
+ --> $DIR/where-allowed.rs:154 :23
30
30
|
31
31
LL | type InTypeAlias<R> = impl Debug;
32
32
| ^^^^^^^^^^
@@ -35,7 +35,7 @@ LL | type InTypeAlias<R> = impl Debug;
35
35
= help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
36
36
37
37
error[E0658]: `impl Trait` in type aliases is unstable
38
- --> $DIR/where-allowed.rs:161 :39
38
+ --> $DIR/where-allowed.rs:157 :39
39
39
|
40
40
LL | type InReturnInTypeAlias<R> = fn() -> impl Debug;
41
41
| ^^^^^^^^^^
@@ -110,184 +110,207 @@ LL | fn in_impl_Fn_parameter_in_return() -> &'static impl Fn(impl Debug) { panic
110
110
| ^^^^^^^^^^
111
111
112
112
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
113
- --> $DIR/where-allowed.rs:62 :59
113
+ --> $DIR/where-allowed.rs:61 :59
114
114
|
115
115
LL | fn in_impl_Fn_return_in_return() -> &'static impl Fn() -> impl Debug { panic!() }
116
116
| ^^^^^^^^^^
117
117
118
118
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
119
- --> $DIR/where-allowed.rs:67 :38
119
+ --> $DIR/where-allowed.rs:65 :38
120
120
|
121
121
LL | fn in_Fn_parameter_in_generics<F: Fn(impl Debug)> (_: F) { panic!() }
122
122
| ^^^^^^^^^^
123
123
124
124
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
125
- --> $DIR/where-allowed.rs:71 :40
125
+ --> $DIR/where-allowed.rs:69 :40
126
126
|
127
127
LL | fn in_Fn_return_in_generics<F: Fn() -> impl Debug> (_: F) { panic!() }
128
128
| ^^^^^^^^^^
129
129
130
130
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
131
- --> $DIR/where-allowed.rs:84 :32
131
+ --> $DIR/where-allowed.rs:82 :32
132
132
|
133
133
LL | struct InBraceStructField { x: impl Debug }
134
134
| ^^^^^^^^^^
135
135
136
136
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
137
- --> $DIR/where-allowed.rs:88 :41
137
+ --> $DIR/where-allowed.rs:86 :41
138
138
|
139
139
LL | struct InAdtInBraceStructField { x: Vec<impl Debug> }
140
140
| ^^^^^^^^^^
141
141
142
142
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
143
- --> $DIR/where-allowed.rs:92 :27
143
+ --> $DIR/where-allowed.rs:90 :27
144
144
|
145
145
LL | struct InTupleStructField(impl Debug);
146
146
| ^^^^^^^^^^
147
147
148
148
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
149
- --> $DIR/where-allowed.rs:97 :25
149
+ --> $DIR/where-allowed.rs:95 :25
150
150
|
151
151
LL | InBraceVariant { x: impl Debug },
152
152
| ^^^^^^^^^^
153
153
154
154
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
155
- --> $DIR/where-allowed.rs:99 :20
155
+ --> $DIR/where-allowed.rs:97 :20
156
156
|
157
157
LL | InTupleVariant(impl Debug),
158
158
| ^^^^^^^^^^
159
159
160
160
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
161
- --> $DIR/where-allowed.rs:110 :23
161
+ --> $DIR/where-allowed.rs:108 :23
162
162
|
163
163
LL | fn in_return() -> impl Debug;
164
164
| ^^^^^^^^^^
165
165
166
166
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
167
- --> $DIR/where-allowed.rs:128 :34
167
+ --> $DIR/where-allowed.rs:125 :34
168
168
|
169
169
LL | fn in_trait_impl_return() -> impl Debug { () }
170
170
| ^^^^^^^^^^
171
171
172
172
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
173
- --> $DIR/where-allowed.rs:141 :33
173
+ --> $DIR/where-allowed.rs:138 :33
174
174
|
175
175
LL | fn in_foreign_parameters(_: impl Debug);
176
176
| ^^^^^^^^^^
177
177
178
178
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
179
- --> $DIR/where-allowed.rs:144 :31
179
+ --> $DIR/where-allowed.rs:141 :31
180
180
|
181
181
LL | fn in_foreign_return() -> impl Debug;
182
182
| ^^^^^^^^^^
183
183
184
184
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
185
- --> $DIR/where-allowed.rs:161 :39
185
+ --> $DIR/where-allowed.rs:157 :39
186
186
|
187
187
LL | type InReturnInTypeAlias<R> = fn() -> impl Debug;
188
188
| ^^^^^^^^^^
189
189
190
190
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
191
- --> $DIR/where-allowed.rs:166 :16
191
+ --> $DIR/where-allowed.rs:162 :16
192
192
|
193
193
LL | impl PartialEq<impl Debug> for () {
194
194
| ^^^^^^^^^^
195
195
196
196
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
197
- --> $DIR/where-allowed.rs:171 :24
197
+ --> $DIR/where-allowed.rs:167 :24
198
198
|
199
199
LL | impl PartialEq<()> for impl Debug {
200
200
| ^^^^^^^^^^
201
201
202
202
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
203
- --> $DIR/where-allowed.rs:176 :6
203
+ --> $DIR/where-allowed.rs:172 :6
204
204
|
205
205
LL | impl impl Debug {
206
206
| ^^^^^^^^^^
207
207
208
208
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
209
- --> $DIR/where-allowed.rs:182 :24
209
+ --> $DIR/where-allowed.rs:178 :24
210
210
|
211
211
LL | impl InInherentImplAdt<impl Debug> {
212
212
| ^^^^^^^^^^
213
213
214
214
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
215
- --> $DIR/where-allowed.rs:188 :11
215
+ --> $DIR/where-allowed.rs:184 :11
216
216
|
217
217
LL | where impl Debug: Debug
218
218
| ^^^^^^^^^^
219
219
220
220
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
221
- --> $DIR/where-allowed.rs:195 :15
221
+ --> $DIR/where-allowed.rs:191 :15
222
222
|
223
223
LL | where Vec<impl Debug>: Debug
224
224
| ^^^^^^^^^^
225
225
226
226
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
227
- --> $DIR/where-allowed.rs:202 :24
227
+ --> $DIR/where-allowed.rs:198 :24
228
228
|
229
229
LL | where T: PartialEq<impl Debug>
230
230
| ^^^^^^^^^^
231
231
232
232
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
233
- --> $DIR/where-allowed.rs:209 :17
233
+ --> $DIR/where-allowed.rs:205 :17
234
234
|
235
235
LL | where T: Fn(impl Debug)
236
236
| ^^^^^^^^^^
237
237
238
238
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
239
- --> $DIR/where-allowed.rs:216 :22
239
+ --> $DIR/where-allowed.rs:212 :22
240
240
|
241
241
LL | where T: Fn() -> impl Debug
242
242
| ^^^^^^^^^^
243
243
244
244
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
245
- --> $DIR/where-allowed.rs:222:29
245
+ --> $DIR/where-allowed.rs:218:40
246
+ |
247
+ LL | struct InStructGenericParamDefault<T = impl Debug>(T);
248
+ | ^^^^^^^^^^
249
+
250
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
251
+ --> $DIR/where-allowed.rs:222:36
252
+ |
253
+ LL | enum InEnumGenericParamDefault<T = impl Debug> { Variant(T) }
254
+ | ^^^^^^^^^^
255
+
256
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
257
+ --> $DIR/where-allowed.rs:226:38
258
+ |
259
+ LL | trait InTraitGenericParamDefault<T = impl Debug> {}
260
+ | ^^^^^^^^^^
261
+
262
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
263
+ --> $DIR/where-allowed.rs:230:41
264
+ |
265
+ LL | type InTypeAliasGenericParamDefault<T = impl Debug> = T;
266
+ | ^^^^^^^^^^
267
+
268
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
269
+ --> $DIR/where-allowed.rs:234:11
270
+ |
271
+ LL | impl <T = impl Debug> T {}
272
+ | ^^^^^^^^^^
273
+
274
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
275
+ --> $DIR/where-allowed.rs:240:40
276
+ |
277
+ LL | fn in_method_generic_param_default<T = impl Debug>(_: T) {}
278
+ | ^^^^^^^^^^
279
+
280
+ error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
281
+ --> $DIR/where-allowed.rs:246:29
246
282
|
247
283
LL | let _in_local_variable: impl Fn() = || {};
248
284
| ^^^^^^^^^
249
285
|
250
286
= help: add `#![feature(impl_trait_in_bindings)]` to the crate attributes to enable
251
287
252
288
error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
253
- --> $DIR/where-allowed.rs:224 :46
289
+ --> $DIR/where-allowed.rs:248 :46
254
290
|
255
291
LL | let _in_return_in_local_variable = || -> impl Fn() { || {} };
256
292
| ^^^^^^^^^
257
293
258
- error[E0720]: cannot resolve opaque type
259
- --> $DIR/where-allowed.rs:56:49
260
- |
261
- LL | fn in_impl_Fn_parameter_in_return() -> &'static impl Fn(impl Debug) { panic!() }
262
- | ^^^^^^^^^^^^^^^^^^^ -------- this returned value is of `!` type
263
- | |
264
- | cannot resolve opaque type
265
- |
266
- = help: this error will resolve once the item's body returns a concrete type
267
-
268
- error[E0720]: cannot resolve opaque type
269
- --> $DIR/where-allowed.rs:62:46
294
+ error: defaults for type parameters are only allowed in `struct`, `enum`, `type`, or `trait` definitions
295
+ --> $DIR/where-allowed.rs:234:7
270
296
|
271
- LL | fn in_impl_Fn_return_in_return() -> &'static impl Fn() -> impl Debug { panic!() }
272
- | ^^^^^^^^^^^^^^^^^^^^^^^ -------- this returned value is of `!` type
273
- | |
274
- | cannot resolve opaque type
297
+ LL | impl <T = impl Debug> T {}
298
+ | ^
275
299
|
276
- = help: this error will resolve once the item's body returns a concrete type
300
+ = note: `#[deny(invalid_type_param_default)]` on by default
301
+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
302
+ = note: for more information, see issue #36887 <https://github.com/rust-lang/rust/issues/36887>
277
303
278
- error: could not find defining uses
279
- --> $DIR/where-allowed.rs:121:16
304
+ error: defaults for type parameters are only allowed in `struct`, `enum`, `type`, or `trait` definitions
305
+ --> $DIR/where-allowed.rs:240:36
280
306
|
281
- LL | type Out = impl Debug;
282
- | ^^^^^^^^^^
283
-
284
- error: could not find defining uses
285
- --> $DIR/where-allowed.rs:157:23
307
+ LL | fn in_method_generic_param_default<T = impl Debug>(_: T) {}
308
+ | ^
286
309
|
287
- LL | type InTypeAlias<R> = impl Debug;
288
- | ^^^^^^^^^^
310
+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
311
+ = note: for more information, see issue #36887 <https://github.com/rust-lang/rust/issues/36887>
289
312
290
- error: aborting due to 44 previous errors
313
+ error: aborting due to 48 previous errors
291
314
292
- Some errors have detailed explanations: E0562, E0658, E0666, E0720 .
315
+ Some errors have detailed explanations: E0562, E0658, E0666.
293
316
For more information about an error, try `rustc --explain E0562`.
0 commit comments