dbg_macro: feature gate + move semantics test.
This commit is contained in:
parent
000be8fe83
commit
cbb81bd856
5 changed files with 89 additions and 0 deletions
5
src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.rs
Executable file
5
src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.rs
Executable file
|
@ -0,0 +1,5 @@
|
|||
// Feature gate test for `dbg!(..)`.
|
||||
|
||||
fn main() {
|
||||
dbg!(1);
|
||||
}
|
11
src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.stderr
Normal file
11
src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.stderr
Normal file
|
@ -0,0 +1,11 @@
|
|||
error[E0658]: macro dbg! is unstable (see issue #54306)
|
||||
--> $DIR/dbg-macro-feature-gate.rs:4:5
|
||||
|
|
||||
LL | dbg!(1);
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= help: add #![feature(dbg_macro)] to the crate attributes to enable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
|
@ -0,0 +1,36 @@
|
|||
error[E0382]: use of moved value: `a`
|
||||
--> $DIR/dbg-macro-move-semantics.rs:11:18
|
||||
|
|
||||
LL | let _ = dbg!(a);
|
||||
| ------- value moved here
|
||||
LL | let _ = dbg!(a);
|
||||
| ^ value used here after move
|
||||
|
|
||||
= note: move occurs because `a` has type `NoCopy`, which does not implement the `Copy` trait
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error[E0382]: borrow of moved value: `a`
|
||||
--> $DIR/dbg-macro-move-semantics.rs:11:18
|
||||
|
|
||||
LL | let _ = dbg!(a);
|
||||
| ------- value moved here
|
||||
LL | let _ = dbg!(a);
|
||||
| ^ value borrowed here after move
|
||||
|
|
||||
= note: move occurs because `a` has type `NoCopy`, which does not implement the `Copy` trait
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error[E0382]: use of moved value: `a`
|
||||
--> $DIR/dbg-macro-move-semantics.rs:11:13
|
||||
|
|
||||
LL | let _ = dbg!(a);
|
||||
| ------- value moved here
|
||||
LL | let _ = dbg!(a);
|
||||
| ^^^^^^^ value used here after move
|
||||
|
|
||||
= note: move occurs because `a` has type `NoCopy`, which does not implement the `Copy` trait
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
12
src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.rs
Executable file
12
src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.rs
Executable file
|
@ -0,0 +1,12 @@
|
|||
// Test ensuring that `dbg!(expr)` will take ownership of the argument.
|
||||
|
||||
#![feature(dbg_macro)]
|
||||
|
||||
#[derive(Debug)]
|
||||
struct NoCopy(usize);
|
||||
|
||||
fn main() {
|
||||
let a = NoCopy(0);
|
||||
let _ = dbg!(a);
|
||||
let _ = dbg!(a);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
error[E0382]: use of moved value: `a`
|
||||
--> $DIR/dbg-macro-move-semantics.rs:11:18
|
||||
|
|
||||
LL | let _ = dbg!(a);
|
||||
| ------- value moved here
|
||||
LL | let _ = dbg!(a);
|
||||
| ^ value used here after move
|
||||
|
|
||||
= note: move occurs because `a` has type `NoCopy`, which does not implement the `Copy` trait
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error[E0382]: use of moved value: `a`
|
||||
--> $DIR/dbg-macro-move-semantics.rs:11:13
|
||||
|
|
||||
LL | let _ = dbg!(a);
|
||||
| ------- value moved here
|
||||
LL | let _ = dbg!(a);
|
||||
| ^^^^^^^ value used here after move
|
||||
|
|
||||
= note: move occurs because `a` has type `NoCopy`, which does not implement the `Copy` trait
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
Loading…
Add table
Add a link
Reference in a new issue