rust/tests/ui/linkedlist.rs

58 lines
2.1 KiB
Rust
Raw Normal View History

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