blob: 338d20a48ae96df8556ae16bc8740cc9aa827231 [file] [log] [blame]
//@aux-build:proc_macros.rs
#![warn(clippy::useless_concat)]
#![allow(clippy::print_literal)]
extern crate proc_macros;
use proc_macros::{external, with_span};
macro_rules! my_concat {
($fmt:literal $(, $e:expr)*) => {
println!(concat!("ERROR: ", $fmt), $($e,)*);
}
}
fn main() {
let x = concat!(); //~ useless_concat
let x = concat!('c'); //~ useless_concat
let x = concat!('"'); //~ useless_concat
let x = concat!(true); //~ useless_concat
let x = concat!(1f32); //~ useless_concat
let x = concat!(1.0000f32); //~ useless_concat
let x = concat!(1_f32); //~ useless_concat
let x = concat!(1_); //~ useless_concat
let x = concat!(1.0000_f32); //~ useless_concat
let x = concat!(1.0000_); //~ useless_concat
let x = concat!("a\u{1f600}\n"); //~ useless_concat
let x = concat!(r##"a"##); //~ useless_concat
let x = concat!(1); //~ useless_concat
println!("b: {}", concat!("a")); //~ useless_concat
// Should not lint.
let x = concat!("a", "b");
let local_i32 = 1;
my_concat!("{}", local_i32);
let x = concat!(file!(), "#L", line!());
external! { concat!(); }
with_span! {
span
concat!();
}
}