Skip to content

Commit cf45924

Browse files
committed
fix {} in constants
fixes #31384
1 parent cc05dfe commit cf45924

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

src/librustc/middle/const_val.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ pub enum ConstVal {
2727
ByteStr(Rc<Vec<u8>>),
2828
Bool(bool),
2929
Struct(DefId, BTreeMap<ast::Name, ConstVal>),
30+
/// Tuple or Tuple structs
3031
Tuple(Option<DefId>, Vec<ConstVal>),
32+
/// A function pointer
3133
Function(DefId),
3234
Array(Vec<ConstVal>),
3335
Repeat(Box<ConstVal>, u64),

src/librustc_const_eval/eval.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ pub fn eval_const_expr_partial<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
827827
hir::ExprBlock(ref block) => {
828828
match block.expr {
829829
Some(ref expr) => eval_const_expr_partial(tcx, &expr, ty_hint, fn_args)?,
830-
None => signal!(e, UnimplementedConstVal("empty block")),
830+
None => Tuple(None, Vec::new()), // unit value
831831
}
832832
}
833833
hir::ExprType(ref e, _) => eval_const_expr_partial(tcx, &e, ty_hint, fn_args)?,

src/test/run-pass/const-fn.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
// A very basic test of const fn functionality.
1212

1313
#![feature(const_fn, const_indexing)]
14+
#![deny(const_err)]
1415

1516
const fn add(x: u32, y: u32) -> u32 {
1617
x + y
@@ -32,6 +33,8 @@ const fn generic_arr<T: Copy>(t: [T; 1]) -> T {
3233
t[0]
3334
}
3435

36+
const fn f(_: ()) -> usize { 1 }
37+
3538
const SUM: u32 = add(44, 22);
3639
const DIFF: u32 = sub(44, 22);
3740
const DIV: u32 = unsafe{div(44, 22)};
@@ -46,4 +49,5 @@ fn main() {
4649
let _: [&'static str; sub(100, 99) as usize] = ["hi"];
4750
let _: [&'static str; generic(1)] = ["hi"];
4851
let _: [&'static str; generic_arr([1])] = ["hi"];
52+
let _: [&'static str; f({})] = ["hi"];
4953
}

0 commit comments

Comments
 (0)