diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2018-09-18 04:25:09 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2018-09-20 17:39:09 +0200 |
| commit | cbb81bd8569a59cc4672d7ea1d504d5ee85531a5 (patch) | |
| tree | e9d5aab4a8c0ce5f0256f8cd1721db1c7a09cf4f /src | |
| parent | 000be8fe83a854796e55ed92458a7b70cc17c3a2 (diff) | |
| download | rust-cbb81bd8569a59cc4672d7ea1d504d5ee85531a5.tar.gz rust-cbb81bd8569a59cc4672d7ea1d504d5ee85531a5.zip | |
dbg_macro: feature gate + move semantics test.
Diffstat (limited to 'src')
5 files changed, 89 insertions, 0 deletions
diff --git a/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.rs b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.rs new file mode 100755 index 00000000000..b237c6f147b --- /dev/null +++ b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.rs @@ -0,0 +1,5 @@ +// Feature gate test for `dbg!(..)`. + +fn main() { + dbg!(1); +} diff --git a/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.stderr b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.stderr new file mode 100644 index 00000000000..64df1e196d2 --- /dev/null +++ b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-feature-gate.stderr @@ -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`. diff --git a/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.nll.stderr b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.nll.stderr new file mode 100644 index 00000000000..baeaad6e58f --- /dev/null +++ b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.nll.stderr @@ -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`. diff --git a/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.rs b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.rs new file mode 100755 index 00000000000..bcf508d9af5 --- /dev/null +++ b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.rs @@ -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); +} diff --git a/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.stderr b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.stderr new file mode 100644 index 00000000000..10643174385 --- /dev/null +++ b/src/test/ui/rfc-2361-dbg-macro/dbg-macro-move-semantics.stderr @@ -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`. |
