blob: 7e8289f1406ba13aefa24c3c46ea3a130ba186a0 [file] [log] [blame]
//@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 exteranl crate.
// user cannot control how others name their items
fn external_item_call() {
let foo_struct3 = external_item::_ExternalStruct {};
foo_struct3._foo();
external_item::_exernal_foo();
}
// should not lint foreign functions.
// issue #14156
unsafe extern "C" {
pub fn _exit(code: i32) -> !;
}
fn _f() {
unsafe { _exit(1) }
}