This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed
tests/ui/traits/non_lifetime_binders Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ feature( generic_const_exprs) ]
2+ //~^ WARN the feature `generic_const_exprs` is incomplete
3+ #![ feature( non_lifetime_binders) ]
4+ //~^ WARN the feature `non_lifetime_binders` is incomplete
5+
6+ // Test for <https://github.com/rust-lang/rust/issues/115497>,
7+ // which originally relied on associated_type_bounds, but was
8+ // minimized away from that.
9+
10+ trait TraitA {
11+ type AsA ;
12+ }
13+ trait TraitB {
14+ type AsB ;
15+ }
16+ trait TraitC { }
17+
18+ fn foo< T > ( )
19+ where
20+ for <const N : u8 = { T :: A } > T : TraitA <AsA = impl TraitB <AsB = impl TraitC >>,
21+ //~^ ERROR defaults for generic parameters are not allowed in `for<...>` binders
22+ //~| ERROR `impl Trait` is not allowed in bounds
23+ {
24+ }
25+
26+ fn main ( ) { }
Original file line number Diff line number Diff line change 1+ warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
2+ --> $DIR/bad-suggestion-on-missing-assoc.rs:1:12
3+ |
4+ LL | #![feature(generic_const_exprs)]
5+ | ^^^^^^^^^^^^^^^^^^^
6+ |
7+ = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
8+ = note: `#[warn(incomplete_features)]` on by default
9+
10+ warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes
11+ --> $DIR/bad-suggestion-on-missing-assoc.rs:3:12
12+ |
13+ LL | #![feature(non_lifetime_binders)]
14+ | ^^^^^^^^^^^^^^^^^^^^
15+ |
16+ = note: see issue #108185 <https://github.com/rust-lang/rust/issues/108185> for more information
17+
18+ error: defaults for generic parameters are not allowed in `for<...>` binders
19+ --> $DIR/bad-suggestion-on-missing-assoc.rs:20:9
20+ |
21+ LL | for<const N: u8 = { T::A }> T: TraitA<AsA = impl TraitB<AsB = impl TraitC>>,
22+ | ^^^^^^^^^^^^^^^^^^^^^^
23+
24+ error[E0562]: `impl Trait` is not allowed in bounds
25+ --> $DIR/bad-suggestion-on-missing-assoc.rs:20:49
26+ |
27+ LL | for<const N: u8 = { T::A }> T: TraitA<AsA = impl TraitB<AsB = impl TraitC>>,
28+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29+ |
30+ = note: `impl Trait` is only allowed in arguments and return types of functions and methods
31+
32+ error: aborting due to 2 previous errors; 2 warnings emitted
33+
34+ For more information about this error, try `rustc --explain E0562`.
You can’t perform that action at this time.
0 commit comments