From 606f7984e7fd0c33b6c7bd040dfd057569f1c19b Mon Sep 17 00:00:00 2001 From: lqd Date: Mon, 15 Jul 2019 18:51:55 +0200 Subject: Rename test so that both "kills-loans" tests match names --- src/test/ui/nll/polonius/call-kills-loans.rs | 24 ++++++++++++++++++++++ src/test/ui/nll/polonius/calls-kill-loans.rs | 24 ---------------------- .../ui/nll/polonius/storagedead-kills-loans.rs | 3 ++- 3 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 src/test/ui/nll/polonius/call-kills-loans.rs delete mode 100644 src/test/ui/nll/polonius/calls-kill-loans.rs (limited to 'src') diff --git a/src/test/ui/nll/polonius/call-kills-loans.rs b/src/test/ui/nll/polonius/call-kills-loans.rs new file mode 100644 index 00000000000..31215714788 --- /dev/null +++ b/src/test/ui/nll/polonius/call-kills-loans.rs @@ -0,0 +1,24 @@ +// `Call` terminators can write to a local which has existing loans +// and those need to be killed like a regular assignment to a local. +// This is a simplified version of issue 47680, is correctly accepted +// by NLL but was incorrectly rejected by Polonius because of these +// missing `killed` facts. + +// build-pass +// compile-flags: -Z borrowck=mir -Z polonius +// ignore-compare-mode-nll + +struct Thing; + +impl Thing { + fn next(&mut self) -> &mut Self { unimplemented!() } +} + +fn main() { + let mut temp = &mut Thing; + + loop { + let v = temp.next(); + temp = v; // accepted by NLL, was incorrectly rejected by Polonius + } +} diff --git a/src/test/ui/nll/polonius/calls-kill-loans.rs b/src/test/ui/nll/polonius/calls-kill-loans.rs deleted file mode 100644 index 31215714788..00000000000 --- a/src/test/ui/nll/polonius/calls-kill-loans.rs +++ /dev/null @@ -1,24 +0,0 @@ -// `Call` terminators can write to a local which has existing loans -// and those need to be killed like a regular assignment to a local. -// This is a simplified version of issue 47680, is correctly accepted -// by NLL but was incorrectly rejected by Polonius because of these -// missing `killed` facts. - -// build-pass -// compile-flags: -Z borrowck=mir -Z polonius -// ignore-compare-mode-nll - -struct Thing; - -impl Thing { - fn next(&mut self) -> &mut Self { unimplemented!() } -} - -fn main() { - let mut temp = &mut Thing; - - loop { - let v = temp.next(); - temp = v; // accepted by NLL, was incorrectly rejected by Polonius - } -} diff --git a/src/test/ui/nll/polonius/storagedead-kills-loans.rs b/src/test/ui/nll/polonius/storagedead-kills-loans.rs index 3c121d3cd18..f69bfdf4593 100644 --- a/src/test/ui/nll/polonius/storagedead-kills-loans.rs +++ b/src/test/ui/nll/polonius/storagedead-kills-loans.rs @@ -10,7 +10,8 @@ use std::{io, mem}; use std::io::Read; -fn fill(r: &mut Read, mut buf: &mut [u8]) -> io::Result<()> { +#[allow(dead_code)] +fn fill(r: &mut dyn Read, mut buf: &mut [u8]) -> io::Result<()> { while buf.len() > 0 { match r.read(buf).unwrap() { 0 => return Err(io::Error::new(io::ErrorKind::Other, -- cgit 1.4.1-3-g733a5