Open
Description
I ran cargo doc
on this code (src/lib.rs
):
// #![feature(min_const_generics)] // stable by now
type Array<T, const N: usize> = [T; N];
pub type A0 = [i32; 3]; // printed correctly
pub type A1 = Array<i32, 3>; // printed INCORRECTLY as `[i32; N]` (should print `[i32; 3]`)
pub struct B0(pub [i32; 3]); // printed correctly
pub struct B1(pub Array<i32, 3>); // printed INCORRECTLY as `B1(pub [i32; N])` (should print `[i32; 3]`)
I expected to see the definitions type A1 = [i32; 3];
and pub struct B1(pub [i32; 3]);
in the generated documentation.
Instead, I found type A1 = [i32; N];
and pub struct B1(pub [i32; N]);
.
That is, the definitions wrongly contain a stray identifier N
that should have been substituted with the literal 3
just like the T
was successfully substituted with i32
.
Meta
rustc --version --verbose
:
rustc 1.52.0-nightly (51748a8fc 2021-03-05)
binary: rustc
commit-hash: 51748a8fc77283914d4135f31b5966a407208187
commit-date: 2021-03-05
host: x86_64-unknown-linux-gnu
release: 1.52.0-nightly
LLVM version: 12.0.0
@rustbot modify labels: +T-rustdoc +A-const-generics +F-min_const_generics +C-bug