struct Message {
    field2: Vec<"MessageEntity">,
    field3: Vec<1>,
    field4: Vec<2, 3>,
}

struct RectangularArray<T, const WIDTH: usize, const HEIGHT: usize> {
    array: [[T; WIDTH]; HEIGHT],
}

fn main() {
    const X: usize = 7;
    let x: RectangularArray<i32, 2, 4>;
    let y: RectangularArray<i32, X, { 2 * 2 }>;
}

fn foo<const X: usize>() {
    const Y: usize = X * 2;
    static Z: (usize, usize) = (X, X);

    struct Foo([i32; X]);
}

type Foo<const N: usize> = [i32; N + 1];

pub trait Foo: Bar<{ Baz::COUNT }> {
    const ASD: usize;
}

// #4263
fn const_generics_on_params<
    // AAAA
    const BBBB: usize,
    /* CCCC */
    const DDDD: usize,
>() {
}
