From e181060a59c5975bd1a011524d9541a3cdacdfbb Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 9 Aug 2017 16:37:56 -0700 Subject: [PATCH] Add UI test outputs --- src/test/ui/generator/borrowing.stderr | 29 +++++++++++++++++++ .../no-arguments-on-generators.stderr | 8 +++++ src/test/ui/generator/not-send-sync.stderr | 24 +++++++++++++++ src/test/ui/generator/yield-in-const.stderr | 10 +++++++ .../ui/generator/yield-in-function.stderr | 8 +++++ src/test/ui/generator/yield-in-static.stderr | 10 +++++++ 6 files changed, 89 insertions(+) create mode 100644 src/test/ui/generator/borrowing.stderr create mode 100644 src/test/ui/generator/no-arguments-on-generators.stderr create mode 100644 src/test/ui/generator/not-send-sync.stderr create mode 100644 src/test/ui/generator/yield-in-const.stderr create mode 100644 src/test/ui/generator/yield-in-function.stderr create mode 100644 src/test/ui/generator/yield-in-static.stderr diff --git a/src/test/ui/generator/borrowing.stderr b/src/test/ui/generator/borrowing.stderr new file mode 100644 index 000000000000..0ed7e1f99027 --- /dev/null +++ b/src/test/ui/generator/borrowing.stderr @@ -0,0 +1,29 @@ +error[E0597]: `a` does not live long enough + --> $DIR/borrowing.rs:18:20 + | +18 | (|| yield &a).resume() + | -- ^ does not live long enough + | | + | capture occurs here +19 | //~^ ERROR: `a` does not live long enough +20 | }; + | - borrowed value only lives until here +... +29 | } + | - borrowed value needs to live until here + +error[E0597]: `a` does not live long enough + --> $DIR/borrowing.rs:25:20 + | +24 | || { + | -- capture occurs here +25 | yield &a + | ^ does not live long enough +... +28 | }; + | - borrowed value only lives until here +29 | } + | - borrowed value needs to live until here + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/generator/no-arguments-on-generators.stderr b/src/test/ui/generator/no-arguments-on-generators.stderr new file mode 100644 index 000000000000..290ad7b7f6c6 --- /dev/null +++ b/src/test/ui/generator/no-arguments-on-generators.stderr @@ -0,0 +1,8 @@ +error[E0625]: generators cannot have explicit arguments + --> $DIR/no-arguments-on-generators.rs:14:15 + | +14 | let gen = |start| { //~ ERROR generators cannot have explicit arguments + | ^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/generator/not-send-sync.stderr b/src/test/ui/generator/not-send-sync.stderr new file mode 100644 index 000000000000..a1f110accc10 --- /dev/null +++ b/src/test/ui/generator/not-send-sync.stderr @@ -0,0 +1,24 @@ +error[E0277]: the trait bound `std::cell::Cell: std::marker::Sync` is not satisfied + --> $DIR/not-send-sync.rs:26:5 + | +26 | assert_send(|| { + | ^^^^^^^^^^^ `std::cell::Cell` cannot be shared between threads safely + | + = help: the trait `std::marker::Sync` is not implemented for `std::cell::Cell` + = note: required because of the requirements on the impl of `std::marker::Send` for `&std::cell::Cell` + = note: required because it appears within the type `[generator@$DIR/not-send-sync.rs:26:17: 30:6 a:&std::cell::Cell _]` + = note: required by `main::assert_send` + +error[E0277]: the trait bound `std::cell::Cell: std::marker::Sync` is not satisfied in `[generator@$DIR/not-send-sync.rs:19:17: 23:6 (std::cell::Cell, ())]` + --> $DIR/not-send-sync.rs:19:5 + | +19 | assert_sync(|| { + | ^^^^^^^^^^^ `std::cell::Cell` cannot be shared between threads safely + | + = help: within `[generator@$DIR/not-send-sync.rs:19:17: 23:6 (std::cell::Cell, ())]`, the trait `std::marker::Sync` is not implemented for `std::cell::Cell` + = note: required because it appears within the type `(std::cell::Cell, ())` + = note: required because it appears within the type `[generator@$DIR/not-send-sync.rs:19:17: 23:6 (std::cell::Cell, ())]` + = note: required by `main::assert_sync` + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/generator/yield-in-const.stderr b/src/test/ui/generator/yield-in-const.stderr new file mode 100644 index 000000000000..8a265c065b98 --- /dev/null +++ b/src/test/ui/generator/yield-in-const.stderr @@ -0,0 +1,10 @@ +error[E0601]: main function not found + +error[E0627]: yield statement outside of generator literal + --> $DIR/yield-in-const.rs:13:17 + | +13 | const A: u8 = { yield 3u8; 3u8}; + | ^^^^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/generator/yield-in-function.stderr b/src/test/ui/generator/yield-in-function.stderr new file mode 100644 index 000000000000..c6ee3b8e9e7e --- /dev/null +++ b/src/test/ui/generator/yield-in-function.stderr @@ -0,0 +1,8 @@ +error[E0627]: yield statement outside of generator literal + --> $DIR/yield-in-function.rs:13:13 + | +13 | fn main() { yield; } + | ^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/generator/yield-in-static.stderr b/src/test/ui/generator/yield-in-static.stderr new file mode 100644 index 000000000000..d0575a0e47b3 --- /dev/null +++ b/src/test/ui/generator/yield-in-static.stderr @@ -0,0 +1,10 @@ +error[E0601]: main function not found + +error[E0627]: yield statement outside of generator literal + --> $DIR/yield-in-static.rs:13:18 + | +13 | static B: u8 = { yield 3u8; 3u8}; + | ^^^^^^^^^ + +error: aborting due to 2 previous errors +