#![feature(associated_type_defaults)] #![warn(clippy::linkedlist)] #![allow(unused, dead_code, clippy::needless_pass_by_value)] extern crate alloc; use alloc::collections::linked_list::LinkedList; const C: LinkedList = LinkedList::new(); static S: LinkedList = LinkedList::new(); trait Foo { type Baz = LinkedList; fn foo(_: LinkedList); const BAR: Option>; } // Ok, we don’t want to warn for implementations; see issue #605. impl Foo for LinkedList { fn foo(_: LinkedList) {} const BAR: Option> = None; } pub struct Bar { priv_linked_list_field: LinkedList, pub pub_linked_list_field: LinkedList, } impl Bar { fn foo(_: LinkedList) {} } // All of these test should be trigger the lint because they are not // part of the public api fn test(my_favorite_linked_list: LinkedList) {} fn test_ret() -> Option> { None } fn test_local_not_linted() { let _: LinkedList; } // All of these test should be allowed because they are part of the // public api and `avoid_breaking_exported_api` is `false` by default. pub fn pub_test(the_most_awesome_linked_list: LinkedList) {} pub fn pub_test_ret() -> Option> { None } fn main() {}