提交 674a5db1 编写于 作者: V Vadim Petrochenkov

Fix undesirable fallout

compile-fail-fulldeps/proc-macro/proc-macro-attributes.rs - resolution change for derive helper attributes with the same name as derive itself
run-pass/macro-comma-support.rs - indeterminate resolutions for macros in expression positions
ui/issues/issue-49074.rs - diagnostics regression, not enough recovery to report the second error
ui/object-lifetime/object-lifetime-default.stderr - unstable diagnostics?
上级 a0958048
......@@ -17,11 +17,11 @@
extern crate derive_b;
#[derive(B)]
#[B]
#[C] //~ ERROR: The attribute `C` is currently unknown to the compiler
#[B] //~ ERROR `B` is a derive mode
#[C]
#[B(D)]
#[B(E = "foo")]
#[B(arbitrary tokens)] //~ ERROR expected one of `(`, `)`, `,`, `::`, or `=`, found `tokens`
#[B(arbitrary tokens)]
struct B;
fn main() {}
......@@ -61,30 +61,30 @@ fn assert_ne() {
#[test]
fn cfg() {
let _ = cfg!(pants);
let _ = cfg!(pants,);
let _ = cfg!(pants = "pants");
let _ = cfg!(pants = "pants",);
let _ = cfg!(all(pants));
let _ = cfg!(all(pants),);
let _ = cfg!(all(pants,));
let _ = cfg!(all(pants,),);
cfg!(pants);
cfg!(pants,);
cfg!(pants = "pants");
cfg!(pants = "pants",);
cfg!(all(pants));
cfg!(all(pants),);
cfg!(all(pants,));
cfg!(all(pants,),);
}
#[test]
fn column() {
let _ = column!();
column!();
}
// compile_error! is in a companion to this test in compile-fail
#[test]
fn concat() {
let _ = concat!();
let _ = concat!("hello");
let _ = concat!("hello",);
let _ = concat!("hello", " world");
let _ = concat!("hello", " world",);
concat!();
concat!("hello");
concat!("hello",);
concat!("hello", " world");
concat!("hello", " world",);
}
#[test]
......@@ -130,10 +130,10 @@ fn debug_assert_ne() {
#[test]
fn env() {
let _ = env!("PATH");
let _ = env!("PATH",);
let _ = env!("PATH", "not found");
let _ = env!("PATH", "not found",);
env!("PATH");
env!("PATH",);
env!("PATH", "not found");
env!("PATH", "not found",);
}
#[cfg(std)]
......@@ -157,58 +157,58 @@ fn eprintln() {
#[test]
fn file() {
let _ = file!();
file!();
}
#[cfg(std)]
#[test]
fn format() {
let _ = format!("hello");
let _ = format!("hello",);
let _ = format!("hello {}", "world");
let _ = format!("hello {}", "world",);
format!("hello");
format!("hello",);
format!("hello {}", "world");
format!("hello {}", "world",);
}
#[test]
fn format_args() {
let _ = format_args!("hello");
let _ = format_args!("hello",);
let _ = format_args!("hello {}", "world");
let _ = format_args!("hello {}", "world",);
format_args!("hello");
format_args!("hello",);
format_args!("hello {}", "world");
format_args!("hello {}", "world",);
}
#[test]
fn include() {
let _ = include!("auxiliary/macro-comma-support.rs");
let _ = include!("auxiliary/macro-comma-support.rs",);
include!("auxiliary/macro-comma-support.rs");
include!("auxiliary/macro-comma-support.rs",);
}
#[test]
fn include_bytes() {
let _ = include_bytes!("auxiliary/macro-comma-support.rs");
let _ = include_bytes!("auxiliary/macro-comma-support.rs",);
include_bytes!("auxiliary/macro-comma-support.rs");
include_bytes!("auxiliary/macro-comma-support.rs",);
}
#[test]
fn include_str() {
let _ = include_str!("auxiliary/macro-comma-support.rs");
let _ = include_str!("auxiliary/macro-comma-support.rs",);
include_str!("auxiliary/macro-comma-support.rs");
include_str!("auxiliary/macro-comma-support.rs",);
}
#[test]
fn line() {
let _ = line!();
line!();
}
#[test]
fn module_path() {
let _ = module_path!();
module_path!();
}
#[test]
fn option_env() {
let _ = option_env!("PATH");
let _ = option_env!("PATH",);
option_env!("PATH");
option_env!("PATH",);
}
#[test]
......@@ -308,10 +308,10 @@ fn unreachable() {
#[test]
fn vec() {
let _: Vec<()> = vec![];
let _ = vec![0];
let _ = vec![0,];
let _ = vec![0, 1];
let _ = vec![0, 1,];
vec![0];
vec![0,];
vec![0, 1];
vec![0, 1,];
}
// give a test body access to a fmt::Formatter, which seems
......@@ -339,21 +339,21 @@ fn fmt(&self, $f: &mut fmt::Formatter) -> fmt::Result {
test_with_formatter! {
#[test]
fn write(f: &mut fmt::Formatter) {
let _ = write!(f, "hello");
let _ = write!(f, "hello",);
let _ = write!(f, "hello {}", "world");
let _ = write!(f, "hello {}", "world",);
write!(f, "hello");
write!(f, "hello",);
write!(f, "hello {}", "world");
write!(f, "hello {}", "world",);
}
}
test_with_formatter! {
#[test]
fn writeln(f: &mut fmt::Formatter) {
let _ = writeln!(f);
let _ = writeln!(f,);
let _ = writeln!(f, "hello");
let _ = writeln!(f, "hello",);
let _ = writeln!(f, "hello {}", "world");
let _ = writeln!(f, "hello {}", "world",);
writeln!(f);
writeln!(f,);
writeln!(f, "hello");
writeln!(f, "hello",);
writeln!(f, "hello {}", "world");
writeln!(f, "hello {}", "world",);
}
}
......@@ -20,5 +20,4 @@ mod foo {
fn main() {
bar!();
//~^ ERROR cannot find macro `bar!`
}
error: cannot find macro `bar!` in this scope
--> $DIR/issue-49074.rs:22:4
|
LL | bar!();
| ^^^
|
= help: have you added the `#[macro_use]` on the module/import?
error[E0658]: The attribute `marco_use` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
--> $DIR/issue-49074.rs:13:1
|
......@@ -14,6 +6,6 @@ LL | #[marco_use] // typo
|
= help: add #![feature(custom_attribute)] to the crate attributes to enable
error: aborting due to 2 previous errors
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.
error: BaseDefault
--> $DIR/object-lifetime-default.rs:16:1
error: 'a,Ambiguous
--> $DIR/object-lifetime-default.rs:34:1
|
LL | struct A<T>(T); //~ ERROR BaseDefault
| ^^^^^^^^^^^^^^^
LL | struct G<'a,'b,T:'a,U:'a+'b>(&'a T, &'b U); //~ ERROR 'a,Ambiguous
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: BaseDefault
--> $DIR/object-lifetime-default.rs:19:1
error: 'a,'b
--> $DIR/object-lifetime-default.rs:31:1
|
LL | struct B<'a,T>(&'a (), T); //~ ERROR BaseDefault
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
LL | struct F<'a,'b,T:'a,U:'b>(&'a T, &'b U); //~ ERROR 'a,'b
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: 'a
--> $DIR/object-lifetime-default.rs:22:1
error: 'b
--> $DIR/object-lifetime-default.rs:28:1
|
LL | struct C<'a,T:'a>(&'a T); //~ ERROR 'a
| ^^^^^^^^^^^^^^^^^^^^^^^^^
LL | struct E<'a,'b:'a,T:'b>(&'a T, &'b T); //~ ERROR 'b
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Ambiguous
--> $DIR/object-lifetime-default.rs:25:1
......@@ -22,23 +22,23 @@ error: Ambiguous
LL | struct D<'a,'b,T:'a+'b>(&'a T, &'b T); //~ ERROR Ambiguous
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: 'b
--> $DIR/object-lifetime-default.rs:28:1
error: 'a
--> $DIR/object-lifetime-default.rs:22:1
|
LL | struct E<'a,'b:'a,T:'b>(&'a T, &'b T); //~ ERROR 'b
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LL | struct C<'a,T:'a>(&'a T); //~ ERROR 'a
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: 'a,'b
--> $DIR/object-lifetime-default.rs:31:1
error: BaseDefault
--> $DIR/object-lifetime-default.rs:19:1
|
LL | struct F<'a,'b,T:'a,U:'b>(&'a T, &'b U); //~ ERROR 'a,'b
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LL | struct B<'a,T>(&'a (), T); //~ ERROR BaseDefault
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: 'a,Ambiguous
--> $DIR/object-lifetime-default.rs:34:1
error: BaseDefault
--> $DIR/object-lifetime-default.rs:16:1
|
LL | struct G<'a,'b,T:'a,U:'a+'b>(&'a T, &'b U); //~ ERROR 'a,Ambiguous
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LL | struct A<T>(T); //~ ERROR BaseDefault
| ^^^^^^^^^^^^^^^
error: aborting due to 7 previous errors
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册