Add tests checking that a number of feature gates are gating their features.
Namely: * `box_syntax` * `box_patterns` * `simd_ffi` * `macro_reexport` cc #22820
This commit is contained in:
parent
ecdf792d1d
commit
c48bb85702
22
src/test/compile-fail-fulldeps/gated-macro-reexports.rs
Normal file
22
src/test/compile-fail-fulldeps/gated-macro-reexports.rs
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2014 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.
|
||||
|
||||
// Test that macro reexports item are gated by `macro_reexport` feature gate.
|
||||
|
||||
// aux-build:macro_reexport_1.rs
|
||||
// ignore-stage1
|
||||
|
||||
#![crate_type = "dylib"]
|
||||
|
||||
#[macro_reexport(reexported)]
|
||||
#[macro_use] #[no_link]
|
||||
extern crate macro_reexport_1;
|
||||
//~^ ERROR macros reexports are experimental and possibly buggy
|
||||
//~| HELP add #![feature(macro_reexport)] to the crate attributes to enable
|
22
src/test/compile-fail/gated-box-patterns.rs
Normal file
22
src/test/compile-fail/gated-box-patterns.rs
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2015 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.
|
||||
|
||||
// Test that patterns including the box syntax are gated by `box_patterns` feature gate.
|
||||
|
||||
fn main() {
|
||||
let x = Box::new(1);
|
||||
|
||||
match x {
|
||||
box 1 => (),
|
||||
//~^ box pattern syntax is experimental
|
||||
//~| add #![feature(box_patterns)] to the crate attributes to enable
|
||||
_ => ()
|
||||
};
|
||||
}
|
17
src/test/compile-fail/gated-box-syntax.rs
Normal file
17
src/test/compile-fail/gated-box-syntax.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2015 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.
|
||||
|
||||
// Test that the use of the box syntax is gated by `box_syntax` feature gate.
|
||||
|
||||
fn main() {
|
||||
let x = box 3;
|
||||
//~^ ERROR box expression syntax is experimental; you can call `Box::new` instead.
|
||||
//~| HELP add #![feature(box_syntax)] to the crate attributes to enable
|
||||
}
|
27
src/test/compile-fail/gated-simd-ffi.rs
Normal file
27
src/test/compile-fail/gated-simd-ffi.rs
Normal file
@ -0,0 +1,27 @@
|
||||
// Copyright 2015 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.
|
||||
|
||||
// Test that the use of smid types in the ffi is gated by `smid_ffi` feature gate.
|
||||
|
||||
#![feature(simd)]
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Copy)]
|
||||
#[simd]
|
||||
pub struct f32x4(f32, f32, f32, f32);
|
||||
|
||||
#[allow(dead_code)]
|
||||
extern {
|
||||
fn foo(x: f32x4);
|
||||
//~^ ERROR use of SIMD type `f32x4` in FFI is highly experimental and may result in invalid code
|
||||
//~| HELP add #![feature(simd_ffi)] to the crate attributes to enable
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user