rust/tests/ui/format.rs
Oliver Schneider 62d595b3dc
Merge pull request #2632 from phansch/fix_useless_format_false_positive
Fix useless_format false positive with macros
2018-04-05 09:59:12 +02:00

44 lines
1.1 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#![allow(print_literal)]
#![warn(useless_format)]
struct Foo(pub String);
macro_rules! foo {
($($t:tt)*) => (Foo(format!($($t)*)))
}
fn main() {
format!("foo");
format!("{}", "foo");
format!("{:?}", "foo"); // we only want to warn about `{}`
format!("{:+}", "foo"); // we only want to warn about `{}`
format!("foo {}", "bar");
format!("{} bar", "foo");
let arg: String = "".to_owned();
format!("{}", arg);
format!("{:?}", arg); // we only want to warn about `{}`
format!("{:+}", arg); // we only want to warn about `{}`
format!("foo {}", arg);
format!("{} bar", arg);
// we dont want to warn for non-string args, see #697
format!("{}", 42);
format!("{:?}", 42);
format!("{:+}", 42);
format!("foo {}", 42);
format!("{} bar", 42);
// we only want to warn about `format!` itself
println!("foo");
println!("{}", "foo");
println!("foo {}", "foo");
println!("{}", 42);
println!("foo {}", 42);
// A format! inside a macro should not trigger a warning
foo!("should not warn");
}