Closed
Description
I tried this code:
type X = [(); {
fn hello(x: impl Clone) {
}
3
}];
I expect this to compile, but instead i get this error.
error[E0658]: `impl Trait` in type aliases is unstable
--> src/lib.rs:3:17
|
3 | fn hello(x: impl Clone) {
| ^^^^^^^^^^
|
Meta
Bug also reproduces on nightly.
rustc --version --verbose
:
rustc 1.85.1 (4eb161250 2025-03-15)
binary: rustc
commit-hash: 4eb161250e340c8f48f66e2b929ef4a5bed7c181
commit-date: 2025-03-15
host: x86_64-unknown-linux-gnu
release: 1.85.1
LLVM version: 19.1.7
Activity
fmease commentedon Mar 28, 2025
Yeep, that's the fragile visitors in ast_passes. In this case, we won't reset the context on AnonConst.
fmease commentedon Mar 28, 2025
I've already reported the general issue here #119924 in the past incl. your specific issue #119924 (comment)
fmease commentedon Mar 28, 2025
I guess you found this by fuzzing? If not, I can say I never thought sb. would stumble upon this for real ^^
LHolten commentedon Mar 28, 2025
I actually stumbled into this while developing a macro that defines a new type wherever you are supposed to provide a type.
As you can see this is extremely useful and extremely cursed code :D
P.S. I would appreciate anyone who uses this trick to credit me for the idea :P
(oh and you can expect to see this used to great effect in rust_query sometime soonish)
fmease commentedon Mar 28, 2025
Nice! I'll send a fix shortly!
Rollup merge of rust-lang#139063 - fmease:fix-tait-atpit-gating, r=ol…
Unrolled build for rust-lang#139063