Rollup merge of #78224 - lcnr:repeat-expr, r=varkor
min_const_generics: allow ty param in repeat expr implements https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/repeat.20expressions Even with `min_const_generics` active, now keeps resulting in future compat warnings instead of hard errors. Const parameters, for example `[0; N + 1]`, still result in hard errors during resolve. ```rust #![allow(dead_code)] fn foo<T>() { [0; std::mem::size_of::<*mut T>()]; } struct Foo<T>(T); impl<T> Foo<T> { const ASSOC: usize = 4; fn test() { [0; Self::ASSOC]; } } ``` r? @varkor cc @petrochenkov
This commit is contained in:
commit
270d2e0c2e
10 changed files with 217 additions and 39 deletions
|
@ -206,8 +206,10 @@ pub enum Res<Id = hir::HirId> {
|
|||
/// ```rust
|
||||
/// impl Foo { fn test() -> [u8; std::mem::size_of::<Self>()] {} }
|
||||
/// ```
|
||||
/// We do however allow `Self` in repeat expression even if it is generic to not break code
|
||||
/// which already works on stable while causing the `const_evaluatable_unchecked` future compat lint.
|
||||
///
|
||||
/// FIXME(lazy_normalization_consts): Remove this bodge once this feature is stable.
|
||||
/// FIXME(lazy_normalization_consts): Remove this bodge once that feature is stable.
|
||||
SelfTy(Option<DefId> /* trait */, Option<(DefId, bool)> /* impl */),
|
||||
ToolMod, // e.g., `rustfmt` in `#[rustfmt::skip]`
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue