Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add tests checking that a number of feature gates are gating their f…
…eatures.

Namely:

 * `box_syntax`
 * `box_patterns`
 * `simd_ffi`
 * `macro_reexport`

 cc #22820
  • Loading branch information
fhahn committed Mar 21, 2015
1 parent ecdf792 commit c48bb85
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/test/compile-fail-fulldeps/gated-macro-reexports.rs
@@ -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 changes: 22 additions & 0 deletions src/test/compile-fail/gated-box-patterns.rs
@@ -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 changes: 17 additions & 0 deletions src/test/compile-fail/gated-box-syntax.rs
@@ -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 changes: 27 additions & 0 deletions src/test/compile-fail/gated-simd-ffi.rs
@@ -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() {}

0 comments on commit c48bb85

Please sign in to comment.