From 814827113e8cdffadb215de52fde349bace81610 Mon Sep 17 00:00:00 2001 From: Karim Snj Date: Tue, 6 Mar 2018 18:27:11 +0100 Subject: [PATCH] lint: immutable condition: add internally mutable test --- tests/ui/infinite_loop.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/ui/infinite_loop.rs b/tests/ui/infinite_loop.rs index d86e6c042b3..cc694583eec 100644 --- a/tests/ui/infinite_loop.rs +++ b/tests/ui/infinite_loop.rs @@ -94,8 +94,22 @@ fn used_immutable() { } } +use std::cell::Cell; + +fn maybe_i_mutate(i: &Cell) { unimplemented!() } + +fn internally_mutable() { + let b = Cell::new(true); + + while b.get() { // b cannot be silently coerced to `bool` + maybe_i_mutate(&b); + println!("OK - Method call within condition"); + } +} + fn main() { immutable_condition(); unused_var(); used_immutable(); + internally_mutable(); }