Skip to content

Commit c12eabf

Browse files
committed
Rollup merge of #47382 - topecongiro:issue-43105, r=eddyb
Ignore CTFE errors while lowering patterns Closes #43105. r? @eddyb
2 parents 21ac84e + 42410a9 commit c12eabf

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/librustc_const_eval/pattern.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,8 @@ impl<'a, 'tcx> Pattern<'tcx> {
280280
let mut pcx = PatternContext::new(tcx, param_env_and_substs, tables);
281281
let result = pcx.lower_pattern(pat);
282282
if !pcx.errors.is_empty() {
283-
span_bug!(pat.span, "encountered errors lowering pattern: {:?}", pcx.errors)
283+
let msg = format!("encountered errors lowering pattern: {:?}", pcx.errors);
284+
tcx.sess.delay_span_bug(pat.span, &msg);
284285
}
285286
debug!("Pattern::from_hir({:?}) = {:?}", pat, result);
286287
result

src/test/compile-fail/issue-43105.rs

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
fn xyz() -> u8 { 42 }
12+
13+
const NUM: u8 = xyz();
14+
//~^ ERROR calls in constants are limited to constant functions, struct and enum constructors
15+
16+
fn main() {
17+
match 1 {
18+
NUM => unimplemented!(),
19+
_ => unimplemented!(),
20+
}
21+
}

0 commit comments

Comments
 (0)