mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-17 22:46:50 +00:00
generic test
This commit is contained in:
parent
110aecd23e
commit
f1021bf054
@ -462,6 +462,9 @@ pub struct SuspendCheckData<'a, 'tcx> {
|
||||
// Returns whether it emitted a diagnostic or not
|
||||
// Note that this fn and the proceding one are based on the code
|
||||
// for creating must_use diagnostics
|
||||
//
|
||||
// Note that this technique was chosen over things like a `Suspend` marker trait
|
||||
// as it is simpler and has precendent in the compiler
|
||||
pub fn check_must_not_suspend_ty<'tcx>(
|
||||
fcx: &FnCtxt<'_, 'tcx>,
|
||||
ty: Ty<'tcx>,
|
||||
|
21
src/test/ui/lint/must_not_suspend/generic.rs
Normal file
21
src/test/ui/lint/must_not_suspend/generic.rs
Normal file
@ -0,0 +1,21 @@
|
||||
// edition:2018
|
||||
#![feature(must_not_suspend)]
|
||||
#![deny(must_not_suspend)]
|
||||
|
||||
#[must_not_suspend]
|
||||
struct No {}
|
||||
|
||||
async fn shushspend() {}
|
||||
|
||||
async fn wheeee<T>(t: T) {
|
||||
shushspend().await;
|
||||
drop(t);
|
||||
}
|
||||
|
||||
async fn yes() {
|
||||
wheeee(No {}).await; //~ ERROR `No` held across
|
||||
//~^ ERROR `No` held across
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
31
src/test/ui/lint/must_not_suspend/generic.stderr
Normal file
31
src/test/ui/lint/must_not_suspend/generic.stderr
Normal file
@ -0,0 +1,31 @@
|
||||
error: `No` held across a suspend point, but should not be
|
||||
--> $DIR/generic.rs:16:12
|
||||
|
|
||||
LL | wheeee(No {}).await;
|
||||
| -------^^^^^------- the value is held across this suspend point
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/generic.rs:3:9
|
||||
|
|
||||
LL | #![deny(must_not_suspend)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
|
||||
--> $DIR/generic.rs:16:12
|
||||
|
|
||||
LL | wheeee(No {}).await;
|
||||
| ^^^^^
|
||||
|
||||
error: `No` held across a suspend point, but should not be
|
||||
--> $DIR/generic.rs:16:12
|
||||
|
|
||||
LL | wheeee(No {}).await;
|
||||
| -------^^^^^------- the value is held across this suspend point
|
||||
|
|
||||
help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
|
||||
--> $DIR/generic.rs:16:12
|
||||
|
|
||||
LL | wheeee(No {}).await;
|
||||
| ^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
Loading…
Reference in New Issue
Block a user