about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock1
-rw-r--r--src/librustc_traits/Cargo.toml1
-rw-r--r--src/librustc_traits/chalk_context/mod.rs9
3 files changed, 4 insertions, 7 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 7c074fb18a6..54a54f1a0c2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3819,6 +3819,7 @@ dependencies = [
  "log",
  "rustc",
  "rustc_data_structures",
+ "rustc_macros",
  "rustc_target",
  "smallvec 1.0.0",
  "syntax",
diff --git a/src/librustc_traits/Cargo.toml b/src/librustc_traits/Cargo.toml
index a9b184a7b30..fab177139dc 100644
--- a/src/librustc_traits/Cargo.toml
+++ b/src/librustc_traits/Cargo.toml
@@ -12,6 +12,7 @@ path = "lib.rs"
 log = { version = "0.4" }
 rustc = { path = "../librustc" }
 rustc_data_structures = { path = "../librustc_data_structures" }
+rustc_macros = { path = "../librustc_macros" }
 rustc_target = { path = "../librustc_target" }
 syntax = { path = "../libsyntax" }
 syntax_pos = { path = "../libsyntax_pos" }
diff --git a/src/librustc_traits/chalk_context/mod.rs b/src/librustc_traits/chalk_context/mod.rs
index 8d136a1b65c..84d2271020f 100644
--- a/src/librustc_traits/chalk_context/mod.rs
+++ b/src/librustc_traits/chalk_context/mod.rs
@@ -39,6 +39,7 @@ use rustc::ty::query::Providers;
 use rustc::ty::subst::{GenericArg, GenericArgKind};
 use rustc::mir::interpret::ConstValue;
 use syntax_pos::DUMMY_SP;
+use rustc_macros::TypeFoldable;
 
 use std::fmt::{self, Debug};
 use std::marker::PhantomData;
@@ -66,18 +67,12 @@ crate struct UniverseMap;
 
 crate type RegionConstraint<'tcx> = ty::OutlivesPredicate<GenericArg<'tcx>, ty::Region<'tcx>>;
 
-#[derive(Clone, Debug, PartialEq, Eq, Hash)]
+#[derive(Clone, Debug, PartialEq, Eq, Hash, TypeFoldable)]
 crate struct ConstrainedSubst<'tcx> {
     subst: CanonicalVarValues<'tcx>,
     constraints: Vec<RegionConstraint<'tcx>>,
 }
 
-BraceStructTypeFoldableImpl! {
-    impl<'tcx> TypeFoldable<'tcx> for ConstrainedSubst<'tcx> {
-        subst, constraints
-    }
-}
-
 impl context::Context for ChalkArenas<'tcx> {
     type CanonicalExClause = Canonical<'tcx, ChalkExClause<'tcx>>;