2018-10-06 16:18:06 +00:00
|
|
|
// 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.
|
|
|
|
|
2018-05-18 20:56:25 +00:00
|
|
|
use std::collections::HashSet;
|
|
|
|
|
2018-11-22 03:40:09 +00:00
|
|
|
// See https://github.com/rust-lang/rust-clippy/issues/2774
|
2018-05-18 20:56:25 +00:00
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Hash)]
|
|
|
|
pub struct Bar {
|
|
|
|
foo: Foo,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Eq, PartialEq, Debug, Hash)]
|
|
|
|
pub struct Foo {}
|
|
|
|
|
2018-07-30 09:33:44 +00:00
|
|
|
#[allow(clippy::implicit_hasher)]
|
2018-05-18 20:56:25 +00:00
|
|
|
// This should not cause a 'cannot relate bound region' ICE
|
|
|
|
pub fn add_barfoos_to_foos<'a>(bars: &HashSet<&'a Bar>) {
|
|
|
|
let mut foos = HashSet::new();
|
2018-12-09 22:26:16 +00:00
|
|
|
foos.extend(bars.iter().map(|b| &b.foo));
|
2018-05-18 20:56:25 +00:00
|
|
|
}
|
|
|
|
|
2018-07-30 09:33:44 +00:00
|
|
|
#[allow(clippy::implicit_hasher)]
|
2018-05-18 20:56:25 +00:00
|
|
|
// Also this should not cause a 'cannot relate bound region' ICE
|
|
|
|
pub fn add_barfoos_to_foos2(bars: &HashSet<&Bar>) {
|
|
|
|
let mut foos = HashSet::new();
|
2018-12-09 22:26:16 +00:00
|
|
|
foos.extend(bars.iter().map(|b| &b.foo));
|
2018-05-18 20:56:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|