summaryrefslogtreecommitdiffstats
path: root/src/test/ui-fulldeps/internal-lints/default_hash_types.rs
blob: 795c7d2dcb7354270bcf64004ddd9810fea6587e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// compile-flags: -Z unstable-options

#![feature(rustc_private)]
#![deny(rustc::default_hash_types)]

extern crate rustc_data_structures;

use rustc_data_structures::fx::{FxHashMap, FxHashSet};
use std::collections::{HashMap, HashSet};

mod foo {
    pub struct HashMap;
}

fn main() {
    let _map: HashMap<String, String> = HashMap::default();
    //~^ ERROR prefer `FxHashMap` over `HashMap`, it has better performance
    //~^^ ERROR prefer `FxHashMap` over `HashMap`, it has better performance
    let _set: HashSet<String> = HashSet::default();
    //~^ ERROR prefer `FxHashSet` over `HashSet`, it has better performance
    //~^^ ERROR prefer `FxHashSet` over `HashSet`, it has better performance

    // test that the lint doesn't also match the Fx variants themselves
    let _fx_map: FxHashMap<String, String> = FxHashMap::default();
    let _fx_set: FxHashSet<String> = FxHashSet::default();

    // test another struct of the same name
    let _ = foo::HashMap;
}