rust/tests/ui/used_underscore_items.rs
2024-08-26 00:52:52 +08:00

64 lines
1.1 KiB
Rust

//@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();
let _ = _foo2();
a::b::c::_foo3();
let _ = &_FooStruct {};
let _ = _FooStruct {};
let foo_struct = _FooStruct {};
foo_struct._method_call();
let foo_struct2 = a::b::c::_FooStruct2 {};
foo_struct2._method_call();
}
// 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();
}