提交 ddfaf10f 编写于 作者: G Guillaume Gomez

Add error code flag

上级 7746d7c5
......@@ -16,7 +16,7 @@
A private trait was used on a public type parameter bound. Erroneous code
examples:
```compile_fail
```compile_fail,E0445
#![deny(private_in_public)]
trait Foo {
......@@ -46,7 +46,7 @@ pub fn foo<T: Foo> (t: T) {} // ok!
E0446: r##"
A private type was used in a public type signature. Erroneous code example:
```compile_fail
```compile_fail,E0446
#![deny(private_in_public)]
mod Foo {
......@@ -100,7 +100,7 @@ pub enum Foo {
Since the enum is already public, adding `pub` on one its elements is
unnecessary. Example:
```compile_fail
```compile_fail,
enum Foo {
pub Bar, // not ok!
}
......@@ -119,7 +119,7 @@ pub enum Foo {
A tuple constructor was invoked while some of its fields are private. Erroneous
code example:
```compile_fail
```compile_fail,E0450
mod Bar {
pub struct Foo(isize);
}
......@@ -157,7 +157,7 @@ pub fn new(x: isize) -> Foo {
E0451: r##"
A struct constructor with private fields was invoked. Erroneous code example:
```compile_fail
```compile_fail,E0451
mod Bar {
pub struct Foo {
pub a: isize,
......
......@@ -605,18 +605,21 @@ fn t(s: &str,
}
// marker | should_panic| no_run| ignore| rust | test_harness| compile_fail
t("", false, false, false, true, false, false);
t("rust", false, false, false, true, false, false);
t("sh", false, false, false, false, false, false);
t("ignore", false, false, true, true, false, false);
t("should_panic", true, false, false, true, false, false);
t("no_run", false, true, false, true, false, false);
t("test_harness", false, false, false, true, true, false);
t("compile_fail", false, true, false, true, false, true);
t("{.no_run .example}", false, true, false, true, false, false);
t("{.sh .should_panic}", true, false, false, true, false, false);
t("{.example .rust}", false, false, false, true, false, false);
t("{.test_harness .rust}", false, false, false, true, true, false);
// | error_codes
t("", false, false, false, true, false, false, Vec::new());
t("rust", false, false, false, true, false, false, Vec::new());
t("sh", false, false, false, false, false, false, Vec::new());
t("ignore", false, false, true, true, false, false, Vec::new());
t("should_panic", true, false, false, true, false, false, Vec::new());
t("no_run", false, true, false, true, false, false, Vec::new());
t("test_harness", false, false, false, true, true, false, Vec::new());
t("compile_fail", false, true, false, true, false, true, Vec::new());
t("E0450", false, false, false, true, false, false,
vec!("E0450".to_owned()));
t("{.no_run .example}", false, true, false, true, false, false, Vec::new());
t("{.sh .should_panic}", true, false, false, true, false, false, Vec::new());
t("{.example .rust}", false, false, false, true, false, false, Vec::new());
t("{.test_harness .rust}", false, false, false, true, true, false, Vec::new());
}
#[test]
......
......@@ -275,7 +275,7 @@ fn drop(&mut self) {
}
if count > 0 && error_codes.len() > 0 {
let out = String::from_utf8(data.lock().unwrap().to_vec()).unwrap();
error_codes = error_codes.into_iter().filter(|err| !out.contains(err)).collect();
error_codes.retain(|err| !out.contains(err));
}
}
Ok(()) if compile_fail => panic!("test compiled while it wasn't supposed to"),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册