Make sure feature gate errors are recoverable

This commit is contained in:
Vadim Petrochenkov 2018-12-21 01:47:03 +03:00
parent b99fb2f544
commit 15cefe4b2a
20 changed files with 32 additions and 58 deletions

View file

@ -2,6 +2,6 @@
fn main() {
unsafe {
println!("{}", asm!("")); //~ ERROR inline assembly is not stable
println!("{:?}", asm!("")); //~ ERROR inline assembly is not stable
}
}

View file

@ -1,8 +1,8 @@
error[E0658]: inline assembly is not stable enough for use and is subject to change (see issue #29722)
--> $DIR/feature-gate-asm2.rs:5:24
|
LL | println!("{}", asm!("")); //~ ERROR inline assembly is not stable
| ^^^^^^^^
LL | println!("{:?}", asm!("")); //~ ERROR inline assembly is not stable
| ^^^^^^^^
|
= help: add #![feature(asm)] to the crate attributes to enable

View file

@ -2,4 +2,5 @@
fn main() {
concat_idents!(a, b); //~ ERROR `concat_idents` is not stable enough
//~| ERROR cannot find value `ab` in this scope
}

View file

@ -6,6 +6,13 @@ LL | concat_idents!(a, b); //~ ERROR `concat_idents` is not stable enough
|
= help: add #![feature(concat_idents)] to the crate attributes to enable
error: aborting due to previous error
error[E0425]: cannot find value `ab` in this scope
--> $DIR/feature-gate-concat_idents2.rs:14:5
|
LL | concat_idents!(a, b); //~ ERROR `concat_idents` is not stable enough
| ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
For more information about this error, try `rustc --explain E0658`.
error: aborting due to 2 previous errors
Some errors occurred: E0425, E0658.
For more information about an error, try `rustc --explain E0425`.

View file

@ -0,0 +1 @@

View file

@ -1,5 +1,5 @@
// gate-test-log_syntax
fn main() {
println!("{}", log_syntax!()); //~ ERROR `log_syntax!` is not stable
println!("{:?}", log_syntax!()); //~ ERROR `log_syntax!` is not stable
}

View file

@ -1,8 +1,8 @@
error[E0658]: `log_syntax!` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/feature-gate-log_syntax2.rs:4:20
|
LL | println!("{}", log_syntax!()); //~ ERROR `log_syntax!` is not stable
| ^^^^^^^^^^^^^
LL | println!("{:?}", log_syntax!()); //~ ERROR `log_syntax!` is not stable
| ^^^^^^^^^^^^^
|
= help: add #![feature(log_syntax)] to the crate attributes to enable

View file

@ -0,0 +1 @@

View file

@ -2,15 +2,9 @@
fn main() {
trace_macros!(); //~ ERROR `trace_macros` is not stable
trace_macros!(1); //~ ERROR `trace_macros` is not stable
trace_macros!(ident); //~ ERROR `trace_macros` is not stable
trace_macros!(for); //~ ERROR `trace_macros` is not stable
trace_macros!(true,); //~ ERROR `trace_macros` is not stable
trace_macros!(false 1); //~ ERROR `trace_macros` is not stable
// Errors are signalled early for the above, before expansion.
// See trace_macros-gate2 and trace_macros-gate3. for examples
// of the below being caught.
//~| ERROR trace_macros! accepts only `true` or `false`
trace_macros!(true); //~ ERROR `trace_macros` is not stable
trace_macros!(false); //~ ERROR `trace_macros` is not stable
macro_rules! expando {
($x: ident) => { trace_macros!($x) } //~ ERROR `trace_macros` is not stable

View file

@ -6,48 +6,30 @@ LL | trace_macros!(); //~ ERROR `trace_macros` is not stable
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:5:5
error: trace_macros! accepts only `true` or `false`
--> $DIR/trace_macros-gate.rs:14:5
|
LL | trace_macros!(1); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
LL | trace_macros!(); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:6:5
|
LL | trace_macros!(ident); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^^^^^
LL | trace_macros!(true); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:7:5
|
LL | trace_macros!(for); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:8:5
|
LL | trace_macros!(true,); //~ ERROR `trace_macros` is not stable
LL | trace_macros!(false); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:9:5
|
LL | trace_macros!(false 1); //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error[E0658]: `trace_macros` is not stable enough for use and is subject to change (see issue #29598)
--> $DIR/trace_macros-gate.rs:16:26
--> $DIR/trace_macros-gate.rs:20:26
|
LL | ($x: ident) => { trace_macros!($x) } //~ ERROR `trace_macros` is not stable
| ^^^^^^^^^^^^^^^^^
@ -57,6 +39,6 @@ LL | expando!(true);
|
= help: add #![feature(trace_macros)] to the crate attributes to enable
error: aborting due to 7 previous errors
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0658`.