| //@aux-build:external_item.rs | |
| #![allow(unused)] | |
| #![warn(clippy::used_underscore_items)] | |
| extern crate external_item; | |
| // should not lint macro | |
| macro_rules! macro_wrap_func { | |
| () => { | |
| fn _marco_foo() {} | |
| }; | |
| } | |
| macro_wrap_func!(); | |
| struct _FooStruct {} | |
| impl _FooStruct { | |
| fn _method_call(self) {} | |
| } | |
| fn _foo1() {} | |
| fn _foo2() -> i32 { | |
| 0 | |
| } | |
| mod a { | |
| pub mod b { | |
| pub mod c { | |
| pub fn _foo3() {} | |
| pub struct _FooStruct2 {} | |
| impl _FooStruct2 { | |
| pub fn _method_call(self) {} | |
| } | |
| } | |
| } | |
| } | |
| fn main() { | |
| _foo1(); | |
| //~^ used_underscore_items | |
| let _ = _foo2(); | |
| //~^ used_underscore_items | |
| a::b::c::_foo3(); | |
| //~^ used_underscore_items | |
| let _ = &_FooStruct {}; | |
| //~^ used_underscore_items | |
| let _ = _FooStruct {}; | |
| //~^ used_underscore_items | |
| let foo_struct = _FooStruct {}; | |
| //~^ used_underscore_items | |
| foo_struct._method_call(); | |
| //~^ used_underscore_items | |
| let foo_struct2 = a::b::c::_FooStruct2 {}; | |
| //~^ used_underscore_items | |
| foo_struct2._method_call(); | |
| //~^ used_underscore_items | |
| } | |
| // should not lint external crate. | |
| // user cannot control how others name their items | |
| fn external_item_call() { | |
| let foo_struct3 = external_item::_ExternalStruct {}; | |
| foo_struct3._foo(); | |
| external_item::_external_foo(); | |
| } | |
| // should not lint foreign functions. | |
| // issue #14156 | |
| unsafe extern "C" { | |
| pub fn _exit(code: i32) -> !; | |
| } | |
| fn _f() { | |
| unsafe { _exit(1) } | |
| } |