]> git.lizzy.rs Git - rust.git/commitdiff
use a `BTreeSet` for a more stable error message order
authorNiko Matsakis <niko@alum.mit.edu>
Fri, 31 Aug 2018 20:09:04 +0000 (16:09 -0400)
committerNiko Matsakis <niko@alum.mit.edu>
Fri, 7 Sep 2018 15:37:47 +0000 (11:37 -0400)
src/librustc_typeck/astconv.rs

index 804aad3c0ecce29b86d51c9025ee1ce13ea96b48..65dd71de1443f89b6161262a16433ce5c92a02a3 100644 (file)
 use rustc::ty::{GenericParamDef, GenericParamDefKind};
 use rustc::ty::wf::object_region_bounds;
 use rustc_target::spec::abi;
+use std::collections::BTreeSet;
 use std::slice;
 use require_c_abi_if_variadic;
 use util::common::ErrorReported;
-use util::nodemap::{FxHashSet, FxHashMap};
+use util::nodemap::FxHashMap;
 use errors::{FatalError, DiagnosticId};
 use lint;
 
@@ -996,7 +997,9 @@ fn conv_object_ty_poly_trait_ref(&self,
             return tcx.types.err;
         }
 
-        let mut associated_types = FxHashSet::default();
+        // use a btreeset to keep output in a more consistent order
+        let mut associated_types = BTreeSet::default();
+
         for tr in traits::supertraits(tcx, principal) {
             associated_types.extend(tcx.associated_items(tr.def_id())
                 .filter(|item| item.kind == ty::AssociatedKind::Type)