]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/implicit_hasher.rs
Auto merge of #6336 - giraffate:sync-from-rust, r=flip1995
[rust.git] / tests / ui / implicit_hasher.rs
index a6be909c0cc20c314c0f8fc590bfcfd875a00f1d..fdcc9a33f55fe93e2d5989f1757b2233c43c3d78 100644 (file)
@@ -1,18 +1,13 @@
-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-
+// aux-build:implicit_hasher_macros.rs
+#![deny(clippy::implicit_hasher)]
 #![allow(unused)]
 
-use std::collections::{HashMap, HashSet};
+#[macro_use]
+extern crate implicit_hasher_macros;
+
 use std::cmp::Eq;
-use std::hash::{Hash, BuildHasher};
+use std::collections::{HashMap, HashSet};
+use std::hash::{BuildHasher, Hash};
 
 pub trait Foo<T>: Sized {
     fn make() -> (Self, Self);
@@ -49,7 +44,6 @@ fn make() -> (Self, Self) {
     }
 }
 
-
 impl<T: Hash + Eq> Foo<i8> for HashSet<T> {
     fn make() -> (Self, Self) {
         (HashSet::new(), HashSet::with_capacity(10))
@@ -72,8 +66,7 @@ fn make() -> (Self, Self) {
     }
 }
 
-pub fn foo(_map: &mut HashMap<i32, i32>, _set: &mut HashSet<i32>) {
-}
+pub fn foo(_map: &mut HashMap<i32, i32>, _set: &mut HashSet<i32>) {}
 
 macro_rules! gen {
     (impl) => {
@@ -85,11 +78,10 @@ fn make() -> (Self, Self) {
     };
 
     (fn $name:ident) => {
-        pub fn $name(_map: &mut HashMap<i32, i32>, _set: &mut HashSet<i32>) {
-        }
-    }
+        pub fn $name(_map: &mut HashMap<i32, i32>, _set: &mut HashSet<i32>) {}
+    };
 }
-
+#[rustfmt::skip]
 gen!(impl);
 gen!(fn bar);
 
@@ -97,7 +89,11 @@ pub fn $name(_map: &mut HashMap<i32, i32>, _set: &mut HashSet<i32>) {
 // and should not cause an ICE
 // See #2707
 #[macro_use]
-#[path = "../auxiliary/test_macro.rs"] pub mod test_macro;
+#[path = "../auxiliary/test_macro.rs"]
+pub mod test_macro;
 __implicit_hasher_test_macro!(impl<K, V> for HashMap<K, V> where V: test_macro::A);
 
+// #4260
+implicit_hasher_fn!();
+
 fn main() {}