mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Add infrastructure for compiletests
Also adds compilefail tests for some lints, closes #5646.
This commit is contained in:
parent
46b3eb6535
commit
dfdbcabc2e
13 changed files with 257 additions and 1 deletions
18
tests/compiletest/plugin/compile-fail/ban.rs
Normal file
18
tests/compiletest/plugin/compile-fail/ban.rs
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(plugin)]
|
||||
#![plugin(plugins)]
|
||||
|
||||
extern crate js;
|
||||
|
||||
use js::jsval::JSVal;
|
||||
use std::cell::Cell;
|
||||
|
||||
struct Foo {
|
||||
bar: Cell<JSVal>
|
||||
//~^ ERROR Banned type Cell<JSVal> detected. Use MutHeap<JSVal> instead,
|
||||
}
|
||||
|
||||
fn main() {}
|
16
tests/compiletest/plugin/compile-fail/privatize.rs
Normal file
16
tests/compiletest/plugin/compile-fail/privatize.rs
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(plugin, custom_attribute)]
|
||||
#![plugin(plugins)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
#[privatize]
|
||||
struct Foo {
|
||||
pub v1: i32,
|
||||
//~^ ERROR Field v1 is public where only private fields are allowed
|
||||
v2: i32
|
||||
}
|
||||
|
||||
fn main() {}
|
16
tests/compiletest/plugin/compile-fail/str_to_string.rs
Normal file
16
tests/compiletest/plugin/compile-fail/str_to_string.rs
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(plugin)]
|
||||
#![plugin(plugins)]
|
||||
|
||||
|
||||
fn main() {
|
||||
let x = "foo".to_string();
|
||||
//~^ ERROR str.to_owned() is more efficient than str.to_string()
|
||||
|
||||
let x = &x[..];
|
||||
x.to_string();
|
||||
//~^ ERROR str.to_owned() is more efficient than str.to_string()
|
||||
}
|
19
tests/compiletest/plugin/compile-fail/transmute_type.rs
Normal file
19
tests/compiletest/plugin/compile-fail/transmute_type.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(plugin)]
|
||||
#![plugin(plugins)]
|
||||
#![allow(dead_code)]
|
||||
#![deny(transmute_type_lint)]
|
||||
|
||||
use std::mem::{self, transmute};
|
||||
|
||||
|
||||
fn main() {
|
||||
let _: &[u8] = unsafe { transmute("Rust") };
|
||||
//~^ ERROR Transmute to &[u8] from &'static str detected
|
||||
|
||||
let _: &[u8] = unsafe { mem::transmute("Rust") };
|
||||
//~^ ERROR Transmute to &[u8] from &'static str detected
|
||||
}
|
27
tests/compiletest/plugin/compile-fail/unrooted_must_root.rs
Normal file
27
tests/compiletest/plugin/compile-fail/unrooted_must_root.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#![feature(plugin)]
|
||||
#![plugin(plugins)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
#[must_root]
|
||||
struct Foo {
|
||||
v: i32
|
||||
}
|
||||
|
||||
struct Bar {
|
||||
f: Foo
|
||||
//~^ ERROR Type must be rooted, use #[must_root] on the struct definition to propagate
|
||||
}
|
||||
|
||||
fn foo1(_: Foo) {} //~ ERROR Type must be rooted
|
||||
|
||||
|
||||
fn foo2() -> Foo { //~ ERROR Type must be rooted
|
||||
Foo { v: 10 }
|
||||
}
|
||||
|
||||
|
||||
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue