1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
11 #![feature(tool_lints)]
13 #![allow(clippy::many_single_char_names, clippy::blacklisted_name, clippy::redundant_field_names)]
15 #[derive(Copy, Clone)]
18 #[derive(Copy, Clone)]
27 fn good(a: &mut u32, b: u32, c: &Bar) {
30 fn good_return_implicit_lt_ref(foo: &Foo) -> &u32 {
34 #[allow(clippy::needless_lifetimes)]
35 fn good_return_explicit_lt_ref<'a>(foo: &'a Foo) -> &'a u32 {
39 fn good_return_implicit_lt_struct(foo: &Foo) -> FooRef {
45 #[allow(clippy::needless_lifetimes)]
46 fn good_return_explicit_lt_struct<'a>(foo: &'a Foo) -> FooRef<'a> {
52 fn bad(x: &u32, y: &Foo, z: &Baz) {
56 fn good(self, a: &mut u32, b: u32, c: &Bar) {
62 fn bad(&self, x: &u32, y: &Foo, z: &Baz) {
65 fn bad2(x: &u32, y: &Foo, z: &Baz) {
69 impl AsRef<u32> for Foo {
70 fn as_ref(&self) -> &u32 {
76 fn good(&self, a: &mut u32, b: u32, c: &Bar) {
79 fn bad2(x: &u32, y: &Foo, z: &Baz) {
84 let (mut foo, bar) = (Foo(0), Bar([0; 24]));
85 let (mut a, b, c, x, y, z) = (0, 0, Bar([0; 24]), 0, Foo(0), 0);
87 good_return_implicit_lt_ref(&y);
88 good_return_explicit_lt_ref(&y);
90 foo.good(&mut a, b, &c);
93 Foo::bad2(&x, &y, &z);
94 bar.good(&mut a, b, &c);
95 Bar::bad2(&x, &y, &z);