|  | //@ edition: 2015 | 
|  | //@ run-rustfix | 
|  | #![deny(unused_qualifications)] | 
|  | #![deny(unused_imports)] | 
|  | #![allow(deprecated, dead_code)] | 
|  |  | 
|  | mod foo { | 
|  | pub fn bar() {} | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | use foo::bar; | 
|  | bar(); //~ ERROR: unnecessary qualification | 
|  | bar(); //~ ERROR: unnecessary qualification | 
|  | bar(); | 
|  |  | 
|  | let _ = || -> Result<(), ()> { try!(Ok(())); Ok(()) }; // issue #37345 | 
|  |  | 
|  | let _ = String::new(); //~ ERROR: unnecessary qualification | 
|  |  | 
|  | let _: Vec<String> = Vec::<String>::new(); | 
|  | //~^ ERROR: unnecessary qualification | 
|  | //~| ERROR: unnecessary qualification | 
|  |  | 
|  |  | 
|  | //~^ ERROR: unused import: `std::fmt` | 
|  | let _: std::fmt::Result = Ok(()); | 
|  | // don't report unnecessary qualification because fix(#122373) for issue #121331 | 
|  |  | 
|  | let _ = <bool as Default>::default(); // issue #121999 (modified) | 
|  | //~^ ERROR: unnecessary qualification | 
|  |  | 
|  | macro_rules! m { ($a:ident, $b:ident) => { | 
|  | $crate::foo::bar(); // issue #37357 | 
|  | ::foo::bar(); // issue #38682 | 
|  | foo::bar(); | 
|  | foo::$b(); // issue #96698 | 
|  | $a::bar(); | 
|  | $a::$b(); | 
|  | } } | 
|  | m!(foo, bar); | 
|  | } | 
|  |  | 
|  | mod conflicting_names { | 
|  | mod std {} | 
|  | mod cell {} | 
|  |  | 
|  | fn f() { | 
|  | let _ = ::std::env::current_dir(); | 
|  | let _ = core::cell::Cell::new(1); | 
|  | } | 
|  | } |