mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-29 18:23:49 +00:00
7fd62320fe
Fixes #126831. Without this patch, type normalization is not always idempotent, which leads to all sorts of bugs in places that assume that normalizing a normalized type does nothing.
26 lines
533 B
Rust
26 lines
533 B
Rust
//@ compile-flags: -Cdebuginfo=2 --crate-type=lib
|
|
//@ build-pass
|
|
#![feature(adt_const_params)]
|
|
|
|
const N_ISLANDS: usize = 4;
|
|
|
|
pub type Matrix = [[usize; N_ISLANDS]; N_ISLANDS];
|
|
|
|
const EMPTY_MATRIX: Matrix = [[0; N_ISLANDS]; N_ISLANDS];
|
|
|
|
const fn to_matrix() -> Matrix {
|
|
EMPTY_MATRIX
|
|
}
|
|
|
|
const BRIDGE_MATRIX: [[usize; N_ISLANDS]; N_ISLANDS] = to_matrix();
|
|
|
|
pub struct Walk<const CURRENT: usize, const REMAINING: Matrix> {
|
|
_p: (),
|
|
}
|
|
|
|
impl Walk<0, BRIDGE_MATRIX> {
|
|
pub const fn new() -> Self {
|
|
Self { _p: () }
|
|
}
|
|
}
|