File tree Expand file tree Collapse file tree 4 files changed +23
-16
lines changed
compiler/rustc_hir_analysis/src/collect
ui/const-generics/generic_const_exprs Expand file tree Collapse file tree 4 files changed +23
-16
lines changed Original file line number Diff line number Diff line change @@ -421,7 +421,9 @@ fn const_evaluatable_predicates_of<'tcx>(
421421 impl < ' tcx > TypeVisitor < TyCtxt < ' tcx > > for ConstCollector < ' tcx > {
422422 fn visit_const ( & mut self , c : ty:: Const < ' tcx > ) {
423423 if let ty:: ConstKind :: Unevaluated ( uv) = c. kind ( ) {
424- if is_const_param_default ( self . tcx , uv. def . expect_local ( ) ) {
424+ if let Some ( local) = uv. def . as_local ( )
425+ && is_const_param_default ( self . tcx , local)
426+ {
425427 // Do not look into const param defaults,
426428 // these get checked when they are actually instantiated.
427429 //
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ // regression test for #133808.
2+
3+ #![ feature( generic_const_exprs) ]
4+ #![ feature( min_generic_const_args) ]
5+ #![ allow( incomplete_features) ]
6+ #![ crate_type = "lib" ]
7+
8+ pub trait Foo { }
9+ impl Foo for [ u8 ; std:: path:: MAIN_SEPARATOR ] { }
10+ //~^ ERROR the constant `MAIN_SEPARATOR` is not of type `usize`
Original file line number Diff line number Diff line change 1+ error: the constant `MAIN_SEPARATOR` is not of type `usize`
2+ --> $DIR/non-local-const.rs:9:14
3+ |
4+ LL | impl Foo for [u8; std::path::MAIN_SEPARATOR] {}
5+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `char`
6+ |
7+ = note: the length of array `[u8; MAIN_SEPARATOR]` must be type `usize`
8+
9+ error: aborting due to 1 previous error
10+
You can’t perform that action at this time.
0 commit comments