diff --git a/src/test/compile-fail/issue-32829.rs b/src/test/compile-fail/issue-32829.rs index 9ac70882ca28c..e889c34700cf8 100644 --- a/src/test/compile-fail/issue-32829.rs +++ b/src/test/compile-fail/issue-32829.rs @@ -8,9 +8,85 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// error-pattern: calls in statics are limited +#![feature(const_fn)] -static S : u64 = { { panic!("foo"); 0 } }; +const bad: u32 = { + { + 5; //~ ERROR: blocks in constants are limited to items and tail expressions + 0 + } +}; + +const bad_two: u32 = { + { + invalid(); + //~^ ERROR: blocks in constants are limited to items and tail expressions + //~^^ ERROR: calls in constants are limited to constant functions, struct and enum + 0 + } +}; + +const bad_three: u32 = { + { + valid(); + //~^ ERROR: blocks in constants are limited to items and tail expressions + 0 + } +}; + +static bad_four: u32 = { + { + 5; //~ ERROR: blocks in statics are limited to items and tail expressions + 0 + } +}; + +static bad_five: u32 = { + { + invalid(); + //~^ ERROR: blocks in statics are limited to items and tail expressions + //~^^ ERROR: calls in statics are limited to constant functions, struct and enum + 0 + } +}; + +static bad_six: u32 = { + { + valid(); + //~^ ERROR: blocks in statics are limited to items and tail expressions + 0 + } +}; + +static mut bad_seven: u32 = { + { + 5; //~ ERROR: blocks in statics are limited to items and tail expressions + 0 + } +}; + +static mut bad_eight: u32 = { + { + invalid(); + //~^ ERROR: blocks in statics are limited to items and tail expressions + //~^^ ERROR: calls in statics are limited to constant functions, struct and enum + 0 + } +}; + +static mut bad_nine: u32 = { + { + valid(); + //~^ ERROR: blocks in statics are limited to items and tail expressions + 0 + } +}; + +fn invalid() {} +const fn valid() {} + +static S: u64 = { { panic!("foo"); 0 } }; +//~^ ERROR: calls in statics are limited fn main() { println!("{:?}", S); diff --git a/src/test/compile-fail/issue32829.rs b/src/test/compile-fail/issue32829.rs deleted file mode 100644 index e0b847fc99470..0000000000000 --- a/src/test/compile-fail/issue32829.rs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2016 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. -#![feature(const_fn)] - -const bad : u32 = { - { - 5; //~ ERROR: blocks in constants are limited to items and tail expressions - 0 - } -}; - -const bad_two : u32 = { - { - invalid(); - //~^ ERROR: blocks in constants are limited to items and tail expressions - //~^^ ERROR: calls in constants are limited to constant functions, struct and enum - 0 - } -}; - -const bad_three : u32 = { - { - valid(); - //~^ ERROR: blocks in constants are limited to items and tail expressions - 0 - } -}; - -static bad_four : u32 = { - { - 5; //~ ERROR: blocks in statics are limited to items and tail expressions - 0 - } -}; - -static bad_five : u32 = { - { - invalid(); - //~^ ERROR: blocks in statics are limited to items and tail expressions - //~^^ ERROR: calls in statics are limited to constant functions, struct and enum - 0 - } -}; - -static bad_six : u32 = { - { - valid(); - //~^ ERROR: blocks in statics are limited to items and tail expressions - 0 - } -}; - -static mut bad_seven : u32 = { - { - 5; //~ ERROR: blocks in statics are limited to items and tail expressions - 0 - } -}; - -static mut bad_eight : u32 = { - { - invalid(); - //~^ ERROR: blocks in statics are limited to items and tail expressions - //~^^ ERROR: calls in statics are limited to constant functions, struct and enum - 0 - } -}; - -static mut bad_nine : u32 = { - { - valid(); - //~^ ERROR: blocks in statics are limited to items and tail expressions - 0 - } -}; - - -fn invalid() {} -const fn valid() {} - -fn main() {}