2016-12-21 14:42:20 +00:00
|
|
|
|
#![feature(associated_type_defaults)]
|
2018-07-28 15:34:52 +00:00
|
|
|
|
#![warn(clippy::linkedlist)]
|
2021-08-12 11:15:15 +00:00
|
|
|
|
#![allow(unused, dead_code, clippy::needless_pass_by_value)]
|
2015-01-10 06:26:58 +00:00
|
|
|
|
|
2017-06-16 03:30:55 +00:00
|
|
|
|
extern crate alloc;
|
2018-07-01 11:36:14 +00:00
|
|
|
|
use alloc::collections::linked_list::LinkedList;
|
2014-11-20 07:07:45 +00:00
|
|
|
|
|
2021-03-19 09:14:48 +00:00
|
|
|
|
const C: LinkedList<i32> = LinkedList::new();
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data structu
|
2021-03-19 09:14:48 +00:00
|
|
|
|
static S: LinkedList<i32> = LinkedList::new();
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data structu
|
2021-03-19 09:14:48 +00:00
|
|
|
|
|
2016-12-21 14:42:20 +00:00
|
|
|
|
trait Foo {
|
2017-02-08 13:58:07 +00:00
|
|
|
|
type Baz = LinkedList<u8>;
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data str
|
2019-07-22 19:59:09 +00:00
|
|
|
|
fn foo(_: LinkedList<u8>);
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data str
|
2018-12-09 22:26:16 +00:00
|
|
|
|
const BAR: Option<LinkedList<u8>>;
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data str
|
2016-12-21 14:42:20 +00:00
|
|
|
|
}
|
|
|
|
|
|
2019-01-31 01:15:29 +00:00
|
|
|
|
// Ok, we don’t want to warn for implementations; see issue #605.
|
2016-12-21 14:42:20 +00:00
|
|
|
|
impl Foo for LinkedList<u8> {
|
|
|
|
|
fn foo(_: LinkedList<u8>) {}
|
2018-12-09 22:26:16 +00:00
|
|
|
|
const BAR: Option<LinkedList<u8>> = None;
|
2016-12-21 14:42:20 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-08-12 11:15:15 +00:00
|
|
|
|
pub struct Bar {
|
|
|
|
|
priv_linked_list_field: LinkedList<u8>,
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data str
|
2021-08-12 11:15:15 +00:00
|
|
|
|
pub pub_linked_list_field: LinkedList<u8>,
|
|
|
|
|
}
|
2016-12-21 14:42:20 +00:00
|
|
|
|
impl Bar {
|
2017-02-08 13:58:07 +00:00
|
|
|
|
fn foo(_: LinkedList<u8>) {}
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data str
|
2016-12-21 14:42:20 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-08-12 11:15:15 +00:00
|
|
|
|
// 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<u8>) {}
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data structu
|
2021-08-12 11:15:15 +00:00
|
|
|
|
fn test_ret() -> Option<LinkedList<u8>> {
|
2023-07-28 19:35:48 +00:00
|
|
|
|
//~^ ERROR: you seem to be using a `LinkedList`! Perhaps you meant some other data structu
|
2021-08-12 11:15:15 +00:00
|
|
|
|
None
|
2014-11-20 07:07:45 +00:00
|
|
|
|
}
|
2021-08-12 11:15:15 +00:00
|
|
|
|
fn test_local_not_linted() {
|
2017-06-11 16:30:48 +00:00
|
|
|
|
let _: LinkedList<u8>;
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-12 11:15:15 +00:00
|
|
|
|
// 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<u8>) {}
|
|
|
|
|
pub fn pub_test_ret() -> Option<LinkedList<u8>> {
|
|
|
|
|
None
|
2015-08-21 16:40:36 +00:00
|
|
|
|
}
|
2021-08-12 11:15:15 +00:00
|
|
|
|
|
|
|
|
|
fn main() {}
|