diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2022-06-22 11:26:08 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2022-07-07 12:25:56 -0700 |
| commit | 8ab1cd9fdcce6b189e37d481a9cc5a4f67c5ca72 (patch) | |
| tree | c3f38002b05f653de9777e5c5a2c8ac5f3bcc903 | |
| parent | 95923d1676f565e6358183d5428513c1803f79c2 (diff) | |
| download | rust-8ab1cd9fdcce6b189e37d481a9cc5a4f67c5ca72.tar.gz rust-8ab1cd9fdcce6b189e37d481a9cc5a4f67c5ca72.zip | |
Add test for `for` loop maybe initializing binding
| -rw-r--r-- | src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs b/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs new file mode 100644 index 00000000000..f619c045b25 --- /dev/null +++ b/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs @@ -0,0 +1,7 @@ +fn f() -> isize { + let mut x: isize; + for _ in 0..0 { x = 10; } + return x; //~ ERROR E0381 +} + +fn main() { f(); } diff --git a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr b/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr new file mode 100644 index 00000000000..c08c93f3617 --- /dev/null +++ b/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr @@ -0,0 +1,13 @@ +error[E0381]: used binding `x` is possibly-uninitialized + --> $DIR/borrowck-for-loop-uninitialized-binding.rs:4:12 + | +LL | let mut x: isize; + | ----- binding declared here but left uninitialized +LL | for _ in 0..0 { x = 10; } + | ---- if the `for` loop runs 0 times, `x` is not initialized +LL | return x; + | ^ `x` used here but it is possibly-uninitialized + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0381`. |
