diff --git a/src/librustc/arena.rs b/src/librustc/arena.rs index 33cbf6ede0a01..f5c83fed1fc15 100644 --- a/src/librustc/arena.rs +++ b/src/librustc/arena.rs @@ -51,19 +51,19 @@ macro_rules! arena_types { [] dropck_outlives: rustc::infer::canonical::Canonical<'tcx, rustc::infer::canonical::QueryResponse<'tcx, - rustc::traits::query::dropck_outlives::DropckOutlivesResult<'tcx> + rustc::traits::query::DropckOutlivesResult<'tcx> > >, [] normalize_projection_ty: rustc::infer::canonical::Canonical<'tcx, rustc::infer::canonical::QueryResponse<'tcx, - rustc::traits::query::normalize::NormalizationResult<'tcx> + rustc::traits::query::NormalizationResult<'tcx> > >, [] implied_outlives_bounds: rustc::infer::canonical::Canonical<'tcx, rustc::infer::canonical::QueryResponse<'tcx, - Vec> + Vec> > >, [] type_op_subtype: diff --git a/src/librustc/infer/types/canonical.rs b/src/librustc/infer/canonical.rs similarity index 99% rename from src/librustc/infer/types/canonical.rs rename to src/librustc/infer/canonical.rs index 133cf1b592862..76d0d57e233a3 100644 --- a/src/librustc/infer/types/canonical.rs +++ b/src/librustc/infer/canonical.rs @@ -21,7 +21,7 @@ //! //! [c]: https://rust-lang.github.io/rustc-guide/traits/canonicalization.html -use crate::infer::region_constraints::MemberConstraint; +use crate::infer::MemberConstraint; use crate::ty::subst::GenericArg; use crate::ty::{self, BoundVar, List, Region, TyCtxt}; use rustc_index::vec::IndexVec; diff --git a/src/librustc/infer/types/mod.rs b/src/librustc/infer/mod.rs similarity index 97% rename from src/librustc/infer/types/mod.rs rename to src/librustc/infer/mod.rs index 534f4cb179c4f..497d3811f281b 100644 --- a/src/librustc/infer/types/mod.rs +++ b/src/librustc/infer/mod.rs @@ -1,4 +1,5 @@ pub mod canonical; +pub mod unify_key; use crate::ty::Region; use crate::ty::Ty; diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index ceac68704d2b0..e1e774b853c20 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -13,10 +13,6 @@ //! defined in the `ty` module. This includes the **type context** //! (or `tcx`), which is the central context during most of //! compilation, containing the interners and other things. -//! - **Traits.** Trait resolution is implemented in the `traits` module. -//! - **Type inference.** The type inference code can be found in the `infer` module; -//! this code handles low-level equality and subtyping operations. The -//! type check pass in the compiler is found in the `librustc_typeck` crate. //! //! For more information about how rustc works, see the [rustc guide]. //! diff --git a/src/librustc/traits/types/mod.rs b/src/librustc/traits/mod.rs similarity index 99% rename from src/librustc/traits/types/mod.rs rename to src/librustc/traits/mod.rs index 571fb505779ca..c000aa7c25e97 100644 --- a/src/librustc/traits/types/mod.rs +++ b/src/librustc/traits/mod.rs @@ -7,6 +7,7 @@ pub mod select; pub mod specialization_graph; mod structural_impls; +use crate::infer::canonical::Canonical; use crate::mir::interpret::ErrorHandled; use crate::ty::fold::{TypeFolder, TypeVisitor}; use crate::ty::subst::SubstsRef; @@ -22,6 +23,8 @@ use std::rc::Rc; pub use self::select::{EvaluationCache, EvaluationResult, OverflowError, SelectionCache}; +pub type ChalkCanonicalGoal<'tcx> = Canonical<'tcx, InEnvironment<'tcx, ty::Predicate<'tcx>>>; + pub use self::ObligationCauseCode::*; pub use self::SelectionError::*; pub use self::Vtable::*; diff --git a/src/librustc/traits/types/query.rs b/src/librustc/traits/query.rs similarity index 100% rename from src/librustc/traits/types/query.rs rename to src/librustc/traits/query.rs diff --git a/src/librustc/traits/types/select.rs b/src/librustc/traits/select.rs similarity index 100% rename from src/librustc/traits/types/select.rs rename to src/librustc/traits/select.rs diff --git a/src/librustc/traits/types/specialization_graph.rs b/src/librustc/traits/specialization_graph.rs similarity index 100% rename from src/librustc/traits/types/specialization_graph.rs rename to src/librustc/traits/specialization_graph.rs diff --git a/src/librustc/traits/types/structural_impls.rs b/src/librustc/traits/structural_impls.rs similarity index 100% rename from src/librustc/traits/types/structural_impls.rs rename to src/librustc/traits/structural_impls.rs diff --git a/src/librustc/ty/query/mod.rs b/src/librustc/ty/query/mod.rs index ddaaab412a477..125ee316ed887 100644 --- a/src/librustc/ty/query/mod.rs +++ b/src/librustc/ty/query/mod.rs @@ -19,15 +19,15 @@ use crate::mir::interpret::{LitToConstError, LitToConstInput}; use crate::mir::mono::CodegenUnit; use crate::session::config::{EntryFnType, OptLevel, OutputFilenames, SymbolManglingVersion}; use crate::session::CrateDisambiguator; -use crate::traits::query::dropck_outlives::{DropckOutlivesResult, DtorckConstraint}; -use crate::traits::query::method_autoderef::MethodAutoderefStepsResult; -use crate::traits::query::normalize::NormalizationResult; -use crate::traits::query::outlives_bounds::OutlivesBound; use crate::traits::query::{ CanonicalPredicateGoal, CanonicalProjectionGoal, CanonicalTyGoal, CanonicalTypeOpAscribeUserTypeGoal, CanonicalTypeOpEqGoal, CanonicalTypeOpNormalizeGoal, CanonicalTypeOpProvePredicateGoal, CanonicalTypeOpSubtypeGoal, NoSolution, }; +use crate::traits::query::{ + DropckOutlivesResult, DtorckConstraint, MethodAutoderefStepsResult, NormalizationResult, + OutlivesBound, +}; use crate::traits::specialization_graph; use crate::traits::Clauses; use crate::traits::{self, Vtable};