-// 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
#![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);
}
}
-
impl<T: Hash + Eq> Foo<i8> for HashSet<T> {
fn make() -> (Self, Self) {
(HashSet::new(), HashSet::with_capacity(10))
}
}
-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) => {
};
(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);
// 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() {}