Ignore unsopported constant expr
error
This commit is contained in:
parent
ee25791df5
commit
75fc11806d
@ -135,6 +135,7 @@ impl<'a, 'gcx> CheckCrateVisitor<'a, 'gcx> {
|
||||
IndexOpFeatureGated => {}
|
||||
ErroneousReferencedConstant(_) => {}
|
||||
TypeckError => {}
|
||||
MiscCatchAll => {}
|
||||
_ => {
|
||||
self.tcx.lint_node(CONST_ERR,
|
||||
expr.id,
|
||||
|
@ -16,6 +16,5 @@ use std::cell::RefCell;
|
||||
static boxed: Box<RefCell<isize>> = box RefCell::new(0);
|
||||
//~^ ERROR allocations are not allowed in statics
|
||||
//~| ERROR `std::cell::RefCell<isize>: std::marker::Sync` is not satisfied
|
||||
//~| WARN unsupported constant expr
|
||||
|
||||
fn main() { }
|
||||
|
@ -12,6 +12,5 @@
|
||||
|
||||
static mut a: Box<isize> = box 3;
|
||||
//~^ ERROR allocations are not allowed in statics
|
||||
//~| WARN: constant evaluation error
|
||||
|
||||
fn main() {}
|
||||
|
32
src/test/run-pass/issue-46553.rs
Normal file
32
src/test/run-pass/issue-46553.rs
Normal file
@ -0,0 +1,32 @@
|
||||
// Copyright 2017 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 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(const_fn)]
|
||||
#![warn(const_err)]
|
||||
|
||||
pub struct Data<T> {
|
||||
function: fn() -> T,
|
||||
}
|
||||
|
||||
impl<T> Data<T> {
|
||||
pub const fn new(function: fn() -> T) -> Data<T> {
|
||||
Data {
|
||||
function: function,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub static DATA: Data<i32> = Data::new(|| {
|
||||
413i32
|
||||
});
|
||||
|
||||
fn main() {
|
||||
print!("{:?}", (DATA.function)());
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user