From d5691209b6d5fe5e47560b1db7b822dbeb0880fd Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 20:13:24 +0100 Subject: [PATCH 01/11] Move librustc/{traits,infer} to librustc_infer. --- src/{librustc => librustc_infer}/infer/at.rs | 0 src/{librustc => librustc_infer}/infer/canonical/canonicalizer.rs | 0 src/{librustc => librustc_infer}/infer/canonical/mod.rs | 0 .../infer/canonical/query_response.rs | 0 src/{librustc => librustc_infer}/infer/canonical/substitute.rs | 0 src/{librustc => librustc_infer}/infer/combine.rs | 0 src/{librustc => librustc_infer}/infer/equate.rs | 0 src/{librustc => librustc_infer}/infer/error_reporting/mod.rs | 0 .../infer/error_reporting/need_type_info.rs | 0 .../error_reporting/nice_region_error/different_lifetimes.rs | 0 .../infer/error_reporting/nice_region_error/find_anon_type.rs | 0 .../infer/error_reporting/nice_region_error/mod.rs | 0 .../error_reporting/nice_region_error/named_anon_conflict.rs | 0 .../infer/error_reporting/nice_region_error/outlives_closure.rs | 0 .../infer/error_reporting/nice_region_error/placeholder_error.rs | 0 .../infer/error_reporting/nice_region_error/static_impl_trait.rs | 0 .../error_reporting/nice_region_error/trait_impl_difference.rs | 0 .../infer/error_reporting/nice_region_error/util.rs | 0 src/{librustc => librustc_infer}/infer/error_reporting/note.rs | 0 src/{librustc => librustc_infer}/infer/freshen.rs | 0 src/{librustc => librustc_infer}/infer/fudge.rs | 0 src/{librustc => librustc_infer}/infer/glb.rs | 0 src/{librustc => librustc_infer}/infer/higher_ranked/README.md | 0 src/{librustc => librustc_infer}/infer/higher_ranked/mod.rs | 0 src/{librustc => librustc_infer}/infer/lattice.rs | 0 .../infer/lexical_region_resolve/README.md | 0 .../infer/lexical_region_resolve/graphviz.rs | 0 .../infer/lexical_region_resolve/mod.rs | 0 src/{librustc => librustc_infer}/infer/lub.rs | 0 src/{librustc => librustc_infer}/infer/mod.rs | 0 src/{librustc => librustc_infer}/infer/nll_relate/mod.rs | 0 src/{librustc => librustc_infer}/infer/opaque_types/mod.rs | 0 src/{librustc => librustc_infer}/infer/outlives/env.rs | 0 src/{librustc => librustc_infer}/infer/outlives/mod.rs | 0 src/{librustc => librustc_infer}/infer/outlives/obligations.rs | 0 src/{librustc => librustc_infer}/infer/outlives/verify.rs | 0 .../infer/region_constraints/README.md | 0 .../infer/region_constraints/leak_check.rs | 0 src/{librustc => librustc_infer}/infer/region_constraints/mod.rs | 0 src/{librustc => librustc_infer}/infer/resolve.rs | 0 src/{librustc => librustc_infer}/infer/sub.rs | 0 src/{librustc => librustc_infer}/infer/type_variable.rs | 0 src/{librustc => librustc_infer}/traits/auto_trait.rs | 0 src/{librustc => librustc_infer}/traits/chalk_fulfill.rs | 0 src/{librustc => librustc_infer}/traits/codegen/mod.rs | 0 src/{librustc => librustc_infer}/traits/coherence.rs | 0 src/{librustc => librustc_infer}/traits/engine.rs | 0 src/{librustc => librustc_infer}/traits/error_reporting/mod.rs | 0 .../traits/error_reporting/on_unimplemented.rs | 0 .../traits/error_reporting/suggestions.rs | 0 src/{librustc => librustc_infer}/traits/fulfill.rs | 0 src/{librustc => librustc_infer}/traits/misc.rs | 0 src/{librustc => librustc_infer}/traits/mod.rs | 0 src/{librustc => librustc_infer}/traits/object_safety.rs | 0 src/{librustc => librustc_infer}/traits/on_unimplemented.rs | 0 src/{librustc => librustc_infer}/traits/project.rs | 0 src/{librustc => librustc_infer}/traits/query/dropck_outlives.rs | 0 .../traits/query/evaluate_obligation.rs | 0 src/{librustc => librustc_infer}/traits/query/method_autoderef.rs | 0 src/{librustc => librustc_infer}/traits/query/mod.rs | 0 src/{librustc => librustc_infer}/traits/query/normalize.rs | 0 src/{librustc => librustc_infer}/traits/query/outlives_bounds.rs | 0 .../traits/query/type_op/ascribe_user_type.rs | 0 src/{librustc => librustc_infer}/traits/query/type_op/custom.rs | 0 src/{librustc => librustc_infer}/traits/query/type_op/eq.rs | 0 .../traits/query/type_op/implied_outlives_bounds.rs | 0 src/{librustc => librustc_infer}/traits/query/type_op/mod.rs | 0 .../traits/query/type_op/normalize.rs | 0 src/{librustc => librustc_infer}/traits/query/type_op/outlives.rs | 0 .../traits/query/type_op/prove_predicate.rs | 0 src/{librustc => librustc_infer}/traits/query/type_op/subtype.rs | 0 src/{librustc => librustc_infer}/traits/select.rs | 0 src/{librustc => librustc_infer}/traits/specialize/mod.rs | 0 .../traits/specialize/specialization_graph.rs | 0 src/{librustc => librustc_infer}/traits/structural_impls.rs | 0 src/{librustc => librustc_infer}/traits/structural_match.rs | 0 src/{librustc => librustc_infer}/traits/util.rs | 0 src/{librustc => librustc_infer}/traits/wf.rs | 0 78 files changed, 0 insertions(+), 0 deletions(-) rename src/{librustc => librustc_infer}/infer/at.rs (100%) rename src/{librustc => librustc_infer}/infer/canonical/canonicalizer.rs (100%) rename src/{librustc => librustc_infer}/infer/canonical/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/canonical/query_response.rs (100%) rename src/{librustc => librustc_infer}/infer/canonical/substitute.rs (100%) rename src/{librustc => librustc_infer}/infer/combine.rs (100%) rename src/{librustc => librustc_infer}/infer/equate.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/need_type_info.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/different_lifetimes.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/find_anon_type.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/named_anon_conflict.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/outlives_closure.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/placeholder_error.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/static_impl_trait.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/trait_impl_difference.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/nice_region_error/util.rs (100%) rename src/{librustc => librustc_infer}/infer/error_reporting/note.rs (100%) rename src/{librustc => librustc_infer}/infer/freshen.rs (100%) rename src/{librustc => librustc_infer}/infer/fudge.rs (100%) rename src/{librustc => librustc_infer}/infer/glb.rs (100%) rename src/{librustc => librustc_infer}/infer/higher_ranked/README.md (100%) rename src/{librustc => librustc_infer}/infer/higher_ranked/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/lattice.rs (100%) rename src/{librustc => librustc_infer}/infer/lexical_region_resolve/README.md (100%) rename src/{librustc => librustc_infer}/infer/lexical_region_resolve/graphviz.rs (100%) rename src/{librustc => librustc_infer}/infer/lexical_region_resolve/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/lub.rs (100%) rename src/{librustc => librustc_infer}/infer/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/nll_relate/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/opaque_types/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/outlives/env.rs (100%) rename src/{librustc => librustc_infer}/infer/outlives/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/outlives/obligations.rs (100%) rename src/{librustc => librustc_infer}/infer/outlives/verify.rs (100%) rename src/{librustc => librustc_infer}/infer/region_constraints/README.md (100%) rename src/{librustc => librustc_infer}/infer/region_constraints/leak_check.rs (100%) rename src/{librustc => librustc_infer}/infer/region_constraints/mod.rs (100%) rename src/{librustc => librustc_infer}/infer/resolve.rs (100%) rename src/{librustc => librustc_infer}/infer/sub.rs (100%) rename src/{librustc => librustc_infer}/infer/type_variable.rs (100%) rename src/{librustc => librustc_infer}/traits/auto_trait.rs (100%) rename src/{librustc => librustc_infer}/traits/chalk_fulfill.rs (100%) rename src/{librustc => librustc_infer}/traits/codegen/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/coherence.rs (100%) rename src/{librustc => librustc_infer}/traits/engine.rs (100%) rename src/{librustc => librustc_infer}/traits/error_reporting/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/error_reporting/on_unimplemented.rs (100%) rename src/{librustc => librustc_infer}/traits/error_reporting/suggestions.rs (100%) rename src/{librustc => librustc_infer}/traits/fulfill.rs (100%) rename src/{librustc => librustc_infer}/traits/misc.rs (100%) rename src/{librustc => librustc_infer}/traits/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/object_safety.rs (100%) rename src/{librustc => librustc_infer}/traits/on_unimplemented.rs (100%) rename src/{librustc => librustc_infer}/traits/project.rs (100%) rename src/{librustc => librustc_infer}/traits/query/dropck_outlives.rs (100%) rename src/{librustc => librustc_infer}/traits/query/evaluate_obligation.rs (100%) rename src/{librustc => librustc_infer}/traits/query/method_autoderef.rs (100%) rename src/{librustc => librustc_infer}/traits/query/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/query/normalize.rs (100%) rename src/{librustc => librustc_infer}/traits/query/outlives_bounds.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/ascribe_user_type.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/custom.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/eq.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/implied_outlives_bounds.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/normalize.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/outlives.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/prove_predicate.rs (100%) rename src/{librustc => librustc_infer}/traits/query/type_op/subtype.rs (100%) rename src/{librustc => librustc_infer}/traits/select.rs (100%) rename src/{librustc => librustc_infer}/traits/specialize/mod.rs (100%) rename src/{librustc => librustc_infer}/traits/specialize/specialization_graph.rs (100%) rename src/{librustc => librustc_infer}/traits/structural_impls.rs (100%) rename src/{librustc => librustc_infer}/traits/structural_match.rs (100%) rename src/{librustc => librustc_infer}/traits/util.rs (100%) rename src/{librustc => librustc_infer}/traits/wf.rs (100%) diff --git a/src/librustc/infer/at.rs b/src/librustc_infer/infer/at.rs similarity index 100% rename from src/librustc/infer/at.rs rename to src/librustc_infer/infer/at.rs diff --git a/src/librustc/infer/canonical/canonicalizer.rs b/src/librustc_infer/infer/canonical/canonicalizer.rs similarity index 100% rename from src/librustc/infer/canonical/canonicalizer.rs rename to src/librustc_infer/infer/canonical/canonicalizer.rs diff --git a/src/librustc/infer/canonical/mod.rs b/src/librustc_infer/infer/canonical/mod.rs similarity index 100% rename from src/librustc/infer/canonical/mod.rs rename to src/librustc_infer/infer/canonical/mod.rs diff --git a/src/librustc/infer/canonical/query_response.rs b/src/librustc_infer/infer/canonical/query_response.rs similarity index 100% rename from src/librustc/infer/canonical/query_response.rs rename to src/librustc_infer/infer/canonical/query_response.rs diff --git a/src/librustc/infer/canonical/substitute.rs b/src/librustc_infer/infer/canonical/substitute.rs similarity index 100% rename from src/librustc/infer/canonical/substitute.rs rename to src/librustc_infer/infer/canonical/substitute.rs diff --git a/src/librustc/infer/combine.rs b/src/librustc_infer/infer/combine.rs similarity index 100% rename from src/librustc/infer/combine.rs rename to src/librustc_infer/infer/combine.rs diff --git a/src/librustc/infer/equate.rs b/src/librustc_infer/infer/equate.rs similarity index 100% rename from src/librustc/infer/equate.rs rename to src/librustc_infer/infer/equate.rs diff --git a/src/librustc/infer/error_reporting/mod.rs b/src/librustc_infer/infer/error_reporting/mod.rs similarity index 100% rename from src/librustc/infer/error_reporting/mod.rs rename to src/librustc_infer/infer/error_reporting/mod.rs diff --git a/src/librustc/infer/error_reporting/need_type_info.rs b/src/librustc_infer/infer/error_reporting/need_type_info.rs similarity index 100% rename from src/librustc/infer/error_reporting/need_type_info.rs rename to src/librustc_infer/infer/error_reporting/need_type_info.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/different_lifetimes.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/different_lifetimes.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/find_anon_type.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/find_anon_type.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/mod.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/mod.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/named_anon_conflict.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/named_anon_conflict.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/outlives_closure.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/outlives_closure.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/static_impl_trait.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/static_impl_trait.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/trait_impl_difference.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/trait_impl_difference.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs diff --git a/src/librustc/infer/error_reporting/nice_region_error/util.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs similarity index 100% rename from src/librustc/infer/error_reporting/nice_region_error/util.rs rename to src/librustc_infer/infer/error_reporting/nice_region_error/util.rs diff --git a/src/librustc/infer/error_reporting/note.rs b/src/librustc_infer/infer/error_reporting/note.rs similarity index 100% rename from src/librustc/infer/error_reporting/note.rs rename to src/librustc_infer/infer/error_reporting/note.rs diff --git a/src/librustc/infer/freshen.rs b/src/librustc_infer/infer/freshen.rs similarity index 100% rename from src/librustc/infer/freshen.rs rename to src/librustc_infer/infer/freshen.rs diff --git a/src/librustc/infer/fudge.rs b/src/librustc_infer/infer/fudge.rs similarity index 100% rename from src/librustc/infer/fudge.rs rename to src/librustc_infer/infer/fudge.rs diff --git a/src/librustc/infer/glb.rs b/src/librustc_infer/infer/glb.rs similarity index 100% rename from src/librustc/infer/glb.rs rename to src/librustc_infer/infer/glb.rs diff --git a/src/librustc/infer/higher_ranked/README.md b/src/librustc_infer/infer/higher_ranked/README.md similarity index 100% rename from src/librustc/infer/higher_ranked/README.md rename to src/librustc_infer/infer/higher_ranked/README.md diff --git a/src/librustc/infer/higher_ranked/mod.rs b/src/librustc_infer/infer/higher_ranked/mod.rs similarity index 100% rename from src/librustc/infer/higher_ranked/mod.rs rename to src/librustc_infer/infer/higher_ranked/mod.rs diff --git a/src/librustc/infer/lattice.rs b/src/librustc_infer/infer/lattice.rs similarity index 100% rename from src/librustc/infer/lattice.rs rename to src/librustc_infer/infer/lattice.rs diff --git a/src/librustc/infer/lexical_region_resolve/README.md b/src/librustc_infer/infer/lexical_region_resolve/README.md similarity index 100% rename from src/librustc/infer/lexical_region_resolve/README.md rename to src/librustc_infer/infer/lexical_region_resolve/README.md diff --git a/src/librustc/infer/lexical_region_resolve/graphviz.rs b/src/librustc_infer/infer/lexical_region_resolve/graphviz.rs similarity index 100% rename from src/librustc/infer/lexical_region_resolve/graphviz.rs rename to src/librustc_infer/infer/lexical_region_resolve/graphviz.rs diff --git a/src/librustc/infer/lexical_region_resolve/mod.rs b/src/librustc_infer/infer/lexical_region_resolve/mod.rs similarity index 100% rename from src/librustc/infer/lexical_region_resolve/mod.rs rename to src/librustc_infer/infer/lexical_region_resolve/mod.rs diff --git a/src/librustc/infer/lub.rs b/src/librustc_infer/infer/lub.rs similarity index 100% rename from src/librustc/infer/lub.rs rename to src/librustc_infer/infer/lub.rs diff --git a/src/librustc/infer/mod.rs b/src/librustc_infer/infer/mod.rs similarity index 100% rename from src/librustc/infer/mod.rs rename to src/librustc_infer/infer/mod.rs diff --git a/src/librustc/infer/nll_relate/mod.rs b/src/librustc_infer/infer/nll_relate/mod.rs similarity index 100% rename from src/librustc/infer/nll_relate/mod.rs rename to src/librustc_infer/infer/nll_relate/mod.rs diff --git a/src/librustc/infer/opaque_types/mod.rs b/src/librustc_infer/infer/opaque_types/mod.rs similarity index 100% rename from src/librustc/infer/opaque_types/mod.rs rename to src/librustc_infer/infer/opaque_types/mod.rs diff --git a/src/librustc/infer/outlives/env.rs b/src/librustc_infer/infer/outlives/env.rs similarity index 100% rename from src/librustc/infer/outlives/env.rs rename to src/librustc_infer/infer/outlives/env.rs diff --git a/src/librustc/infer/outlives/mod.rs b/src/librustc_infer/infer/outlives/mod.rs similarity index 100% rename from src/librustc/infer/outlives/mod.rs rename to src/librustc_infer/infer/outlives/mod.rs diff --git a/src/librustc/infer/outlives/obligations.rs b/src/librustc_infer/infer/outlives/obligations.rs similarity index 100% rename from src/librustc/infer/outlives/obligations.rs rename to src/librustc_infer/infer/outlives/obligations.rs diff --git a/src/librustc/infer/outlives/verify.rs b/src/librustc_infer/infer/outlives/verify.rs similarity index 100% rename from src/librustc/infer/outlives/verify.rs rename to src/librustc_infer/infer/outlives/verify.rs diff --git a/src/librustc/infer/region_constraints/README.md b/src/librustc_infer/infer/region_constraints/README.md similarity index 100% rename from src/librustc/infer/region_constraints/README.md rename to src/librustc_infer/infer/region_constraints/README.md diff --git a/src/librustc/infer/region_constraints/leak_check.rs b/src/librustc_infer/infer/region_constraints/leak_check.rs similarity index 100% rename from src/librustc/infer/region_constraints/leak_check.rs rename to src/librustc_infer/infer/region_constraints/leak_check.rs diff --git a/src/librustc/infer/region_constraints/mod.rs b/src/librustc_infer/infer/region_constraints/mod.rs similarity index 100% rename from src/librustc/infer/region_constraints/mod.rs rename to src/librustc_infer/infer/region_constraints/mod.rs diff --git a/src/librustc/infer/resolve.rs b/src/librustc_infer/infer/resolve.rs similarity index 100% rename from src/librustc/infer/resolve.rs rename to src/librustc_infer/infer/resolve.rs diff --git a/src/librustc/infer/sub.rs b/src/librustc_infer/infer/sub.rs similarity index 100% rename from src/librustc/infer/sub.rs rename to src/librustc_infer/infer/sub.rs diff --git a/src/librustc/infer/type_variable.rs b/src/librustc_infer/infer/type_variable.rs similarity index 100% rename from src/librustc/infer/type_variable.rs rename to src/librustc_infer/infer/type_variable.rs diff --git a/src/librustc/traits/auto_trait.rs b/src/librustc_infer/traits/auto_trait.rs similarity index 100% rename from src/librustc/traits/auto_trait.rs rename to src/librustc_infer/traits/auto_trait.rs diff --git a/src/librustc/traits/chalk_fulfill.rs b/src/librustc_infer/traits/chalk_fulfill.rs similarity index 100% rename from src/librustc/traits/chalk_fulfill.rs rename to src/librustc_infer/traits/chalk_fulfill.rs diff --git a/src/librustc/traits/codegen/mod.rs b/src/librustc_infer/traits/codegen/mod.rs similarity index 100% rename from src/librustc/traits/codegen/mod.rs rename to src/librustc_infer/traits/codegen/mod.rs diff --git a/src/librustc/traits/coherence.rs b/src/librustc_infer/traits/coherence.rs similarity index 100% rename from src/librustc/traits/coherence.rs rename to src/librustc_infer/traits/coherence.rs diff --git a/src/librustc/traits/engine.rs b/src/librustc_infer/traits/engine.rs similarity index 100% rename from src/librustc/traits/engine.rs rename to src/librustc_infer/traits/engine.rs diff --git a/src/librustc/traits/error_reporting/mod.rs b/src/librustc_infer/traits/error_reporting/mod.rs similarity index 100% rename from src/librustc/traits/error_reporting/mod.rs rename to src/librustc_infer/traits/error_reporting/mod.rs diff --git a/src/librustc/traits/error_reporting/on_unimplemented.rs b/src/librustc_infer/traits/error_reporting/on_unimplemented.rs similarity index 100% rename from src/librustc/traits/error_reporting/on_unimplemented.rs rename to src/librustc_infer/traits/error_reporting/on_unimplemented.rs diff --git a/src/librustc/traits/error_reporting/suggestions.rs b/src/librustc_infer/traits/error_reporting/suggestions.rs similarity index 100% rename from src/librustc/traits/error_reporting/suggestions.rs rename to src/librustc_infer/traits/error_reporting/suggestions.rs diff --git a/src/librustc/traits/fulfill.rs b/src/librustc_infer/traits/fulfill.rs similarity index 100% rename from src/librustc/traits/fulfill.rs rename to src/librustc_infer/traits/fulfill.rs diff --git a/src/librustc/traits/misc.rs b/src/librustc_infer/traits/misc.rs similarity index 100% rename from src/librustc/traits/misc.rs rename to src/librustc_infer/traits/misc.rs diff --git a/src/librustc/traits/mod.rs b/src/librustc_infer/traits/mod.rs similarity index 100% rename from src/librustc/traits/mod.rs rename to src/librustc_infer/traits/mod.rs diff --git a/src/librustc/traits/object_safety.rs b/src/librustc_infer/traits/object_safety.rs similarity index 100% rename from src/librustc/traits/object_safety.rs rename to src/librustc_infer/traits/object_safety.rs diff --git a/src/librustc/traits/on_unimplemented.rs b/src/librustc_infer/traits/on_unimplemented.rs similarity index 100% rename from src/librustc/traits/on_unimplemented.rs rename to src/librustc_infer/traits/on_unimplemented.rs diff --git a/src/librustc/traits/project.rs b/src/librustc_infer/traits/project.rs similarity index 100% rename from src/librustc/traits/project.rs rename to src/librustc_infer/traits/project.rs diff --git a/src/librustc/traits/query/dropck_outlives.rs b/src/librustc_infer/traits/query/dropck_outlives.rs similarity index 100% rename from src/librustc/traits/query/dropck_outlives.rs rename to src/librustc_infer/traits/query/dropck_outlives.rs diff --git a/src/librustc/traits/query/evaluate_obligation.rs b/src/librustc_infer/traits/query/evaluate_obligation.rs similarity index 100% rename from src/librustc/traits/query/evaluate_obligation.rs rename to src/librustc_infer/traits/query/evaluate_obligation.rs diff --git a/src/librustc/traits/query/method_autoderef.rs b/src/librustc_infer/traits/query/method_autoderef.rs similarity index 100% rename from src/librustc/traits/query/method_autoderef.rs rename to src/librustc_infer/traits/query/method_autoderef.rs diff --git a/src/librustc/traits/query/mod.rs b/src/librustc_infer/traits/query/mod.rs similarity index 100% rename from src/librustc/traits/query/mod.rs rename to src/librustc_infer/traits/query/mod.rs diff --git a/src/librustc/traits/query/normalize.rs b/src/librustc_infer/traits/query/normalize.rs similarity index 100% rename from src/librustc/traits/query/normalize.rs rename to src/librustc_infer/traits/query/normalize.rs diff --git a/src/librustc/traits/query/outlives_bounds.rs b/src/librustc_infer/traits/query/outlives_bounds.rs similarity index 100% rename from src/librustc/traits/query/outlives_bounds.rs rename to src/librustc_infer/traits/query/outlives_bounds.rs diff --git a/src/librustc/traits/query/type_op/ascribe_user_type.rs b/src/librustc_infer/traits/query/type_op/ascribe_user_type.rs similarity index 100% rename from src/librustc/traits/query/type_op/ascribe_user_type.rs rename to src/librustc_infer/traits/query/type_op/ascribe_user_type.rs diff --git a/src/librustc/traits/query/type_op/custom.rs b/src/librustc_infer/traits/query/type_op/custom.rs similarity index 100% rename from src/librustc/traits/query/type_op/custom.rs rename to src/librustc_infer/traits/query/type_op/custom.rs diff --git a/src/librustc/traits/query/type_op/eq.rs b/src/librustc_infer/traits/query/type_op/eq.rs similarity index 100% rename from src/librustc/traits/query/type_op/eq.rs rename to src/librustc_infer/traits/query/type_op/eq.rs diff --git a/src/librustc/traits/query/type_op/implied_outlives_bounds.rs b/src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs similarity index 100% rename from src/librustc/traits/query/type_op/implied_outlives_bounds.rs rename to src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs diff --git a/src/librustc/traits/query/type_op/mod.rs b/src/librustc_infer/traits/query/type_op/mod.rs similarity index 100% rename from src/librustc/traits/query/type_op/mod.rs rename to src/librustc_infer/traits/query/type_op/mod.rs diff --git a/src/librustc/traits/query/type_op/normalize.rs b/src/librustc_infer/traits/query/type_op/normalize.rs similarity index 100% rename from src/librustc/traits/query/type_op/normalize.rs rename to src/librustc_infer/traits/query/type_op/normalize.rs diff --git a/src/librustc/traits/query/type_op/outlives.rs b/src/librustc_infer/traits/query/type_op/outlives.rs similarity index 100% rename from src/librustc/traits/query/type_op/outlives.rs rename to src/librustc_infer/traits/query/type_op/outlives.rs diff --git a/src/librustc/traits/query/type_op/prove_predicate.rs b/src/librustc_infer/traits/query/type_op/prove_predicate.rs similarity index 100% rename from src/librustc/traits/query/type_op/prove_predicate.rs rename to src/librustc_infer/traits/query/type_op/prove_predicate.rs diff --git a/src/librustc/traits/query/type_op/subtype.rs b/src/librustc_infer/traits/query/type_op/subtype.rs similarity index 100% rename from src/librustc/traits/query/type_op/subtype.rs rename to src/librustc_infer/traits/query/type_op/subtype.rs diff --git a/src/librustc/traits/select.rs b/src/librustc_infer/traits/select.rs similarity index 100% rename from src/librustc/traits/select.rs rename to src/librustc_infer/traits/select.rs diff --git a/src/librustc/traits/specialize/mod.rs b/src/librustc_infer/traits/specialize/mod.rs similarity index 100% rename from src/librustc/traits/specialize/mod.rs rename to src/librustc_infer/traits/specialize/mod.rs diff --git a/src/librustc/traits/specialize/specialization_graph.rs b/src/librustc_infer/traits/specialize/specialization_graph.rs similarity index 100% rename from src/librustc/traits/specialize/specialization_graph.rs rename to src/librustc_infer/traits/specialize/specialization_graph.rs diff --git a/src/librustc/traits/structural_impls.rs b/src/librustc_infer/traits/structural_impls.rs similarity index 100% rename from src/librustc/traits/structural_impls.rs rename to src/librustc_infer/traits/structural_impls.rs diff --git a/src/librustc/traits/structural_match.rs b/src/librustc_infer/traits/structural_match.rs similarity index 100% rename from src/librustc/traits/structural_match.rs rename to src/librustc_infer/traits/structural_match.rs diff --git a/src/librustc/traits/util.rs b/src/librustc_infer/traits/util.rs similarity index 100% rename from src/librustc/traits/util.rs rename to src/librustc_infer/traits/util.rs diff --git a/src/librustc/traits/wf.rs b/src/librustc_infer/traits/wf.rs similarity index 100% rename from src/librustc/traits/wf.rs rename to src/librustc_infer/traits/wf.rs From 187a9741d3cd63dd78571e2a0e08344aef05f51b Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 20:13:24 +0100 Subject: [PATCH 02/11] Make librustc compile. --- src/librustc/arena.rs | 6 +++--- src/librustc/infer/{types => }/canonical.rs | 2 +- src/librustc/infer/{types => }/mod.rs | 1 + src/librustc/lib.rs | 4 ---- src/librustc/traits/{types => }/mod.rs | 3 +++ src/librustc/traits/{types => }/query.rs | 0 src/librustc/traits/{types => }/select.rs | 0 src/librustc/traits/{types => }/specialization_graph.rs | 0 src/librustc/traits/{types => }/structural_impls.rs | 0 src/librustc/ty/query/mod.rs | 8 ++++---- 10 files changed, 12 insertions(+), 12 deletions(-) rename src/librustc/infer/{types => }/canonical.rs (99%) rename src/librustc/infer/{types => }/mod.rs (97%) rename src/librustc/traits/{types => }/mod.rs (99%) rename src/librustc/traits/{types => }/query.rs (100%) rename src/librustc/traits/{types => }/select.rs (100%) rename src/librustc/traits/{types => }/specialization_graph.rs (100%) rename src/librustc/traits/{types => }/structural_impls.rs (100%) 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}; From f07e8891458259bb4373bb6aa59d158304f637b1 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 20:13:24 +0100 Subject: [PATCH 03/11] Make librustc_infer compile. --- Cargo.lock | 30 +++++++++ src/librustc_infer/Cargo.toml | 28 ++++++++ src/librustc_infer/infer/canonical/mod.rs | 5 +- .../infer/canonical/query_response.rs | 8 +-- .../infer/canonical/substitute.rs | 29 ++++++-- .../infer/error_reporting/mod.rs | 16 +++-- .../infer/error_reporting/note.rs | 8 +-- src/librustc_infer/infer/mod.rs | 39 ++++++----- .../infer/outlives/obligations.rs | 2 + src/librustc_infer/infer/outlives/verify.rs | 2 + .../infer/region_constraints/mod.rs | 10 +-- src/librustc_infer/lib.rs | 67 +++++++++++++++++++ src/librustc_infer/traits/chalk_fulfill.rs | 4 +- src/librustc_infer/traits/codegen/mod.rs | 2 +- src/librustc_infer/traits/coherence.rs | 2 +- .../traits/error_reporting/mod.rs | 17 +++-- src/librustc_infer/traits/misc.rs | 3 +- src/librustc_infer/traits/mod.rs | 13 ++-- src/librustc_infer/traits/object_safety.rs | 1 + src/librustc_infer/traits/query/mod.rs | 2 +- .../traits/query/type_op/mod.rs | 2 +- src/librustc_infer/traits/select.rs | 2 +- src/librustc_infer/traits/specialize/mod.rs | 3 +- .../traits/specialize/specialization_graph.rs | 59 +++++++++++----- src/librustc_infer/traits/structural_match.rs | 9 ++- src/librustc_infer/traits/util.rs | 1 + src/librustc_lint/Cargo.toml | 1 + src/librustc_mir/Cargo.toml | 1 + src/librustc_mir_build/Cargo.toml | 1 + src/librustc_passes/Cargo.toml | 1 + src/librustc_resolve/Cargo.toml | 1 + src/librustc_traits/Cargo.toml | 1 + src/librustc_ty/Cargo.toml | 1 + src/librustc_typeck/Cargo.toml | 1 + 34 files changed, 284 insertions(+), 88 deletions(-) create mode 100644 src/librustc_infer/Cargo.toml create mode 100644 src/librustc_infer/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 2847e3cfb04b1..f8b4eca99eefa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3776,6 +3776,28 @@ dependencies = [ "smallvec 1.0.0", ] +[[package]] +name = "rustc_infer" +version = "0.0.0" +dependencies = [ + "fmt_macros", + "graphviz", + "log", + "rustc", + "rustc_attr", + "rustc_data_structures", + "rustc_error_codes", + "rustc_errors", + "rustc_hir", + "rustc_index", + "rustc_macros", + "rustc_session", + "rustc_span", + "rustc_target", + "smallvec 1.0.0", + "syntax", +] + [[package]] name = "rustc_interface" version = "0.0.0" @@ -3838,6 +3860,7 @@ dependencies = [ "rustc_feature", "rustc_hir", "rustc_index", + "rustc_infer", "rustc_session", "rustc_span", "rustc_target", @@ -3907,6 +3930,7 @@ dependencies = [ "rustc_errors", "rustc_hir", "rustc_index", + "rustc_infer", "rustc_lexer", "rustc_macros", "rustc_span", @@ -3929,6 +3953,7 @@ dependencies = [ "rustc_errors", "rustc_hir", "rustc_index", + "rustc_infer", "rustc_macros", "rustc_session", "rustc_span", @@ -3969,6 +3994,7 @@ dependencies = [ "rustc_feature", "rustc_hir", "rustc_index", + "rustc_infer", "rustc_session", "rustc_span", "rustc_target", @@ -4019,6 +4045,7 @@ dependencies = [ "rustc_expand", "rustc_feature", "rustc_hir", + "rustc_infer", "rustc_metadata", "rustc_session", "rustc_span", @@ -4108,6 +4135,7 @@ dependencies = [ "rustc", "rustc_data_structures", "rustc_hir", + "rustc_infer", "rustc_macros", "rustc_span", "rustc_target", @@ -4123,6 +4151,7 @@ dependencies = [ "rustc", "rustc_data_structures", "rustc_hir", + "rustc_infer", "rustc_span", "rustc_target", ] @@ -4139,6 +4168,7 @@ dependencies = [ "rustc_errors", "rustc_hir", "rustc_index", + "rustc_infer", "rustc_span", "rustc_target", "smallvec 1.0.0", diff --git a/src/librustc_infer/Cargo.toml b/src/librustc_infer/Cargo.toml new file mode 100644 index 0000000000000..53970a4aaf315 --- /dev/null +++ b/src/librustc_infer/Cargo.toml @@ -0,0 +1,28 @@ +[package] +authors = ["The Rust Project Developers"] +name = "rustc_infer" +version = "0.0.0" +edition = "2018" + +[lib] +name = "rustc_infer" +path = "lib.rs" +doctest = false + +[dependencies] +fmt_macros = { path = "../libfmt_macros" } +graphviz = { path = "../libgraphviz" } +log = { version = "0.4", features = ["release_max_level_info", "std"] } +rustc_attr = { path = "../librustc_attr" } +rustc = { path = "../librustc" } +rustc_data_structures = { path = "../librustc_data_structures" } +rustc_errors = { path = "../librustc_errors" } +rustc_error_codes = { path = "../librustc_error_codes" } +rustc_hir = { path = "../librustc_hir" } +rustc_index = { path = "../librustc_index" } +rustc_macros = { path = "../librustc_macros" } +rustc_session = { path = "../librustc_session" } +rustc_span = { path = "../librustc_span" } +rustc_target = { path = "../librustc_target" } +smallvec = { version = "1.0", features = ["union", "may_dangle"] } +syntax = { path = "../libsyntax" } diff --git a/src/librustc_infer/infer/canonical/mod.rs b/src/librustc_infer/infer/canonical/mod.rs index f157d805bcd8c..ba019a8cf0369 100644 --- a/src/librustc_infer/infer/canonical/mod.rs +++ b/src/librustc_infer/infer/canonical/mod.rs @@ -29,12 +29,11 @@ use rustc::ty::{self, BoundVar, List}; use rustc_index::vec::IndexVec; use rustc_span::source_map::Span; -pub use rustc::infer::types::canonical::*; +pub use rustc::infer::canonical::*; +use substitute::CanonicalExt; mod canonicalizer; - pub mod query_response; - mod substitute; impl<'cx, 'tcx> InferCtxt<'cx, 'tcx> { diff --git a/src/librustc_infer/infer/canonical/query_response.rs b/src/librustc_infer/infer/canonical/query_response.rs index 012900f8af51b..5dc98cb6febbb 100644 --- a/src/librustc_infer/infer/canonical/query_response.rs +++ b/src/librustc_infer/infer/canonical/query_response.rs @@ -8,7 +8,7 @@ //! [c]: https://rust-lang.github.io/rustc-guide/traits/canonicalization.html use crate::arena::ArenaAllocatable; -use crate::infer::canonical::substitute::substitute_value; +use crate::infer::canonical::substitute::{substitute_value, CanonicalExt}; use crate::infer::canonical::{ Canonical, CanonicalVarValues, CanonicalizedQueryResponse, Certainty, OriginalQueryValues, QueryOutlivesConstraint, QueryRegionConstraints, QueryResponse, @@ -19,9 +19,9 @@ use crate::infer::{InferCtxt, InferOk, InferResult}; use crate::traits::query::{Fallible, NoSolution}; use crate::traits::TraitEngine; use crate::traits::{Obligation, ObligationCause, PredicateObligation}; -use crate::ty::fold::TypeFoldable; -use crate::ty::subst::{GenericArg, GenericArgKind}; -use crate::ty::{self, BoundVar, Ty, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::subst::{GenericArg, GenericArgKind}; +use rustc::ty::{self, BoundVar, Ty, TyCtxt}; use rustc_data_structures::captures::Captures; use rustc_index::vec::Idx; use rustc_index::vec::IndexVec; diff --git a/src/librustc_infer/infer/canonical/substitute.rs b/src/librustc_infer/infer/canonical/substitute.rs index 92516345633f2..92066048261d6 100644 --- a/src/librustc_infer/infer/canonical/substitute.rs +++ b/src/librustc_infer/infer/canonical/substitute.rs @@ -11,15 +11,12 @@ use crate::ty::fold::TypeFoldable; use crate::ty::subst::GenericArgKind; use crate::ty::{self, TyCtxt}; -impl<'tcx, V> Canonical<'tcx, V> { +pub(super) trait CanonicalExt<'tcx, V> { /// Instantiate the wrapped value, replacing each canonical value /// with the value given in `var_values`. - pub fn substitute(&self, tcx: TyCtxt<'tcx>, var_values: &CanonicalVarValues<'tcx>) -> V + fn substitute(&self, tcx: TyCtxt<'tcx>, var_values: &CanonicalVarValues<'tcx>) -> V where - V: TypeFoldable<'tcx>, - { - self.substitute_projected(tcx, var_values, |value| value) - } + V: TypeFoldable<'tcx>; /// Allows one to apply a substitute to some subset of /// `self.value`. Invoke `projection_fn` with `self.value` to get @@ -27,7 +24,25 @@ impl<'tcx, V> Canonical<'tcx, V> { /// variables bound in `self` (usually this extracts from subset /// of `self`). Apply the substitution `var_values` to this value /// V, replacing each of the canonical variables. - pub fn substitute_projected( + fn substitute_projected( + &self, + tcx: TyCtxt<'tcx>, + var_values: &CanonicalVarValues<'tcx>, + projection_fn: impl FnOnce(&V) -> &T, + ) -> T + where + T: TypeFoldable<'tcx>; +} + +impl<'tcx, V> CanonicalExt<'tcx, V> for Canonical<'tcx, V> { + fn substitute(&self, tcx: TyCtxt<'tcx>, var_values: &CanonicalVarValues<'tcx>) -> V + where + V: TypeFoldable<'tcx>, + { + self.substitute_projected(tcx, var_values, |value| value) + } + + fn substitute_projected( &self, tcx: TyCtxt<'tcx>, var_values: &CanonicalVarValues<'tcx>, diff --git a/src/librustc_infer/infer/error_reporting/mod.rs b/src/librustc_infer/infer/error_reporting/mod.rs index 327e1da64c4cd..77119b8618f17 100644 --- a/src/librustc_infer/infer/error_reporting/mod.rs +++ b/src/librustc_infer/infer/error_reporting/mod.rs @@ -49,17 +49,18 @@ use super::lexical_region_resolve::RegionResolutionError; use super::region_constraints::GenericKind; use super::{InferCtxt, RegionVariableOrigin, SubregionOrigin, TypeTrace, ValuePairs}; -use crate::hir::map; use crate::infer::opaque_types; use crate::infer::{self, SuppressRegionErrors}; -use crate::middle::region; use crate::traits::error_reporting::report_object_safety_error; use crate::traits::object_safety_violations; use crate::traits::{ IfExpressionCause, MatchExpressionArmCause, ObligationCause, ObligationCauseCode, }; -use crate::ty::error::TypeError; -use crate::ty::{ + +use rustc::hir::map; +use rustc::middle::region; +use rustc::ty::error::TypeError; +use rustc::ty::{ self, subst::{Subst, SubstsRef}, Region, Ty, TyCtxt, TypeFoldable, @@ -2005,7 +2006,12 @@ enum FailureCode { Error0644(&'static str), } -impl<'tcx> ObligationCause<'tcx> { +trait ObligationCauseExt<'tcx> { + fn as_failure_code(&self, terr: &TypeError<'tcx>) -> FailureCode; + fn as_requirement_str(&self) -> &'static str; +} + +impl<'tcx> ObligationCauseExt<'tcx> for ObligationCause<'tcx> { fn as_failure_code(&self, terr: &TypeError<'tcx>) -> FailureCode { use self::FailureCode::*; use crate::traits::ObligationCauseCode::*; diff --git a/src/librustc_infer/infer/error_reporting/note.rs b/src/librustc_infer/infer/error_reporting/note.rs index 11dda71b8cb89..7a7cfdecbaf7d 100644 --- a/src/librustc_infer/infer/error_reporting/note.rs +++ b/src/librustc_infer/infer/error_reporting/note.rs @@ -1,8 +1,8 @@ -use crate::infer::error_reporting::note_and_explain_region; +use crate::infer::error_reporting::{note_and_explain_region, ObligationCauseExt}; use crate::infer::{self, InferCtxt, SubregionOrigin}; -use crate::middle::region; -use crate::ty::error::TypeError; -use crate::ty::{self, Region}; +use rustc::middle::region; +use rustc::ty::error::TypeError; +use rustc::ty::{self, Region}; use rustc_errors::{struct_span_err, DiagnosticBuilder}; impl<'a, 'tcx> InferCtxt<'a, 'tcx> { diff --git a/src/librustc_infer/infer/mod.rs b/src/librustc_infer/infer/mod.rs index be58de996a5de..b7f83625757ff 100644 --- a/src/librustc_infer/infer/mod.rs +++ b/src/librustc_infer/infer/mod.rs @@ -7,19 +7,21 @@ pub use self::SubregionOrigin::*; pub use self::ValuePairs::*; pub use crate::ty::IntVarValue; -use crate::infer::canonical::{Canonical, CanonicalVarValues}; -use crate::infer::unify_key::{ConstVarValue, ConstVariableValue}; -use crate::middle::free_region::RegionRelations; -use crate::middle::lang_items; -use crate::middle::region; -use crate::session::config::BorrowckMode; use crate::traits::{self, ObligationCause, PredicateObligations, TraitEngine}; -use crate::ty::error::{ExpectedFound, TypeError, UnconstrainedNumeric}; -use crate::ty::fold::{TypeFoldable, TypeFolder}; -use crate::ty::relate::RelateResult; -use crate::ty::subst::{GenericArg, InternalSubsts, SubstsRef}; -use crate::ty::{self, GenericParamDefKind, InferConst, Ty, TyCtxt}; -use crate::ty::{ConstVid, FloatVid, IntVid, TyVid}; + +use rustc::infer::canonical::{Canonical, CanonicalVarValues}; +use rustc::infer::unify_key::{ConstVarValue, ConstVariableValue}; +use rustc::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind, ToType}; +use rustc::middle::free_region::RegionRelations; +use rustc::middle::lang_items; +use rustc::middle::region; +use rustc::session::config::BorrowckMode; +use rustc::ty::error::{ExpectedFound, TypeError, UnconstrainedNumeric}; +use rustc::ty::fold::{TypeFoldable, TypeFolder}; +use rustc::ty::relate::RelateResult; +use rustc::ty::subst::{GenericArg, InternalSubsts, SubstsRef}; +use rustc::ty::{self, GenericParamDefKind, InferConst, Ty, TyCtxt}; +use rustc::ty::{ConstVid, FloatVid, IntVid, TyVid}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::sync::Lrc; @@ -40,7 +42,6 @@ use self::outlives::env::OutlivesEnvironment; use self::region_constraints::{GenericKind, RegionConstraintData, VarInfos, VerifyBound}; use self::region_constraints::{RegionConstraintCollector, RegionSnapshot}; use self::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use self::unify_key::{ConstVariableOrigin, ConstVariableOriginKind, ToType}; pub mod at; pub mod canonical; @@ -61,8 +62,8 @@ pub mod region_constraints; pub mod resolve; mod sub; pub mod type_variable; -mod types; -pub mod unify_key; + +pub use rustc::infer::unify_key; #[must_use] #[derive(Debug)] @@ -524,8 +525,12 @@ pub struct InferCtxtBuilder<'tcx> { fresh_tables: Option>>, } -impl TyCtxt<'tcx> { - pub fn infer_ctxt(self) -> InferCtxtBuilder<'tcx> { +pub trait TyCtxtInferExt<'tcx> { + fn infer_ctxt(self) -> InferCtxtBuilder<'tcx>; +} + +impl TyCtxtInferExt<'tcx> for TyCtxt<'tcx> { + fn infer_ctxt(self) -> InferCtxtBuilder<'tcx> { InferCtxtBuilder { global_tcx: self, fresh_tables: None } } } diff --git a/src/librustc_infer/infer/outlives/obligations.rs b/src/librustc_infer/infer/outlives/obligations.rs index 17153ef97241b..88733f1901a5b 100644 --- a/src/librustc_infer/infer/outlives/obligations.rs +++ b/src/librustc_infer/infer/outlives/obligations.rs @@ -66,8 +66,10 @@ use crate::traits::ObligationCause; use crate::ty::outlives::Component; use crate::ty::subst::GenericArgKind; use crate::ty::{self, Region, Ty, TyCtxt, TypeFoldable}; + use rustc_data_structures::fx::FxHashMap; use rustc_hir as hir; +use smallvec::smallvec; impl<'cx, 'tcx> InferCtxt<'cx, 'tcx> { /// Registers that the given region obligation must be resolved diff --git a/src/librustc_infer/infer/outlives/verify.rs b/src/librustc_infer/infer/outlives/verify.rs index a2c99064caa4e..4a05bfc64b177 100644 --- a/src/librustc_infer/infer/outlives/verify.rs +++ b/src/librustc_infer/infer/outlives/verify.rs @@ -6,6 +6,8 @@ use crate::ty::{self, Ty, TyCtxt}; use rustc_data_structures::captures::Captures; use rustc_hir::def_id::DefId; +use smallvec::smallvec; + /// The `TypeOutlives` struct has the job of "lowering" a `T: 'a` /// obligation into a series of `'a: 'b` constraints and "verifys", as /// described on the module comment. The final constraints are emitted diff --git a/src/librustc_infer/infer/region_constraints/mod.rs b/src/librustc_infer/infer/region_constraints/mod.rs index 8379a73bb9ebb..af4e199f28804 100644 --- a/src/librustc_infer/infer/region_constraints/mod.rs +++ b/src/librustc_infer/infer/region_constraints/mod.rs @@ -6,10 +6,10 @@ use self::UndoLog::*; use super::unify_key; use super::{MiscVariable, RegionVariableOrigin, SubregionOrigin}; -use crate::ty::ReStatic; -use crate::ty::{self, Ty, TyCtxt}; -use crate::ty::{ReLateBound, ReVar}; -use crate::ty::{Region, RegionVid}; +use rustc::ty::ReStatic; +use rustc::ty::{self, Ty, TyCtxt}; +use rustc::ty::{ReLateBound, ReVar}; +use rustc::ty::{Region, RegionVid}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::sync::Lrc; use rustc_data_structures::unify as ut; @@ -23,7 +23,7 @@ use std::{cmp, fmt, mem}; mod leak_check; -pub use rustc::infer::types::MemberConstraint; +pub use rustc::infer::MemberConstraint; #[derive(Default)] pub struct RegionConstraintCollector<'tcx> { diff --git a/src/librustc_infer/lib.rs b/src/librustc_infer/lib.rs new file mode 100644 index 0000000000000..d64c9e2f90ba2 --- /dev/null +++ b/src/librustc_infer/lib.rs @@ -0,0 +1,67 @@ +//! This crates defines the trait resolution method and the type inference engine. +//! +//! - **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]. +//! +//! [rustc guide]: https://rust-lang.github.io/rustc-guide/ +//! +//! # Note +//! +//! This API is completely unstable and subject to change. + +#![doc(html_root_url = "https://doc.rust-lang.org/nightly/")] +#![feature(arbitrary_self_types)] +#![feature(bool_to_option)] +#![feature(box_patterns)] +#![feature(box_syntax)] +#![feature(const_fn)] +#![feature(const_transmute)] +#![feature(core_intrinsics)] +#![feature(drain_filter)] +#![cfg_attr(windows, feature(libc))] +#![feature(never_type)] +#![feature(exhaustive_patterns)] +#![feature(overlapping_marker_traits)] +#![feature(extern_types)] +#![feature(nll)] +#![feature(optin_builtin_traits)] +#![feature(option_expect_none)] +#![feature(range_is_empty)] +#![feature(specialization)] +#![feature(unboxed_closures)] +#![feature(thread_local)] +#![feature(trace_macros)] +#![feature(trusted_len)] +#![feature(stmt_expr_attributes)] +#![feature(integer_atomics)] +#![feature(test)] +#![feature(in_band_lifetimes)] +#![feature(crate_visibility_modifier)] +#![feature(log_syntax)] +#![feature(associated_type_bounds)] +#![feature(rustc_attrs)] +#![feature(hash_raw_entry)] +#![recursion_limit = "512"] + +#[macro_use] +extern crate rustc_macros; +#[macro_use] +extern crate rustc_data_structures; +#[macro_use] +extern crate log; +#[macro_use] +extern crate rustc; + +use rustc::arena; +use rustc::dep_graph; +use rustc::hir; +pub mod infer; +use rustc::middle; +pub use rustc_session as session; +pub mod traits; +use rustc::ty; +use rustc::util; diff --git a/src/librustc_infer/traits/chalk_fulfill.rs b/src/librustc_infer/traits/chalk_fulfill.rs index a765e55d99fc2..b28523d955da7 100644 --- a/src/librustc_infer/traits/chalk_fulfill.rs +++ b/src/librustc_infer/traits/chalk_fulfill.rs @@ -1,4 +1,4 @@ -use crate::infer::canonical::{Canonical, OriginalQueryValues}; +use crate::infer::canonical::OriginalQueryValues; use crate::infer::InferCtxt; use crate::traits::query::NoSolution; use crate::traits::{ @@ -8,7 +8,7 @@ use crate::traits::{ use crate::ty::{self, Ty}; use rustc_data_structures::fx::FxHashSet; -pub type CanonicalGoal<'tcx> = Canonical<'tcx, InEnvironment<'tcx, ty::Predicate<'tcx>>>; +pub use rustc::traits::ChalkCanonicalGoal as CanonicalGoal; pub struct FulfillmentContext<'tcx> { obligations: FxHashSet>>, diff --git a/src/librustc_infer/traits/codegen/mod.rs b/src/librustc_infer/traits/codegen/mod.rs index 8a264a79fb6c2..4f6c9428fc218 100644 --- a/src/librustc_infer/traits/codegen/mod.rs +++ b/src/librustc_infer/traits/codegen/mod.rs @@ -3,7 +3,7 @@ // seems likely that they should eventually be merged into more // general routines. -use crate::infer::InferCtxt; +use crate::infer::{InferCtxt, TyCtxtInferExt}; use crate::traits::{ FulfillmentContext, Obligation, ObligationCause, SelectionContext, TraitEngine, Vtable, }; diff --git a/src/librustc_infer/traits/coherence.rs b/src/librustc_infer/traits/coherence.rs index 2a667b535508b..cafdb0353d56e 100644 --- a/src/librustc_infer/traits/coherence.rs +++ b/src/librustc_infer/traits/coherence.rs @@ -4,7 +4,7 @@ //! [trait-resolution]: https://rust-lang.github.io/rustc-guide/traits/resolution.html //! [trait-specialization]: https://rust-lang.github.io/rustc-guide/traits/specialization.html -use crate::infer::{CombinedSnapshot, InferOk}; +use crate::infer::{CombinedSnapshot, InferOk, TyCtxtInferExt}; use crate::traits::select::IntercrateAmbiguityCause; use crate::traits::SkipLeakCheck; use crate::traits::{self, Normalized, Obligation, ObligationCause, SelectionContext}; diff --git a/src/librustc_infer/traits/error_reporting/mod.rs b/src/librustc_infer/traits/error_reporting/mod.rs index c25b392ec239a..4bc8ffc3d2f43 100644 --- a/src/librustc_infer/traits/error_reporting/mod.rs +++ b/src/librustc_infer/traits/error_reporting/mod.rs @@ -11,18 +11,17 @@ use super::{ use crate::infer::error_reporting::{TyCategory, TypeAnnotationNeeded as ErrorCode}; use crate::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use crate::infer::{self, InferCtxt}; -use crate::mir::interpret::ErrorHandled; -use crate::session::DiagnosticMessageId; +use crate::infer::{self, InferCtxt, TyCtxtInferExt}; use crate::traits::object_safety_violations; -use crate::ty::error::ExpectedFound; -use crate::ty::fast_reject; -use crate::ty::fold::TypeFolder; -use crate::ty::SubtypePredicate; -use crate::ty::{ +use rustc::mir::interpret::ErrorHandled; +use rustc::session::DiagnosticMessageId; +use rustc::ty::error::ExpectedFound; +use rustc::ty::fast_reject; +use rustc::ty::fold::TypeFolder; +use rustc::ty::SubtypePredicate; +use rustc::ty::{ self, AdtKind, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness, }; - use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir as hir; diff --git a/src/librustc_infer/traits/misc.rs b/src/librustc_infer/traits/misc.rs index 3fd0d12c626aa..7ab918c159e1f 100644 --- a/src/librustc_infer/traits/misc.rs +++ b/src/librustc_infer/traits/misc.rs @@ -1,8 +1,9 @@ //! Miscellaneous type-system utilities that are too small to deserve their own modules. +use crate::infer::TyCtxtInferExt; use crate::traits::{self, ObligationCause}; -use crate::ty::{self, Ty, TyCtxt, TypeFoldable}; +use rustc::ty::{self, Ty, TyCtxt, TypeFoldable}; use rustc_hir as hir; #[derive(Clone)] diff --git a/src/librustc_infer/traits/mod.rs b/src/librustc_infer/traits/mod.rs index 556e69b04f824..6226d38f88eb8 100644 --- a/src/librustc_infer/traits/mod.rs +++ b/src/librustc_infer/traits/mod.rs @@ -19,12 +19,11 @@ mod select; mod specialize; mod structural_impls; mod structural_match; -mod types; mod util; pub mod wf; use crate::infer::outlives::env::OutlivesEnvironment; -use crate::infer::{InferCtxt, SuppressRegionErrors}; +use crate::infer::{InferCtxt, SuppressRegionErrors, TyCtxtInferExt}; use crate::middle::region; use crate::ty::error::{ExpectedFound, TypeError}; use crate::ty::fold::TypeFoldable; @@ -38,6 +37,9 @@ use rustc_span::{Span, DUMMY_SP}; use std::fmt::Debug; pub use self::FulfillmentErrorCode::*; +pub use self::ObligationCauseCode::*; +pub use self::SelectionError::*; +pub use self::Vtable::*; pub use self::coherence::{add_placeholder_note, orphan_check, overlapping_impls}; pub use self::coherence::{OrphanCheckErr, OverlapResult}; @@ -53,8 +55,9 @@ pub use self::project::MismatchedProjectionTypes; pub use self::project::{ normalize, normalize_projection_type, normalize_to, poly_project_and_unify_type, }; -pub use self::project::{Normalized, ProjectionCache, ProjectionCacheSnapshot}; -pub use self::select::{IntercrateAmbiguityCause, SelectionContext}; +pub use self::project::{Normalized, ProjectionCache, ProjectionCacheSnapshot, Reveal}; +pub use self::select::{EvaluationCache, SelectionCache, SelectionContext}; +pub use self::select::{EvaluationResult, IntercrateAmbiguityCause, OverflowError}; pub use self::specialize::find_associated_item; pub use self::specialize::specialization_graph::FutureCompatOverlapError; pub use self::specialize::specialization_graph::FutureCompatOverlapErrorKind; @@ -76,7 +79,7 @@ pub use self::chalk_fulfill::{ CanonicalGoal as ChalkCanonicalGoal, FulfillmentContext as ChalkFulfillmentContext, }; -pub use self::types::*; +pub use rustc::traits::*; /// Whether to skip the leak check, as part of a future compatibility warning step. #[derive(Copy, Clone, PartialEq, Eq, Debug)] diff --git a/src/librustc_infer/traits/object_safety.rs b/src/librustc_infer/traits/object_safety.rs index 4c5cd866b4a01..e35b03a343167 100644 --- a/src/librustc_infer/traits/object_safety.rs +++ b/src/librustc_infer/traits/object_safety.rs @@ -10,6 +10,7 @@ use super::elaborate_predicates; +use crate::infer::TyCtxtInferExt; use crate::traits::{self, Obligation, ObligationCause}; use crate::ty::subst::{InternalSubsts, Subst}; use crate::ty::{self, Predicate, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; diff --git a/src/librustc_infer/traits/query/mod.rs b/src/librustc_infer/traits/query/mod.rs index 20a873dc4c6b6..77b5ec669a099 100644 --- a/src/librustc_infer/traits/query/mod.rs +++ b/src/librustc_infer/traits/query/mod.rs @@ -12,4 +12,4 @@ pub mod normalize; pub mod outlives_bounds; pub mod type_op; -pub use rustc::traits::types::query::*; +pub use rustc::traits::query::*; diff --git a/src/librustc_infer/traits/query/type_op/mod.rs b/src/librustc_infer/traits/query/type_op/mod.rs index 2d03d77cf6645..5f131e9705605 100644 --- a/src/librustc_infer/traits/query/type_op/mod.rs +++ b/src/librustc_infer/traits/query/type_op/mod.rs @@ -19,7 +19,7 @@ pub mod prove_predicate; use self::prove_predicate::ProvePredicate; pub mod subtype; -pub use crate::traits::types::query::type_op::*; +pub use rustc::traits::query::type_op::*; /// "Type ops" are used in NLL to perform some particular action and /// extract out the resulting region constraints (or an error if it diff --git a/src/librustc_infer/traits/select.rs b/src/librustc_infer/traits/select.rs index 1fe8ab58d152c..9abf030ca382d 100644 --- a/src/librustc_infer/traits/select.rs +++ b/src/librustc_infer/traits/select.rs @@ -54,7 +54,7 @@ use std::fmt::{self, Display}; use std::iter; use std::rc::Rc; -pub use rustc::traits::types::select::*; +pub use rustc::traits::select::*; pub struct SelectionContext<'cx, 'tcx> { infcx: &'cx InferCtxt<'cx, 'tcx>, diff --git a/src/librustc_infer/traits/specialize/mod.rs b/src/librustc_infer/traits/specialize/mod.rs index 7c93a35158b08..d300b6f6dd4cc 100644 --- a/src/librustc_infer/traits/specialize/mod.rs +++ b/src/librustc_infer/traits/specialize/mod.rs @@ -10,8 +10,9 @@ //! [rustc guide]: https://rust-lang.github.io/rustc-guide/traits/specialization.html pub mod specialization_graph; +use specialization_graph::GraphExt; -use crate::infer::{InferCtxt, InferOk}; +use crate::infer::{InferCtxt, InferOk, TyCtxtInferExt}; use crate::traits::select::IntercrateAmbiguityCause; use crate::traits::{self, coherence, FutureCompatOverlapErrorKind, ObligationCause, TraitEngine}; use crate::ty::subst::{InternalSubsts, Subst, SubstsRef}; diff --git a/src/librustc_infer/traits/specialize/specialization_graph.rs b/src/librustc_infer/traits/specialize/specialization_graph.rs index e09bcdcbc628e..17d4a22b9dd55 100644 --- a/src/librustc_infer/traits/specialize/specialization_graph.rs +++ b/src/librustc_infer/traits/specialize/specialization_graph.rs @@ -5,7 +5,7 @@ use rustc::ty::fast_reject::{self, SimplifiedType}; use rustc::ty::{self, TyCtxt, TypeFoldable}; use rustc_hir::def_id::DefId; -pub use rustc::traits::types::specialization_graph::*; +pub use rustc::traits::specialization_graph::*; #[derive(Copy, Clone, Debug)] pub enum FutureCompatOverlapErrorKind { @@ -31,7 +31,19 @@ enum Inserted { ShouldRecurseOn(DefId), } -impl<'tcx> Children { +trait ChildrenExt { + fn insert_blindly(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId); + fn remove_existing(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId); + + fn insert( + &mut self, + tcx: TyCtxt<'tcx>, + impl_def_id: DefId, + simplified_self: Option, + ) -> Result; +} + +impl ChildrenExt for Children { /// Insert an impl into this set of children without comparing to any existing impls. fn insert_blindly(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId) { let trait_ref = tcx.impl_trait_ref(impl_def_id).unwrap(); @@ -76,8 +88,8 @@ impl<'tcx> Children { debug!("insert(impl_def_id={:?}, simplified_self={:?})", impl_def_id, simplified_self,); let possible_siblings = match simplified_self { - Some(st) => PotentialSiblings::Filtered(self.filtered(st)), - None => PotentialSiblings::Unfiltered(self.iter()), + Some(st) => PotentialSiblings::Filtered(filtered_children(self, st)), + None => PotentialSiblings::Unfiltered(iter_children(self)), }; for possible_sibling in possible_siblings { @@ -199,16 +211,19 @@ impl<'tcx> Children { self.insert_blindly(tcx, impl_def_id); Ok(Inserted::BecameNewSibling(last_lint)) } +} - fn iter(&mut self) -> impl Iterator + '_ { - let nonblanket = self.nonblanket_impls.iter_mut().flat_map(|(_, v)| v.iter()); - self.blanket_impls.iter().chain(nonblanket).cloned() - } +fn iter_children(children: &mut Children) -> impl Iterator + '_ { + let nonblanket = children.nonblanket_impls.iter_mut().flat_map(|(_, v)| v.iter()); + children.blanket_impls.iter().chain(nonblanket).cloned() +} - fn filtered(&mut self, st: SimplifiedType) -> impl Iterator + '_ { - let nonblanket = self.nonblanket_impls.entry(st).or_default().iter(); - self.blanket_impls.iter().chain(nonblanket).cloned() - } +fn filtered_children( + children: &mut Children, + st: SimplifiedType, +) -> impl Iterator + '_ { + let nonblanket = children.nonblanket_impls.entry(st).or_default().iter(); + children.blanket_impls.iter().chain(nonblanket).cloned() } // A custom iterator used by Children::insert @@ -236,11 +251,25 @@ where } } -impl<'tcx> Graph { +pub trait GraphExt { /// Insert a local impl into the specialization graph. If an existing impl /// conflicts with it (has overlap, but neither specializes the other), /// information about the area of overlap is returned in the `Err`. - pub fn insert( + fn insert( + &mut self, + tcx: TyCtxt<'tcx>, + impl_def_id: DefId, + ) -> Result, OverlapError>; + + /// Insert cached metadata mapping from a child impl back to its parent. + fn record_impl_from_cstore(&mut self, tcx: TyCtxt<'tcx>, parent: DefId, child: DefId); +} + +impl GraphExt for Graph { + /// Insert a local impl into the specialization graph. If an existing impl + /// conflicts with it (has overlap, but neither specializes the other), + /// information about the area of overlap is returned in the `Err`. + fn insert( &mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId, @@ -337,7 +366,7 @@ impl<'tcx> Graph { } /// Insert cached metadata mapping from a child impl back to its parent. - pub fn record_impl_from_cstore(&mut self, tcx: TyCtxt<'tcx>, parent: DefId, child: DefId) { + fn record_impl_from_cstore(&mut self, tcx: TyCtxt<'tcx>, parent: DefId, child: DefId) { if self.parent.insert(child, parent).is_some() { bug!( "When recording an impl from the crate store, information about its parent \ diff --git a/src/librustc_infer/traits/structural_match.rs b/src/librustc_infer/traits/structural_match.rs index b2c3c23b4e3bd..60682f5812917 100644 --- a/src/librustc_infer/traits/structural_match.rs +++ b/src/librustc_infer/traits/structural_match.rs @@ -1,9 +1,8 @@ -use crate::ty::fold::{TypeFoldable, TypeVisitor}; -use crate::ty::{self, AdtDef, Ty, TyCtxt}; +use crate::infer::{InferCtxt, TyCtxtInferExt}; +use crate::traits::ObligationCause; +use crate::traits::{self, ConstPatternStructural, TraitEngine}; -use rustc::infer::InferCtxt; -use rustc::traits::ObligationCause; -use rustc::traits::{self, ConstPatternStructural, TraitEngine}; +use rustc::ty::{self, AdtDef, Ty, TyCtxt, TypeFoldable, TypeVisitor}; use rustc_data_structures::fx::FxHashSet; use rustc_hir as hir; use rustc_span::Span; diff --git a/src/librustc_infer/traits/util.rs b/src/librustc_infer/traits/util.rs index d4c3518260c60..1c0638d4528fa 100644 --- a/src/librustc_infer/traits/util.rs +++ b/src/librustc_infer/traits/util.rs @@ -1,5 +1,6 @@ use rustc_errors::DiagnosticBuilder; use rustc_span::Span; +use smallvec::smallvec; use smallvec::SmallVec; use crate::ty::outlives::Component; diff --git a/src/librustc_lint/Cargo.toml b/src/librustc_lint/Cargo.toml index 27df0f904e48a..1c2c241c000e7 100644 --- a/src/librustc_lint/Cargo.toml +++ b/src/librustc_lint/Cargo.toml @@ -23,3 +23,4 @@ rustc_data_structures = { path = "../librustc_data_structures" } rustc_feature = { path = "../librustc_feature" } rustc_index = { path = "../librustc_index" } rustc_session = { path = "../librustc_session" } +rustc_infer = { path = "../librustc_infer" } diff --git a/src/librustc_mir/Cargo.toml b/src/librustc_mir/Cargo.toml index 6b2e2bb919c13..3554fe54c4597 100644 --- a/src/librustc_mir/Cargo.toml +++ b/src/librustc_mir/Cargo.toml @@ -23,6 +23,7 @@ rustc_data_structures = { path = "../librustc_data_structures" } rustc_errors = { path = "../librustc_errors" } rustc_hir = { path = "../librustc_hir" } rustc_index = { path = "../librustc_index" } +rustc_infer = { path = "../librustc_infer" } rustc_lexer = { path = "../librustc_lexer" } rustc_macros = { path = "../librustc_macros" } rustc_serialize = { path = "../libserialize", package = "serialize" } diff --git a/src/librustc_mir_build/Cargo.toml b/src/librustc_mir_build/Cargo.toml index c109e9c618e73..fac30637dd077 100644 --- a/src/librustc_mir_build/Cargo.toml +++ b/src/librustc_mir_build/Cargo.toml @@ -19,6 +19,7 @@ rustc_data_structures = { path = "../librustc_data_structures" } rustc_index = { path = "../librustc_index" } rustc_errors = { path = "../librustc_errors" } rustc_hir = { path = "../librustc_hir" } +rustc_infer = { path = "../librustc_infer" } rustc_macros = { path = "../librustc_macros" } rustc_serialize = { path = "../libserialize", package = "serialize" } rustc_session = { path = "../librustc_session" } diff --git a/src/librustc_passes/Cargo.toml b/src/librustc_passes/Cargo.toml index 981ef7f8796d3..41718b21f520c 100644 --- a/src/librustc_passes/Cargo.toml +++ b/src/librustc_passes/Cargo.toml @@ -17,6 +17,7 @@ rustc_errors = { path = "../librustc_errors" } rustc_feature = { path = "../librustc_feature" } rustc_hir = { path = "../librustc_hir" } rustc_index = { path = "../librustc_index" } +rustc_infer = { path = "../librustc_infer" } rustc_session = { path = "../librustc_session" } rustc_target = { path = "../librustc_target" } syntax = { path = "../libsyntax" } diff --git a/src/librustc_resolve/Cargo.toml b/src/librustc_resolve/Cargo.toml index f8c96ecaf9373..a40c3ca0f9eca 100644 --- a/src/librustc_resolve/Cargo.toml +++ b/src/librustc_resolve/Cargo.toml @@ -24,6 +24,7 @@ rustc_errors = { path = "../librustc_errors" } rustc_expand = { path = "../librustc_expand" } rustc_feature = { path = "../librustc_feature" } rustc_hir = { path = "../librustc_hir" } +rustc_infer = { path = "../librustc_infer" } rustc_metadata = { path = "../librustc_metadata" } rustc_session = { path = "../librustc_session" } rustc_span = { path = "../librustc_span" } diff --git a/src/librustc_traits/Cargo.toml b/src/librustc_traits/Cargo.toml index 2cb25e63f836d..40ca2ea90f2f4 100644 --- a/src/librustc_traits/Cargo.toml +++ b/src/librustc_traits/Cargo.toml @@ -19,3 +19,4 @@ syntax = { path = "../libsyntax" } rustc_span = { path = "../librustc_span" } chalk-engine = { version = "0.9.0", default-features=false } smallvec = { version = "1.0", features = ["union", "may_dangle"] } +rustc_infer = { path = "../librustc_infer" } diff --git a/src/librustc_ty/Cargo.toml b/src/librustc_ty/Cargo.toml index 52606e5fdfeea..6e64df3492b0f 100644 --- a/src/librustc_ty/Cargo.toml +++ b/src/librustc_ty/Cargo.toml @@ -13,5 +13,6 @@ log = "0.4" rustc = { path = "../librustc" } rustc_data_structures = { path = "../librustc_data_structures" } rustc_hir = { path = "../librustc_hir" } +rustc_infer = { path = "../librustc_infer" } rustc_span = { path = "../librustc_span" } rustc_target = { path = "../librustc_target" } diff --git a/src/librustc_typeck/Cargo.toml b/src/librustc_typeck/Cargo.toml index 748bfcc79460a..f1890f9f4e6f1 100644 --- a/src/librustc_typeck/Cargo.toml +++ b/src/librustc_typeck/Cargo.toml @@ -23,3 +23,4 @@ smallvec = { version = "1.0", features = ["union", "may_dangle"] } syntax = { path = "../libsyntax" } rustc_span = { path = "../librustc_span" } rustc_index = { path = "../librustc_index" } +rustc_infer = { path = "../librustc_infer" } From 4b57cb3cbed8674aa480bff450affa62ac6b75bf Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 23:12:31 +0100 Subject: [PATCH 04/11] Make librustc_typeck compile. --- src/librustc_typeck/astconv.rs | 8 ++++---- src/librustc_typeck/check/_match.rs | 6 +++--- src/librustc_typeck/check/autoderef.rs | 4 ++-- src/librustc_typeck/check/callee.rs | 4 ++-- src/librustc_typeck/check/cast.rs | 6 +++--- src/librustc_typeck/check/closure.rs | 10 +++++----- src/librustc_typeck/check/coercion.rs | 8 ++++---- src/librustc_typeck/check/compare_method.rs | 4 ++-- src/librustc_typeck/check/demand.rs | 4 ++-- src/librustc_typeck/check/dropck.rs | 7 +++---- src/librustc_typeck/check/expr.rs | 6 +++--- src/librustc_typeck/check/method/confirm.rs | 4 ++-- src/librustc_typeck/check/method/mod.rs | 4 ++-- src/librustc_typeck/check/method/probe.rs | 18 +++++++++--------- src/librustc_typeck/check/method/suggest.rs | 4 ++-- src/librustc_typeck/check/mod.rs | 16 ++++++++-------- src/librustc_typeck/check/op.rs | 2 +- src/librustc_typeck/check/pat.rs | 6 +++--- src/librustc_typeck/check/regionck.rs | 4 ++-- src/librustc_typeck/check/upvar.rs | 2 +- src/librustc_typeck/check/wfcheck.rs | 6 +++--- src/librustc_typeck/check/writeback.rs | 4 ++-- src/librustc_typeck/coherence/builtin.rs | 12 ++++++------ .../coherence/inherent_impls_overlap.rs | 2 +- src/librustc_typeck/coherence/mod.rs | 2 +- src/librustc_typeck/coherence/orphan.rs | 3 ++- src/librustc_typeck/collect/type_of.rs | 2 +- src/librustc_typeck/expr_use_visitor.rs | 2 +- src/librustc_typeck/lib.rs | 4 ++-- src/librustc_typeck/mem_categorization.rs | 3 ++- 30 files changed, 84 insertions(+), 83 deletions(-) diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 0e7c10541cad7..c0574d6d9fdd7 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -14,10 +14,6 @@ use crate::require_c_abi_if_c_variadic; use crate::util::common::ErrorReported; use rustc::lint::builtin::AMBIGUOUS_ASSOCIATED_ITEMS; use rustc::session::parse::feature_err; -use rustc::traits; -use rustc::traits::astconv_object_safety_violations; -use rustc::traits::error_reporting::report_object_safety_error; -use rustc::traits::wf::object_region_bounds; use rustc::ty::subst::{self, InternalSubsts, Subst, SubstsRef}; use rustc::ty::{self, Const, DefIdTree, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc::ty::{GenericParamDef, GenericParamDefKind}; @@ -29,6 +25,10 @@ use rustc_hir::def_id::DefId; use rustc_hir::intravisit::Visitor; use rustc_hir::print; use rustc_hir::{Constness, ExprKind, GenericArg, GenericArgs}; +use rustc_infer::traits; +use rustc_infer::traits::astconv_object_safety_violations; +use rustc_infer::traits::error_reporting::report_object_safety_error; +use rustc_infer::traits::wf::object_region_bounds; use rustc_span::symbol::sym; use rustc_span::{MultiSpan, Span, DUMMY_SP}; use rustc_target::spec::abi; diff --git a/src/librustc_typeck/check/_match.rs b/src/librustc_typeck/check/_match.rs index 686cdfbc089b4..2c71fec6809f7 100644 --- a/src/librustc_typeck/check/_match.rs +++ b/src/librustc_typeck/check/_match.rs @@ -1,11 +1,11 @@ use crate::check::coercion::CoerceMany; use crate::check::{Diverges, Expectation, FnCtxt, Needs}; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::traits::ObligationCauseCode; -use rustc::traits::{IfExpressionCause, MatchExpressionArmCause, ObligationCause}; use rustc::ty::Ty; use rustc_hir as hir; use rustc_hir::ExprKind; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::traits::ObligationCauseCode; +use rustc_infer::traits::{IfExpressionCause, MatchExpressionArmCause, ObligationCause}; use rustc_span::Span; impl<'a, 'tcx> FnCtxt<'a, 'tcx> { diff --git a/src/librustc_typeck/check/autoderef.rs b/src/librustc_typeck/check/autoderef.rs index d436733d19a36..00e91decf78b8 100644 --- a/src/librustc_typeck/check/autoderef.rs +++ b/src/librustc_typeck/check/autoderef.rs @@ -1,14 +1,14 @@ use super::method::MethodCallee; use super::{FnCtxt, Needs, PlaceOp}; -use rustc::infer::{InferCtxt, InferOk}; use rustc::session::DiagnosticMessageId; -use rustc::traits::{self, TraitEngine}; use rustc::ty::adjustment::{Adjust, Adjustment, OverloadedDeref}; use rustc::ty::{self, TraitRef, Ty, TyCtxt, WithConstness}; use rustc::ty::{ToPredicate, TypeFoldable}; use rustc_errors::struct_span_err; use rustc_hir as hir; +use rustc_infer::infer::{InferCtxt, InferOk}; +use rustc_infer::traits::{self, TraitEngine}; use rustc_span::Span; use syntax::ast::Ident; diff --git a/src/librustc_typeck/check/callee.rs b/src/librustc_typeck/check/callee.rs index b33cc52b238e3..d0d07334fa515 100644 --- a/src/librustc_typeck/check/callee.rs +++ b/src/librustc_typeck/check/callee.rs @@ -3,15 +3,15 @@ use super::method::MethodCallee; use super::{Expectation, FnCtxt, Needs, TupleArgumentsFlag}; use crate::type_error_struct; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use rustc::ty::adjustment::{Adjust, Adjustment, AllowTwoPhase, AutoBorrow, AutoBorrowMutability}; use rustc::ty::subst::SubstsRef; use rustc::ty::{self, Ty, TyCtxt, TypeFoldable}; -use rustc::{infer, traits}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir as hir; use rustc_hir::def::Res; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::{infer, traits}; use rustc_span::Span; use rustc_target::spec::abi; use syntax::ast::Ident; diff --git a/src/librustc_typeck/check/cast.rs b/src/librustc_typeck/check/cast.rs index 909f40ee98499..18f6a78804b40 100644 --- a/src/librustc_typeck/check/cast.rs +++ b/src/librustc_typeck/check/cast.rs @@ -36,9 +36,6 @@ use crate::type_error_struct; use crate::util::common::ErrorReported; use rustc::middle::lang_items; use rustc::session::Session; -use rustc::traits; -use rustc::traits::error_reporting::report_object_safety_error; -use rustc::traits::object_safety_violations; use rustc::ty::adjustment::AllowTwoPhase; use rustc::ty::cast::{CastKind, CastTy}; use rustc::ty::error::TypeError; @@ -46,6 +43,9 @@ use rustc::ty::subst::SubstsRef; use rustc::ty::{self, Ty, TypeAndMut, TypeFoldable}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir as hir; +use rustc_infer::traits; +use rustc_infer::traits::error_reporting::report_object_safety_error; +use rustc_infer::traits::object_safety_violations; use rustc_span::Span; use syntax::ast; diff --git a/src/librustc_typeck/check/closure.rs b/src/librustc_typeck/check/closure.rs index 396534b3caeb7..ae6bed476f316 100644 --- a/src/librustc_typeck/check/closure.rs +++ b/src/librustc_typeck/check/closure.rs @@ -4,16 +4,16 @@ use super::{check_fn, Expectation, FnCtxt, GeneratorTypes}; use crate::astconv::AstConv; use crate::middle::{lang_items, region}; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::infer::LateBoundRegionConversionTime; -use rustc::infer::{InferOk, InferResult}; -use rustc::traits::error_reporting::ArgKind; -use rustc::traits::Obligation; use rustc::ty::fold::TypeFoldable; use rustc::ty::subst::InternalSubsts; use rustc::ty::{self, GenericParamDefKind, Ty}; use rustc_hir as hir; use rustc_hir::def_id::DefId; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::infer::LateBoundRegionConversionTime; +use rustc_infer::infer::{InferOk, InferResult}; +use rustc_infer::traits::error_reporting::ArgKind; +use rustc_infer::traits::Obligation; use rustc_span::source_map::Span; use rustc_target::spec::abi::Abi; use std::cmp; diff --git a/src/librustc_typeck/check/coercion.rs b/src/librustc_typeck/check/coercion.rs index bedef5042fdb6..ce44fdab32314 100644 --- a/src/librustc_typeck/check/coercion.rs +++ b/src/librustc_typeck/check/coercion.rs @@ -52,11 +52,7 @@ use crate::astconv::AstConv; use crate::check::{FnCtxt, Needs}; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::infer::{Coercion, InferOk, InferResult}; use rustc::session::parse::feature_err; -use rustc::traits::object_safety_violations; -use rustc::traits::{self, ObligationCause, ObligationCauseCode}; use rustc::ty::adjustment::{ Adjust, Adjustment, AllowTwoPhase, AutoBorrow, AutoBorrowMutability, PointerCast, }; @@ -68,6 +64,10 @@ use rustc::ty::{self, Ty, TypeAndMut}; use rustc_errors::{struct_span_err, DiagnosticBuilder}; use rustc_hir as hir; use rustc_hir::def_id::DefId; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::infer::{Coercion, InferOk, InferResult}; +use rustc_infer::traits::object_safety_violations; +use rustc_infer::traits::{self, ObligationCause, ObligationCauseCode}; use rustc_span::symbol::sym; use rustc_span::{self, Span}; use rustc_target::spec::abi::Abi; diff --git a/src/librustc_typeck/check/compare_method.rs b/src/librustc_typeck/check/compare_method.rs index 414f80d84b672..8b54b5343756a 100644 --- a/src/librustc_typeck/check/compare_method.rs +++ b/src/librustc_typeck/check/compare_method.rs @@ -1,6 +1,4 @@ use rustc::hir::map::Map; -use rustc::infer::{self, InferOk}; -use rustc::traits::{self, ObligationCause, ObligationCauseCode, Reveal}; use rustc::ty::error::{ExpectedFound, TypeError}; use rustc::ty::subst::{InternalSubsts, Subst}; use rustc::ty::util::ExplicitSelf; @@ -11,6 +9,8 @@ use rustc_hir as hir; use rustc_hir::def::{DefKind, Res}; use rustc_hir::intravisit; use rustc_hir::{GenericParamKind, ImplItemKind, TraitItemKind}; +use rustc_infer::infer::{self, InferOk, TyCtxtInferExt}; +use rustc_infer::traits::{self, ObligationCause, ObligationCauseCode, Reveal}; use rustc_span::Span; use super::{potentially_plural_count, FnCtxt, Inherited}; diff --git a/src/librustc_typeck/check/demand.rs b/src/librustc_typeck/check/demand.rs index 4a98095ec89c6..bf74ab696d6ca 100644 --- a/src/librustc_typeck/check/demand.rs +++ b/src/librustc_typeck/check/demand.rs @@ -1,6 +1,6 @@ use crate::check::FnCtxt; -use rustc::infer::InferOk; -use rustc::traits::{self, ObligationCause}; +use rustc_infer::infer::InferOk; +use rustc_infer::traits::{self, ObligationCause}; use rustc::ty::adjustment::AllowTwoPhase; use rustc::ty::{self, AssocItem, Ty}; diff --git a/src/librustc_typeck/check/dropck.rs b/src/librustc_typeck/check/dropck.rs index 32773e2ed807c..ead7536f8c664 100644 --- a/src/librustc_typeck/check/dropck.rs +++ b/src/librustc_typeck/check/dropck.rs @@ -2,16 +2,15 @@ use crate::check::regionck::RegionCtxt; use crate::hir; use crate::hir::def_id::DefId; use crate::util::common::ErrorReported; -use rustc::infer::outlives::env::OutlivesEnvironment; -use rustc::infer::{InferOk, SuppressRegionErrors}; use rustc::middle::region; -use rustc::traits::{ObligationCause, TraitEngine, TraitEngineExt}; use rustc::ty::error::TypeError; use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; use rustc::ty::subst::{Subst, SubstsRef}; use rustc::ty::{self, Predicate, Ty, TyCtxt}; use rustc_errors::struct_span_err; - +use rustc_infer::infer::outlives::env::OutlivesEnvironment; +use rustc_infer::infer::{InferOk, SuppressRegionErrors, TyCtxtInferExt}; +use rustc_infer::traits::{ObligationCause, TraitEngine, TraitEngineExt}; use rustc_span::Span; /// This function confirms that the `Drop` implementation identified by diff --git a/src/librustc_typeck/check/expr.rs b/src/librustc_typeck/check/expr.rs index 90b7b300da9d5..d947544d182cd 100644 --- a/src/librustc_typeck/check/expr.rs +++ b/src/librustc_typeck/check/expr.rs @@ -17,10 +17,7 @@ use crate::check::TupleArgumentsFlag::DontTupleArguments; use crate::type_error_struct; use crate::util::common::ErrorReported; -use rustc::infer; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use rustc::middle::lang_items; -use rustc::traits::{self, ObligationCauseCode}; use rustc::ty; use rustc::ty::adjustment::{Adjust, Adjustment, AllowTwoPhase, AutoBorrow, AutoBorrowMutability}; use rustc::ty::Ty; @@ -32,6 +29,9 @@ use rustc_hir as hir; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::{ExprKind, QPath}; +use rustc_infer::infer; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::traits::{self, ObligationCauseCode}; use rustc_span::hygiene::DesugaringKind; use rustc_span::source_map::Span; use rustc_span::symbol::{kw, sym, Symbol}; diff --git a/src/librustc_typeck/check/method/confirm.rs b/src/librustc_typeck/check/method/confirm.rs index eee9dc99d35b4..17842be9a4392 100644 --- a/src/librustc_typeck/check/method/confirm.rs +++ b/src/librustc_typeck/check/method/confirm.rs @@ -4,14 +4,14 @@ use crate::astconv::AstConv; use crate::check::{callee, FnCtxt, Needs, PlaceOp}; use crate::hir::def_id::DefId; use crate::hir::GenericArg; -use rustc::infer::{self, InferOk}; -use rustc::traits; use rustc::ty::adjustment::{Adjust, Adjustment, OverloadedDeref, PointerCast}; use rustc::ty::adjustment::{AllowTwoPhase, AutoBorrow, AutoBorrowMutability}; use rustc::ty::fold::TypeFoldable; use rustc::ty::subst::{Subst, SubstsRef}; use rustc::ty::{self, GenericParamDefKind, Ty}; use rustc_hir as hir; +use rustc_infer::infer::{self, InferOk}; +use rustc_infer::traits; use rustc_span::Span; use std::ops::Deref; diff --git a/src/librustc_typeck/check/method/mod.rs b/src/librustc_typeck/check/method/mod.rs index c3e15c507b30d..1856157fffb38 100644 --- a/src/librustc_typeck/check/method/mod.rs +++ b/src/librustc_typeck/check/method/mod.rs @@ -12,8 +12,6 @@ pub use self::MethodError::*; use crate::check::FnCtxt; use crate::namespace::Namespace; -use rustc::infer::{self, InferOk}; -use rustc::traits; use rustc::ty::subst::Subst; use rustc::ty::subst::{InternalSubsts, SubstsRef}; use rustc::ty::GenericParamDefKind; @@ -23,6 +21,8 @@ use rustc_errors::{Applicability, DiagnosticBuilder}; use rustc_hir as hir; use rustc_hir::def::{CtorOf, DefKind}; use rustc_hir::def_id::DefId; +use rustc_infer::infer::{self, InferOk}; +use rustc_infer::traits; use rustc_span::Span; use syntax::ast; diff --git a/src/librustc_typeck/check/method/probe.rs b/src/librustc_typeck/check/method/probe.rs index 8f0fbc2d60c9f..346406fff56bf 100644 --- a/src/librustc_typeck/check/method/probe.rs +++ b/src/librustc_typeck/check/method/probe.rs @@ -9,18 +9,9 @@ use crate::hir::def::DefKind; use crate::hir::def_id::DefId; use crate::namespace::Namespace; -use rustc::infer::canonical::OriginalQueryValues; -use rustc::infer::canonical::{Canonical, QueryResponse}; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind}; -use rustc::infer::{self, InferOk}; use rustc::lint; use rustc::middle::stability; use rustc::session::config::nightly_options; -use rustc::traits::query::method_autoderef::MethodAutoderefBadTy; -use rustc::traits::query::method_autoderef::{CandidateStep, MethodAutoderefStepsResult}; -use rustc::traits::query::CanonicalTyGoal; -use rustc::traits::{self, ObligationCause}; use rustc::ty::subst::{InternalSubsts, Subst, SubstsRef}; use rustc::ty::GenericParamDefKind; use rustc::ty::{ @@ -31,6 +22,15 @@ use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::sync::Lrc; use rustc_errors::struct_span_err; use rustc_hir as hir; +use rustc_infer::infer::canonical::OriginalQueryValues; +use rustc_infer::infer::canonical::{Canonical, QueryResponse}; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind}; +use rustc_infer::infer::{self, InferOk, TyCtxtInferExt}; +use rustc_infer::traits::query::method_autoderef::MethodAutoderefBadTy; +use rustc_infer::traits::query::method_autoderef::{CandidateStep, MethodAutoderefStepsResult}; +use rustc_infer::traits::query::CanonicalTyGoal; +use rustc_infer::traits::{self, ObligationCause}; use rustc_span::{symbol::Symbol, Span, DUMMY_SP}; use std::cmp::max; use std::iter; diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs index 789bac2705b07..83f063acedab9 100644 --- a/src/librustc_typeck/check/method/suggest.rs +++ b/src/librustc_typeck/check/method/suggest.rs @@ -6,8 +6,6 @@ use crate::middle::lang_items::FnOnceTraitLangItem; use crate::namespace::Namespace; use rustc::hir::map as hir_map; use rustc::hir::map::Map; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::traits::Obligation; use rustc::ty::print::with_crate_prefix; use rustc::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc_data_structures::fx::FxHashSet; @@ -17,6 +15,8 @@ use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX, LOCAL_CRATE}; use rustc_hir::intravisit; use rustc_hir::{ExprKind, Node, QPath}; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::traits::Obligation; use rustc_span::{source_map, FileName, Span}; use syntax::ast; use syntax::util::lev_distance; diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index a825856e38aa0..748a44a7297d7 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -92,17 +92,9 @@ use crate::middle::lang_items; use crate::namespace::Namespace; use rustc::hir::map::blocks::FnLikeNode; use rustc::hir::map::Map; -use rustc::infer::canonical::{Canonical, OriginalQueryValues, QueryResponse}; -use rustc::infer::error_reporting::TypeAnnotationNeeded::E0282; -use rustc::infer::opaque_types::OpaqueTypeDecl; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind}; -use rustc::infer::{self, InferCtxt, InferOk, InferResult}; use rustc::middle::region; use rustc::mir::interpret::ConstValue; use rustc::session::parse::feature_err; -use rustc::traits::error_reporting::recursive_type_with_infinite_size_error; -use rustc::traits::{self, ObligationCause, ObligationCauseCode, TraitEngine}; use rustc::ty::adjustment::{ Adjust, Adjustment, AllowTwoPhase, AutoBorrow, AutoBorrowMutability, PointerCast, }; @@ -126,6 +118,14 @@ use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; use rustc_hir::itemlikevisit::ItemLikeVisitor; use rustc_hir::{ExprKind, GenericArg, HirIdMap, Item, ItemKind, Node, PatKind, QPath}; use rustc_index::vec::Idx; +use rustc_infer::infer::canonical::{Canonical, OriginalQueryValues, QueryResponse}; +use rustc_infer::infer::error_reporting::TypeAnnotationNeeded::E0282; +use rustc_infer::infer::opaque_types::OpaqueTypeDecl; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind}; +use rustc_infer::infer::{self, InferCtxt, InferOk, InferResult, TyCtxtInferExt}; +use rustc_infer::traits::error_reporting::recursive_type_with_infinite_size_error; +use rustc_infer::traits::{self, ObligationCause, ObligationCauseCode, TraitEngine}; use rustc_span::hygiene::DesugaringKind; use rustc_span::source_map::{original_sp, DUMMY_SP}; use rustc_span::symbol::{kw, sym, Ident}; diff --git a/src/librustc_typeck/check/op.rs b/src/librustc_typeck/check/op.rs index 0c1557a59c2bc..86b00c2f0d3f0 100644 --- a/src/librustc_typeck/check/op.rs +++ b/src/librustc_typeck/check/op.rs @@ -2,12 +2,12 @@ use super::method::MethodCallee; use super::{FnCtxt, Needs}; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use rustc::ty::adjustment::{Adjust, Adjustment, AllowTwoPhase, AutoBorrow, AutoBorrowMutability}; use rustc::ty::TyKind::{Adt, Array, Char, FnDef, Never, Ref, Str, Tuple, Uint}; use rustc::ty::{self, Ty, TypeFoldable}; use rustc_errors::{self, struct_span_err, Applicability}; use rustc_hir as hir; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use rustc_span::Span; use syntax::ast::Ident; diff --git a/src/librustc_typeck/check/pat.rs b/src/librustc_typeck/check/pat.rs index 72a2d56af153f..2c7cbed6a2d36 100644 --- a/src/librustc_typeck/check/pat.rs +++ b/src/librustc_typeck/check/pat.rs @@ -1,7 +1,4 @@ use crate::check::FnCtxt; -use rustc::infer; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::traits::Pattern; use rustc::ty::subst::GenericArg; use rustc::ty::{self, BindingMode, Ty, TypeFoldable}; use rustc_data_structures::fx::FxHashMap; @@ -10,6 +7,9 @@ use rustc_hir as hir; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::pat_util::EnumerateAndAdjustIterator; use rustc_hir::{HirId, Pat, PatKind}; +use rustc_infer::infer; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::traits::Pattern; use rustc_span::hygiene::DesugaringKind; use rustc_span::Span; use syntax::ast; diff --git a/src/librustc_typeck/check/regionck.rs b/src/librustc_typeck/check/regionck.rs index af2ccb4517664..c0e33637fd047 100644 --- a/src/librustc_typeck/check/regionck.rs +++ b/src/librustc_typeck/check/regionck.rs @@ -77,8 +77,6 @@ use crate::check::FnCtxt; use crate::mem_categorization as mc; use crate::middle::region; use rustc::hir::map::Map; -use rustc::infer::outlives::env::OutlivesEnvironment; -use rustc::infer::{self, RegionObligation, SuppressRegionErrors}; use rustc::ty::adjustment; use rustc::ty::subst::{GenericArgKind, SubstsRef}; use rustc::ty::{self, Ty}; @@ -86,6 +84,8 @@ use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; use rustc_hir::PatKind; +use rustc_infer::infer::outlives::env::OutlivesEnvironment; +use rustc_infer::infer::{self, RegionObligation, SuppressRegionErrors}; use rustc_span::Span; use std::mem; use std::ops::Deref; diff --git a/src/librustc_typeck/check/upvar.rs b/src/librustc_typeck/check/upvar.rs index e4502bf134d76..f42611c63408b 100644 --- a/src/librustc_typeck/check/upvar.rs +++ b/src/librustc_typeck/check/upvar.rs @@ -36,13 +36,13 @@ use crate::expr_use_visitor as euv; use crate::mem_categorization as mc; use crate::mem_categorization::PlaceBase; use rustc::hir::map::Map; -use rustc::infer::UpvarRegion; use rustc::ty::{self, Ty, TyCtxt, UpvarSubsts}; use rustc_data_structures::fx::FxIndexMap; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::def_id::LocalDefId; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; +use rustc_infer::infer::UpvarRegion; use rustc_span::Span; use syntax::ast; diff --git a/src/librustc_typeck/check/wfcheck.rs b/src/librustc_typeck/check/wfcheck.rs index fc194e3af97f2..ef5188c94ff26 100644 --- a/src/librustc_typeck/check/wfcheck.rs +++ b/src/librustc_typeck/check/wfcheck.rs @@ -1,10 +1,8 @@ use crate::check::{FnCtxt, Inherited}; use crate::constrained_generic_params::{identify_constrained_generic_params, Parameter}; -use rustc::infer::opaque_types::may_define_opaque_type; use rustc::middle::lang_items; use rustc::session::parse::feature_err; -use rustc::traits::{self, ObligationCause, ObligationCauseCode}; use rustc::ty::subst::{InternalSubsts, Subst}; use rustc::ty::{ self, AdtKind, GenericParamDefKind, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness, @@ -13,6 +11,8 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir::def_id::DefId; use rustc_hir::ItemKind; +use rustc_infer::infer::opaque_types::may_define_opaque_type; +use rustc_infer::traits::{self, ObligationCause, ObligationCauseCode}; use rustc_span::symbol::sym; use rustc_span::Span; use syntax::ast; @@ -223,7 +223,7 @@ fn check_object_unsafe_self_trait_by_name(tcx: TyCtxt<'_>, item: &hir::TraitItem _ => {} } if !trait_should_be_self.is_empty() { - if rustc::traits::object_safety_violations(tcx, trait_def_id).is_empty() { + if rustc_infer::traits::object_safety_violations(tcx, trait_def_id).is_empty() { return; } let sugg = trait_should_be_self.iter().map(|span| (*span, "Self".to_string())).collect(); diff --git a/src/librustc_typeck/check/writeback.rs b/src/librustc_typeck/check/writeback.rs index 3a1622f1649e5..380e256c9fc9a 100644 --- a/src/librustc_typeck/check/writeback.rs +++ b/src/librustc_typeck/check/writeback.rs @@ -5,8 +5,6 @@ use crate::check::FnCtxt; use rustc::hir::map::Map; -use rustc::infer::error_reporting::TypeAnnotationNeeded::E0282; -use rustc::infer::InferCtxt; use rustc::ty::adjustment::{Adjust, Adjustment, PointerCast}; use rustc::ty::fold::{TypeFoldable, TypeFolder}; use rustc::ty::{self, Ty, TyCtxt}; @@ -14,6 +12,8 @@ use rustc_data_structures::sync::Lrc; use rustc_hir as hir; use rustc_hir::def_id::{DefId, DefIdSet, DefIndex}; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; +use rustc_infer::infer::error_reporting::TypeAnnotationNeeded::E0282; +use rustc_infer::infer::InferCtxt; use rustc_span::symbol::sym; use rustc_span::Span; diff --git a/src/librustc_typeck/coherence/builtin.rs b/src/librustc_typeck/coherence/builtin.rs index 1970b1e5c5deb..aa39a191b3df6 100644 --- a/src/librustc_typeck/coherence/builtin.rs +++ b/src/librustc_typeck/coherence/builtin.rs @@ -1,14 +1,8 @@ //! Check properties that are required by built-in traits and set //! up data structures required by type-checking/codegen. -use rustc::infer; -use rustc::infer::outlives::env::OutlivesEnvironment; -use rustc::infer::SuppressRegionErrors; use rustc::middle::lang_items::UnsizeTraitLangItem; use rustc::middle::region; -use rustc::traits::misc::{can_type_implement_copy, CopyImplementationError}; -use rustc::traits::predicate_for_trait_def; -use rustc::traits::{self, ObligationCause, TraitEngine}; use rustc::ty::adjustment::CoerceUnsizedInfo; use rustc::ty::TypeFoldable; use rustc::ty::{self, Ty, TyCtxt}; @@ -16,6 +10,12 @@ use rustc_errors::struct_span_err; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::ItemKind; +use rustc_infer::infer; +use rustc_infer::infer::outlives::env::OutlivesEnvironment; +use rustc_infer::infer::{SuppressRegionErrors, TyCtxtInferExt}; +use rustc_infer::traits::misc::{can_type_implement_copy, CopyImplementationError}; +use rustc_infer::traits::predicate_for_trait_def; +use rustc_infer::traits::{self, ObligationCause, TraitEngine}; pub fn check_trait(tcx: TyCtxt<'_>, trait_def_id: DefId) { let lang_items = tcx.lang_items(); diff --git a/src/librustc_typeck/coherence/inherent_impls_overlap.rs b/src/librustc_typeck/coherence/inherent_impls_overlap.rs index ffea849c4f209..2a0d19b69fd93 100644 --- a/src/librustc_typeck/coherence/inherent_impls_overlap.rs +++ b/src/librustc_typeck/coherence/inherent_impls_overlap.rs @@ -1,10 +1,10 @@ use crate::namespace::Namespace; -use rustc::traits::{self, SkipLeakCheck}; use rustc::ty::{AssocItem, TyCtxt}; use rustc_errors::struct_span_err; use rustc_hir as hir; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; use rustc_hir::itemlikevisit::ItemLikeVisitor; +use rustc_infer::traits::{self, SkipLeakCheck}; pub fn crate_inherent_impls_overlap_check(tcx: TyCtxt<'_>, crate_num: CrateNum) { assert_eq!(crate_num, LOCAL_CRATE); diff --git a/src/librustc_typeck/coherence/mod.rs b/src/librustc_typeck/coherence/mod.rs index 1526182576c31..d24ee5f156bcf 100644 --- a/src/librustc_typeck/coherence/mod.rs +++ b/src/librustc_typeck/coherence/mod.rs @@ -5,11 +5,11 @@ // done by the orphan and overlap modules. Then we build up various // mappings. That mapping code resides here. -use rustc::traits; use rustc::ty::query::Providers; use rustc::ty::{self, TyCtxt, TypeFoldable}; use rustc_errors::struct_span_err; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; +use rustc_infer::traits; use rustc_span::Span; mod builtin; diff --git a/src/librustc_typeck/coherence/orphan.rs b/src/librustc_typeck/coherence/orphan.rs index 80521666476e6..6ce0da666a787 100644 --- a/src/librustc_typeck/coherence/orphan.rs +++ b/src/librustc_typeck/coherence/orphan.rs @@ -1,11 +1,12 @@ //! Orphan checker: every impl either implements a trait defined in this //! crate or pertains to a type defined in this crate. -use rustc::traits; use rustc::ty::{self, TyCtxt}; use rustc_errors::struct_span_err; use rustc_hir as hir; use rustc_hir::itemlikevisit::ItemLikeVisitor; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits; pub fn check(tcx: TyCtxt<'_>) { let mut orphan = OrphanChecker { tcx }; diff --git a/src/librustc_typeck/collect/type_of.rs b/src/librustc_typeck/collect/type_of.rs index 8b6dba749a6ef..2ba97055a680a 100644 --- a/src/librustc_typeck/collect/type_of.rs +++ b/src/librustc_typeck/collect/type_of.rs @@ -1,6 +1,5 @@ use rustc::hir::map::Map; use rustc::session::parse::feature_err; -use rustc::traits; use rustc::ty::subst::{GenericArgKind, InternalSubsts, Subst}; use rustc::ty::util::IntTypeExt; use rustc::ty::{self, DefIdTree, Ty, TyCtxt, TypeFoldable}; @@ -12,6 +11,7 @@ use rustc_hir::def_id::DefId; use rustc_hir::intravisit; use rustc_hir::intravisit::Visitor; use rustc_hir::Node; +use rustc_infer::traits; use rustc_span::symbol::{sym, Ident}; use rustc_span::{Span, DUMMY_SP}; diff --git a/src/librustc_typeck/expr_use_visitor.rs b/src/librustc_typeck/expr_use_visitor.rs index 1d3ace933cc43..6666b1699943e 100644 --- a/src/librustc_typeck/expr_use_visitor.rs +++ b/src/librustc_typeck/expr_use_visitor.rs @@ -7,12 +7,12 @@ pub use self::ConsumeMode::*; // Export these here so that Clippy can use them. pub use mc::{Place, PlaceBase, Projection}; -use rustc::infer::InferCtxt; use rustc::ty::{self, adjustment, TyCtxt}; use rustc_hir as hir; use rustc_hir::def::Res; use rustc_hir::def_id::DefId; use rustc_hir::PatKind; +use rustc_infer::infer::InferCtxt; use crate::mem_categorization as mc; use rustc_span::Span; diff --git a/src/librustc_typeck/lib.rs b/src/librustc_typeck/lib.rs index 067b33c144742..0a1c61b8aead8 100644 --- a/src/librustc_typeck/lib.rs +++ b/src/librustc_typeck/lib.rs @@ -88,12 +88,10 @@ mod outlives; mod structured_errors; mod variance; -use rustc::infer::InferOk; use rustc::lint; use rustc::middle; use rustc::session; use rustc::session::config::EntryFnType; -use rustc::traits::{ObligationCause, ObligationCauseCode, TraitEngine, TraitEngineExt}; use rustc::ty::query::Providers; use rustc::ty::subst::SubstsRef; use rustc::ty::{self, Ty, TyCtxt}; @@ -103,6 +101,8 @@ use rustc_errors::struct_span_err; use rustc_hir as hir; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_hir::Node; +use rustc_infer::infer::{InferOk, TyCtxtInferExt}; +use rustc_infer::traits::{ObligationCause, ObligationCauseCode, TraitEngine, TraitEngineExt}; use rustc_span::{Span, DUMMY_SP}; use rustc_target::spec::abi::Abi; diff --git a/src/librustc_typeck/mem_categorization.rs b/src/librustc_typeck/mem_categorization.rs index d3d0aa2e5807f..a4569a147567f 100644 --- a/src/librustc_typeck/mem_categorization.rs +++ b/src/librustc_typeck/mem_categorization.rs @@ -48,15 +48,16 @@ //! result of `*x'`, effectively, where `x'` is a `Categorization::Upvar` reference //! tied to `x`. The type of `x'` will be a borrowed pointer. -use rustc::infer::InferCtxt; use rustc::ty::adjustment; use rustc::ty::fold::TypeFoldable; use rustc::ty::{self, Ty, TyCtxt}; + use rustc_data_structures::fx::FxIndexMap; use rustc_hir as hir; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::PatKind; +use rustc_infer::infer::InferCtxt; use rustc_span::Span; #[derive(Clone, Debug)] From 1637aab15e175b5e0dc14947ffa946804420d414 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 23:21:41 +0100 Subject: [PATCH 05/11] Make librustc_mir compile. --- .../borrow_check/constraint_generation.rs | 2 +- .../diagnostics/conflict_errors.rs | 2 +- .../diagnostics/explain_borrow.rs | 2 +- .../borrow_check/diagnostics/region_errors.rs | 6 +++--- .../borrow_check/member_constraints.rs | 2 +- src/librustc_mir/borrow_check/mod.rs | 2 +- src/librustc_mir/borrow_check/nll.rs | 2 +- .../borrow_check/region_infer/dump_mir.rs | 2 +- .../borrow_check/region_infer/mod.rs | 6 +++--- .../borrow_check/region_infer/opaque_types.rs | 2 +- src/librustc_mir/borrow_check/renumber.rs | 2 +- .../type_check/constraint_conversion.rs | 12 +++++------ .../type_check/free_region_relations.rs | 10 +++++----- .../borrow_check/type_check/input_output.rs | 2 +- .../borrow_check/type_check/liveness/trace.rs | 8 ++++---- .../borrow_check/type_check/mod.rs | 20 ++++++++++--------- .../borrow_check/type_check/relate_tys.rs | 8 ++++---- .../borrow_check/universal_regions.rs | 2 +- .../transform/check_consts/validation.rs | 3 ++- src/librustc_mir/transform/const_prop.rs | 2 +- src/librustc_mir_build/build/mod.rs | 1 + src/librustc_mir_build/hair/cx/mod.rs | 2 +- .../hair/pattern/const_to_pat.rs | 6 +++--- 23 files changed, 55 insertions(+), 51 deletions(-) diff --git a/src/librustc_mir/borrow_check/constraint_generation.rs b/src/librustc_mir/borrow_check/constraint_generation.rs index 19b7e0cf59bb4..46cfe0897a9ac 100644 --- a/src/librustc_mir/borrow_check/constraint_generation.rs +++ b/src/librustc_mir/borrow_check/constraint_generation.rs @@ -1,4 +1,3 @@ -use rustc::infer::InferCtxt; use rustc::mir::visit::TyContext; use rustc::mir::visit::Visitor; use rustc::mir::{ @@ -8,6 +7,7 @@ use rustc::mir::{ use rustc::ty::fold::TypeFoldable; use rustc::ty::subst::SubstsRef; use rustc::ty::{self, RegionVid, Ty}; +use rustc_infer::infer::InferCtxt; use crate::borrow_check::{ borrow_set::BorrowSet, facts::AllFacts, location::LocationTable, nll::ToRegionVid, diff --git a/src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs b/src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs index c7c7db9ad8095..d1a03c4158068 100644 --- a/src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs +++ b/src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs @@ -3,7 +3,6 @@ use rustc::mir::{ FakeReadCause, Local, LocalDecl, LocalInfo, LocalKind, Location, Operand, Place, PlaceRef, ProjectionElem, Rvalue, Statement, StatementKind, TerminatorKind, VarBindingForm, }; -use rustc::traits::error_reporting::suggest_constraining_type_param; use rustc::ty::{self, Ty}; use rustc_data_structures::fx::FxHashSet; use rustc_errors::{Applicability, DiagnosticBuilder}; @@ -11,6 +10,7 @@ use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::{AsyncGeneratorKind, GeneratorKind}; use rustc_index::vec::Idx; +use rustc_infer::traits::error_reporting::suggest_constraining_type_param; use rustc_span::source_map::DesugaringKind; use rustc_span::Span; diff --git a/src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs b/src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs index 01b7c5645fe8b..6475677988fbb 100644 --- a/src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs +++ b/src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs @@ -2,7 +2,6 @@ use std::collections::VecDeque; -use rustc::infer::NLLRegionVariableOrigin; use rustc::mir::{ Body, CastKind, ConstraintCategory, FakeReadCause, Local, Location, Operand, Place, Rvalue, Statement, StatementKind, TerminatorKind, @@ -12,6 +11,7 @@ use rustc::ty::{self, RegionVid, TyCtxt}; use rustc_data_structures::fx::FxHashSet; use rustc_errors::{Applicability, DiagnosticBuilder}; use rustc_index::vec::IndexVec; +use rustc_infer::infer::NLLRegionVariableOrigin; use rustc_span::symbol::Symbol; use rustc_span::Span; diff --git a/src/librustc_mir/borrow_check/diagnostics/region_errors.rs b/src/librustc_mir/borrow_check/diagnostics/region_errors.rs index b393d4bc2a5b3..a3e0e51c5b64d 100644 --- a/src/librustc_mir/borrow_check/diagnostics/region_errors.rs +++ b/src/librustc_mir/borrow_check/diagnostics/region_errors.rs @@ -1,11 +1,11 @@ //! Error reporting machinery for lifetime errors. -use rustc::infer::{ - error_reporting::nice_region_error::NiceRegionError, opaque_types, NLLRegionVariableOrigin, -}; use rustc::mir::ConstraintCategory; use rustc::ty::{self, RegionVid, Ty}; use rustc_errors::{Applicability, DiagnosticBuilder}; +use rustc_infer::infer::{ + error_reporting::nice_region_error::NiceRegionError, opaque_types, NLLRegionVariableOrigin, +}; use rustc_span::symbol::kw; use rustc_span::Span; diff --git a/src/librustc_mir/borrow_check/member_constraints.rs b/src/librustc_mir/borrow_check/member_constraints.rs index c95919685bbc7..aeb29d2e11eb0 100644 --- a/src/librustc_mir/borrow_check/member_constraints.rs +++ b/src/librustc_mir/borrow_check/member_constraints.rs @@ -1,5 +1,5 @@ use crate::rustc::ty::{self, Ty}; -use rustc::infer::region_constraints::MemberConstraint; +use rustc::infer::MemberConstraint; use rustc_data_structures::fx::FxHashMap; use rustc_hir::def_id::DefId; use rustc_index::vec::IndexVec; diff --git a/src/librustc_mir/borrow_check/mod.rs b/src/librustc_mir/borrow_check/mod.rs index f9db62e0a3a42..a3edfb662c50e 100644 --- a/src/librustc_mir/borrow_check/mod.rs +++ b/src/librustc_mir/borrow_check/mod.rs @@ -1,6 +1,5 @@ //! This query borrow-checks the MIR to (further) ensure it is not broken. -use rustc::infer::InferCtxt; use rustc::lint::builtin::MUTABLE_BORROW_RESERVATION_CONFLICT; use rustc::lint::builtin::UNUSED_MUT; use rustc::mir::{ @@ -20,6 +19,7 @@ use rustc_hir as hir; use rustc_hir::{def_id::DefId, HirId, Node}; use rustc_index::bit_set::BitSet; use rustc_index::vec::IndexVec; +use rustc_infer::infer::{InferCtxt, TyCtxtInferExt}; use either::Either; use smallvec::SmallVec; diff --git a/src/librustc_mir/borrow_check/nll.rs b/src/librustc_mir/borrow_check/nll.rs index 101d1856c38f2..ba0f2e8a7ad76 100644 --- a/src/librustc_mir/borrow_check/nll.rs +++ b/src/librustc_mir/borrow_check/nll.rs @@ -1,6 +1,5 @@ //! The entry point of the NLL borrow checker. -use rustc::infer::InferCtxt; use rustc::mir::{ BasicBlock, Body, BodyAndCache, ClosureOutlivesSubject, ClosureRegionRequirements, LocalKind, Location, Promoted, ReadOnlyBodyAndCache, @@ -10,6 +9,7 @@ use rustc_data_structures::fx::FxHashMap; use rustc_errors::Diagnostic; use rustc_hir::def_id::DefId; use rustc_index::vec::IndexVec; +use rustc_infer::infer::InferCtxt; use rustc_span::symbol::sym; use std::env; use std::fmt::Debug; diff --git a/src/librustc_mir/borrow_check/region_infer/dump_mir.rs b/src/librustc_mir/borrow_check/region_infer/dump_mir.rs index b236ffe807485..369e540231168 100644 --- a/src/librustc_mir/borrow_check/region_infer/dump_mir.rs +++ b/src/librustc_mir/borrow_check/region_infer/dump_mir.rs @@ -4,7 +4,7 @@ //! context internal state. use super::{OutlivesConstraint, RegionInferenceContext}; -use rustc::infer::NLLRegionVariableOrigin; +use rustc_infer::infer::NLLRegionVariableOrigin; use std::io::{self, Write}; // Room for "'_#NNNNr" before things get misaligned. diff --git a/src/librustc_mir/borrow_check/region_infer/mod.rs b/src/librustc_mir/borrow_check/region_infer/mod.rs index 192e4700b91f6..144f655420b36 100644 --- a/src/librustc_mir/borrow_check/region_infer/mod.rs +++ b/src/librustc_mir/borrow_check/region_infer/mod.rs @@ -1,9 +1,6 @@ use std::collections::VecDeque; use std::rc::Rc; -use rustc::infer::canonical::QueryOutlivesConstraint; -use rustc::infer::region_constraints::{GenericKind, VarInfos, VerifyBound}; -use rustc::infer::{InferCtxt, NLLRegionVariableOrigin, RegionVariableOrigin}; use rustc::mir::{ Body, ClosureOutlivesRequirement, ClosureOutlivesSubject, ClosureRegionRequirements, ConstraintCategory, Local, Location, @@ -15,6 +12,9 @@ use rustc_data_structures::graph::scc::Sccs; use rustc_hir::def_id::DefId; use rustc_index::bit_set::BitSet; use rustc_index::vec::IndexVec; +use rustc_infer::infer::canonical::QueryOutlivesConstraint; +use rustc_infer::infer::region_constraints::{GenericKind, VarInfos, VerifyBound}; +use rustc_infer::infer::{InferCtxt, NLLRegionVariableOrigin, RegionVariableOrigin}; use rustc_span::Span; use crate::borrow_check::{ diff --git a/src/librustc_mir/borrow_check/region_infer/opaque_types.rs b/src/librustc_mir/borrow_check/region_infer/opaque_types.rs index 52d54f7b53c79..15bbc5677dadd 100644 --- a/src/librustc_mir/borrow_check/region_infer/opaque_types.rs +++ b/src/librustc_mir/borrow_check/region_infer/opaque_types.rs @@ -1,7 +1,7 @@ -use rustc::infer::InferCtxt; use rustc::ty::{self, TyCtxt, TypeFoldable}; use rustc_data_structures::fx::FxHashMap; use rustc_hir::def_id::DefId; +use rustc_infer::infer::InferCtxt; use rustc_span::Span; use super::RegionInferenceContext; diff --git a/src/librustc_mir/borrow_check/renumber.rs b/src/librustc_mir/borrow_check/renumber.rs index ab08cb0a3190a..a63d18c27f119 100644 --- a/src/librustc_mir/borrow_check/renumber.rs +++ b/src/librustc_mir/borrow_check/renumber.rs @@ -1,9 +1,9 @@ -use rustc::infer::{InferCtxt, NLLRegionVariableOrigin}; use rustc::mir::visit::{MutVisitor, TyContext}; use rustc::mir::{BodyAndCache, Location, PlaceElem, Promoted}; use rustc::ty::subst::SubstsRef; use rustc::ty::{self, Ty, TyCtxt, TypeFoldable}; use rustc_index::vec::IndexVec; +use rustc_infer::infer::{InferCtxt, NLLRegionVariableOrigin}; /// Replaces all free regions appearing in the MIR with fresh /// inference variables, returning the number of variables created. diff --git a/src/librustc_mir/borrow_check/type_check/constraint_conversion.rs b/src/librustc_mir/borrow_check/type_check/constraint_conversion.rs index a3e38cd7a5f85..576759c2a3574 100644 --- a/src/librustc_mir/borrow_check/type_check/constraint_conversion.rs +++ b/src/librustc_mir/borrow_check/type_check/constraint_conversion.rs @@ -1,12 +1,12 @@ -use rustc::infer::canonical::QueryOutlivesConstraint; -use rustc::infer::canonical::QueryRegionConstraints; -use rustc::infer::outlives::env::RegionBoundPairs; -use rustc::infer::outlives::obligations::{TypeOutlives, TypeOutlivesDelegate}; -use rustc::infer::region_constraints::{GenericKind, VerifyBound}; -use rustc::infer::{self, InferCtxt, SubregionOrigin}; use rustc::mir::ConstraintCategory; use rustc::ty::subst::GenericArgKind; use rustc::ty::{self, TyCtxt}; +use rustc_infer::infer::canonical::QueryOutlivesConstraint; +use rustc_infer::infer::canonical::QueryRegionConstraints; +use rustc_infer::infer::outlives::env::RegionBoundPairs; +use rustc_infer::infer::outlives::obligations::{TypeOutlives, TypeOutlivesDelegate}; +use rustc_infer::infer::region_constraints::{GenericKind, VerifyBound}; +use rustc_infer::infer::{self, InferCtxt, SubregionOrigin}; use rustc_span::DUMMY_SP; use crate::borrow_check::{ diff --git a/src/librustc_mir/borrow_check/type_check/free_region_relations.rs b/src/librustc_mir/borrow_check/type_check/free_region_relations.rs index cf8c3449d666b..137216531a369 100644 --- a/src/librustc_mir/borrow_check/type_check/free_region_relations.rs +++ b/src/librustc_mir/borrow_check/type_check/free_region_relations.rs @@ -1,12 +1,12 @@ -use rustc::infer::canonical::QueryRegionConstraints; -use rustc::infer::region_constraints::GenericKind; -use rustc::infer::InferCtxt; use rustc::mir::ConstraintCategory; -use rustc::traits::query::outlives_bounds::{self, OutlivesBound}; -use rustc::traits::query::type_op::{self, TypeOp}; use rustc::ty::free_region_map::FreeRegionRelations; use rustc::ty::{self, RegionVid, Ty, TyCtxt}; use rustc_data_structures::transitive_relation::TransitiveRelation; +use rustc_infer::infer::canonical::QueryRegionConstraints; +use rustc_infer::infer::region_constraints::GenericKind; +use rustc_infer::infer::InferCtxt; +use rustc_infer::traits::query::outlives_bounds::{self, OutlivesBound}; +use rustc_infer::traits::query::type_op::{self, TypeOp}; use rustc_span::DUMMY_SP; use std::rc::Rc; diff --git a/src/librustc_mir/borrow_check/type_check/input_output.rs b/src/librustc_mir/borrow_check/type_check/input_output.rs index 3d3b1e5cbf6a9..37cf77b7095c6 100644 --- a/src/librustc_mir/borrow_check/type_check/input_output.rs +++ b/src/librustc_mir/borrow_check/type_check/input_output.rs @@ -7,9 +7,9 @@ //! `RETURN_PLACE` the MIR arguments) are always fully normalized (and //! contain revealed `impl Trait` values). -use rustc::infer::LateBoundRegionConversionTime; use rustc::mir::*; use rustc::ty::Ty; +use rustc_infer::infer::LateBoundRegionConversionTime; use rustc_index::vec::Idx; use rustc_span::Span; diff --git a/src/librustc_mir/borrow_check/type_check/liveness/trace.rs b/src/librustc_mir/borrow_check/type_check/liveness/trace.rs index 198f4b4b42e05..4c8deb0ecf84a 100644 --- a/src/librustc_mir/borrow_check/type_check/liveness/trace.rs +++ b/src/librustc_mir/borrow_check/type_check/liveness/trace.rs @@ -1,11 +1,11 @@ -use rustc::infer::canonical::QueryRegionConstraints; use rustc::mir::{BasicBlock, ConstraintCategory, Local, Location, ReadOnlyBodyAndCache}; -use rustc::traits::query::dropck_outlives::DropckOutlivesResult; -use rustc::traits::query::type_op::outlives::DropckOutlives; -use rustc::traits::query::type_op::TypeOp; use rustc::ty::{Ty, TypeFoldable}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_index::bit_set::HybridBitSet; +use rustc_infer::infer::canonical::QueryRegionConstraints; +use rustc_infer::traits::query::dropck_outlives::DropckOutlivesResult; +use rustc_infer::traits::query::type_op::outlives::DropckOutlives; +use rustc_infer::traits::query::type_op::TypeOp; use std::rc::Rc; use crate::dataflow::generic::ResultsCursor; diff --git a/src/librustc_mir/borrow_check/type_check/mod.rs b/src/librustc_mir/borrow_check/type_check/mod.rs index 88fe6d1a3a49d..c92486213fd3e 100644 --- a/src/librustc_mir/borrow_check/type_check/mod.rs +++ b/src/librustc_mir/borrow_check/type_check/mod.rs @@ -5,19 +5,10 @@ use std::{fmt, iter, mem}; use either::Either; -use rustc::infer::canonical::QueryRegionConstraints; -use rustc::infer::opaque_types::GenerateMemberConstraints; -use rustc::infer::outlives::env::RegionBoundPairs; -use rustc::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; -use rustc::infer::{InferCtxt, InferOk, LateBoundRegionConversionTime, NLLRegionVariableOrigin}; use rustc::mir::tcx::PlaceTy; use rustc::mir::visit::{NonMutatingUseContext, PlaceContext, Visitor}; use rustc::mir::AssertKind; use rustc::mir::*; -use rustc::traits::query::type_op; -use rustc::traits::query::type_op::custom::CustomTypeOp; -use rustc::traits::query::{Fallible, NoSolution}; -use rustc::traits::{self, ObligationCause, PredicateObligations}; use rustc::ty::adjustment::PointerCast; use rustc::ty::cast::CastTy; use rustc::ty::fold::TypeFoldable; @@ -32,6 +23,17 @@ use rustc_errors::struct_span_err; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_index::vec::{Idx, IndexVec}; +use rustc_infer::infer::canonical::QueryRegionConstraints; +use rustc_infer::infer::opaque_types::GenerateMemberConstraints; +use rustc_infer::infer::outlives::env::RegionBoundPairs; +use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; +use rustc_infer::infer::{ + InferCtxt, InferOk, LateBoundRegionConversionTime, NLLRegionVariableOrigin, +}; +use rustc_infer::traits::query::type_op; +use rustc_infer::traits::query::type_op::custom::CustomTypeOp; +use rustc_infer::traits::query::{Fallible, NoSolution}; +use rustc_infer::traits::{self, ObligationCause, PredicateObligations}; use rustc_span::{Span, DUMMY_SP}; use crate::dataflow::generic::ResultsCursor; diff --git a/src/librustc_mir/borrow_check/type_check/relate_tys.rs b/src/librustc_mir/borrow_check/type_check/relate_tys.rs index edbcd715159ac..31507a184d8f9 100644 --- a/src/librustc_mir/borrow_check/type_check/relate_tys.rs +++ b/src/librustc_mir/borrow_check/type_check/relate_tys.rs @@ -1,10 +1,10 @@ -use rustc::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate}; -use rustc::infer::{InferCtxt, NLLRegionVariableOrigin}; use rustc::mir::ConstraintCategory; -use rustc::traits::query::Fallible; -use rustc::traits::DomainGoal; use rustc::ty::relate::TypeRelation; use rustc::ty::{self, Ty}; +use rustc_infer::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate}; +use rustc_infer::infer::{InferCtxt, NLLRegionVariableOrigin}; +use rustc_infer::traits::query::Fallible; +use rustc_infer::traits::DomainGoal; use crate::borrow_check::constraints::OutlivesConstraint; use crate::borrow_check::type_check::{BorrowCheckContext, Locations}; diff --git a/src/librustc_mir/borrow_check/universal_regions.rs b/src/librustc_mir/borrow_check/universal_regions.rs index f6e3ca2f80900..0913de63e8ef1 100644 --- a/src/librustc_mir/borrow_check/universal_regions.rs +++ b/src/librustc_mir/borrow_check/universal_regions.rs @@ -13,7 +13,6 @@ //! just returns them for other code to use. use either::Either; -use rustc::infer::{InferCtxt, NLLRegionVariableOrigin}; use rustc::middle::lang_items; use rustc::ty::fold::TypeFoldable; use rustc::ty::subst::{InternalSubsts, Subst, SubstsRef}; @@ -24,6 +23,7 @@ use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::{BodyOwnerKind, HirId}; use rustc_index::vec::{Idx, IndexVec}; +use rustc_infer::infer::{InferCtxt, NLLRegionVariableOrigin}; use std::iter; use crate::borrow_check::nll::ToRegionVid; diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/src/librustc_mir/transform/check_consts/validation.rs index e9715f682b04a..167d8145c030f 100644 --- a/src/librustc_mir/transform/check_consts/validation.rs +++ b/src/librustc_mir/transform/check_consts/validation.rs @@ -3,12 +3,13 @@ use rustc::middle::lang_items; use rustc::mir::visit::{MutatingUseContext, NonMutatingUseContext, PlaceContext, Visitor}; use rustc::mir::*; -use rustc::traits::{self, TraitEngine}; use rustc::ty::cast::CastTy; use rustc::ty::{self, TyCtxt}; use rustc_errors::struct_span_err; use rustc_hir::{def_id::DefId, HirId}; use rustc_index::bit_set::BitSet; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits::{self, TraitEngine}; use rustc_span::symbol::sym; use rustc_span::Span; diff --git a/src/librustc_mir/transform/const_prop.rs b/src/librustc_mir/transform/const_prop.rs index 5729cda64f7ae..91d134fbb0066 100644 --- a/src/librustc_mir/transform/const_prop.rs +++ b/src/librustc_mir/transform/const_prop.rs @@ -14,7 +14,6 @@ use rustc::mir::{ SourceInfo, SourceScope, SourceScopeData, Statement, StatementKind, Terminator, TerminatorKind, UnOp, RETURN_PLACE, }; -use rustc::traits; use rustc::ty::layout::{ HasDataLayout, HasTyCtxt, LayoutError, LayoutOf, Size, TargetDataLayout, TyLayout, }; @@ -25,6 +24,7 @@ use rustc_hir::def::DefKind; use rustc_hir::def_id::DefId; use rustc_hir::HirId; use rustc_index::vec::IndexVec; +use rustc_infer::traits; use rustc_span::Span; use syntax::ast::Mutability; diff --git a/src/librustc_mir_build/build/mod.rs b/src/librustc_mir_build/build/mod.rs index 5f8c0b027e96a..8b7d0637c0343 100644 --- a/src/librustc_mir_build/build/mod.rs +++ b/src/librustc_mir_build/build/mod.rs @@ -12,6 +12,7 @@ use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::{GeneratorKind, HirIdMap, Node}; use rustc_index::vec::{Idx, IndexVec}; +use rustc_infer::infer::TyCtxtInferExt; use rustc_span::symbol::kw; use rustc_span::Span; use rustc_target::spec::abi::Abi; diff --git a/src/librustc_mir_build/hair/cx/mod.rs b/src/librustc_mir_build/hair/cx/mod.rs index 497c6610550f3..ee62af7f8519d 100644 --- a/src/librustc_mir_build/hair/cx/mod.rs +++ b/src/librustc_mir_build/hair/cx/mod.rs @@ -5,7 +5,6 @@ use crate::hair::util::UserAnnotatedTyHelpers; use crate::hair::*; -use rustc::infer::InferCtxt; use rustc::middle::region; use rustc::mir::interpret::{LitToConstError, LitToConstInput}; use rustc::ty::layout::VariantIdx; @@ -16,6 +15,7 @@ use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_hir::Node; use rustc_index::vec::Idx; +use rustc_infer::infer::InferCtxt; use rustc_span::symbol::{sym, Symbol}; use syntax::ast; use syntax::attr; diff --git a/src/librustc_mir_build/hair/pattern/const_to_pat.rs b/src/librustc_mir_build/hair/pattern/const_to_pat.rs index 5fbe764430c54..27d1bce76edc5 100644 --- a/src/librustc_mir_build/hair/pattern/const_to_pat.rs +++ b/src/librustc_mir_build/hair/pattern/const_to_pat.rs @@ -1,10 +1,10 @@ -use rustc::infer::InferCtxt; use rustc::lint; use rustc::mir::Field; -use rustc::traits::predicate_for_trait_def; -use rustc::traits::{self, ObligationCause, PredicateObligation}; use rustc::ty::{self, Ty, TyCtxt}; use rustc_hir as hir; +use rustc_infer::infer::{InferCtxt, TyCtxtInferExt}; +use rustc_infer::traits::predicate_for_trait_def; +use rustc_infer::traits::{self, ObligationCause, PredicateObligation}; use rustc_index::vec::Idx; From 2519f4a0a336993fc2e494a194807c56060256b3 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 23:28:45 +0100 Subject: [PATCH 06/11] Make librustc_traits compile. --- src/librustc_traits/chalk_context/mod.rs | 14 ++++++------- .../chalk_context/resolvent_ops.rs | 10 +++++----- src/librustc_traits/chalk_context/unify.rs | 6 +++--- src/librustc_traits/dropck_outlives.rs | 11 +++++----- src/librustc_traits/evaluate_obligation.rs | 9 +++++---- .../implied_outlives_bounds.rs | 14 ++++++------- .../normalize_erasing_regions.rs | 3 ++- .../normalize_projection_ty.rs | 9 ++++++--- src/librustc_traits/type_op.rs | 20 +++++++++---------- 9 files changed, 51 insertions(+), 45 deletions(-) diff --git a/src/librustc_traits/chalk_context/mod.rs b/src/librustc_traits/chalk_context/mod.rs index 0b18352df3307..240a93f0900a4 100644 --- a/src/librustc_traits/chalk_context/mod.rs +++ b/src/librustc_traits/chalk_context/mod.rs @@ -5,19 +5,19 @@ mod unify; use chalk_engine::fallible::Fallible; use chalk_engine::forest::Forest; use chalk_engine::{context, hh::HhGoal, DelayedLiteral, ExClause, Literal}; -use rustc::infer::canonical::{ +use rustc::ty::fold::{TypeFoldable, TypeFolder, TypeVisitor}; +use rustc::ty::query::Providers; +use rustc::ty::subst::{GenericArg, GenericArgKind}; +use rustc::ty::{self, TyCtxt}; +use rustc_infer::infer::canonical::{ Canonical, CanonicalVarValues, Certainty, OriginalQueryValues, QueryRegionConstraints, QueryResponse, }; -use rustc::infer::{InferCtxt, LateBoundRegionConversionTime}; -use rustc::traits::{ +use rustc_infer::infer::{InferCtxt, LateBoundRegionConversionTime, TyCtxtInferExt}; +use rustc_infer::traits::{ self, ChalkCanonicalGoal, ChalkContextLift, Clause, DomainGoal, Environment, ExClauseFold, Goal, GoalKind, InEnvironment, QuantifierKind, }; -use rustc::ty::fold::{TypeFoldable, TypeFolder, TypeVisitor}; -use rustc::ty::query::Providers; -use rustc::ty::subst::{GenericArg, GenericArgKind}; -use rustc::ty::{self, TyCtxt}; use rustc_macros::{Lift, TypeFoldable}; use rustc_span::DUMMY_SP; diff --git a/src/librustc_traits/chalk_context/resolvent_ops.rs b/src/librustc_traits/chalk_context/resolvent_ops.rs index dc6018e80ea7e..796ce6085fdbe 100644 --- a/src/librustc_traits/chalk_context/resolvent_ops.rs +++ b/src/librustc_traits/chalk_context/resolvent_ops.rs @@ -1,13 +1,13 @@ use chalk_engine::fallible::{Fallible, NoSolution}; use chalk_engine::{context, ExClause, Literal}; -use rustc::infer::canonical::{Canonical, CanonicalVarValues}; -use rustc::infer::{InferCtxt, LateBoundRegionConversionTime}; -use rustc::traits::{ - Clause, DomainGoal, Environment, Goal, GoalKind, InEnvironment, ProgramClause, WhereClause, -}; use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; use rustc::ty::subst::GenericArg; use rustc::ty::{self, Ty, TyCtxt}; +use rustc_infer::infer::canonical::{Canonical, CanonicalVarValues}; +use rustc_infer::infer::{InferCtxt, LateBoundRegionConversionTime}; +use rustc_infer::traits::{ + Clause, DomainGoal, Environment, Goal, GoalKind, InEnvironment, ProgramClause, WhereClause, +}; use rustc_span::DUMMY_SP; use super::unify::*; diff --git a/src/librustc_traits/chalk_context/unify.rs b/src/librustc_traits/chalk_context/unify.rs index fcb3c3b177357..3274a301bb669 100644 --- a/src/librustc_traits/chalk_context/unify.rs +++ b/src/librustc_traits/chalk_context/unify.rs @@ -1,8 +1,8 @@ -use rustc::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate}; -use rustc::infer::{InferCtxt, RegionVariableOrigin}; -use rustc::traits::{DomainGoal, Environment, Goal, InEnvironment}; use rustc::ty; use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; +use rustc_infer::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate}; +use rustc_infer::infer::{InferCtxt, RegionVariableOrigin}; +use rustc_infer::traits::{DomainGoal, Environment, Goal, InEnvironment}; use rustc_span::DUMMY_SP; crate struct UnificationResult<'tcx> { diff --git a/src/librustc_traits/dropck_outlives.rs b/src/librustc_traits/dropck_outlives.rs index 346d2a931d10b..e14295de061e5 100644 --- a/src/librustc_traits/dropck_outlives.rs +++ b/src/librustc_traits/dropck_outlives.rs @@ -1,13 +1,14 @@ -use rustc::infer::canonical::{Canonical, QueryResponse}; -use rustc::traits::query::dropck_outlives::trivial_dropck_outlives; -use rustc::traits::query::dropck_outlives::{DropckOutlivesResult, DtorckConstraint}; -use rustc::traits::query::{CanonicalTyGoal, NoSolution}; -use rustc::traits::{Normalized, ObligationCause, TraitEngine, TraitEngineExt}; use rustc::ty::query::Providers; use rustc::ty::subst::{InternalSubsts, Subst}; use rustc::ty::{self, ParamEnvAnd, Ty, TyCtxt}; use rustc_data_structures::fx::FxHashSet; use rustc_hir::def_id::DefId; +use rustc_infer::infer::canonical::{Canonical, QueryResponse}; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits::query::dropck_outlives::trivial_dropck_outlives; +use rustc_infer::traits::query::dropck_outlives::{DropckOutlivesResult, DtorckConstraint}; +use rustc_infer::traits::query::{CanonicalTyGoal, NoSolution}; +use rustc_infer::traits::{Normalized, ObligationCause, TraitEngine, TraitEngineExt}; use rustc_span::source_map::{Span, DUMMY_SP}; crate fn provide(p: &mut Providers<'_>) { diff --git a/src/librustc_traits/evaluate_obligation.rs b/src/librustc_traits/evaluate_obligation.rs index 3ad1b223a8433..4cf5b66b3cbeb 100644 --- a/src/librustc_traits/evaluate_obligation.rs +++ b/src/librustc_traits/evaluate_obligation.rs @@ -1,9 +1,10 @@ -use rustc::traits::query::CanonicalPredicateGoal; -use rustc::traits::{ - EvaluationResult, Obligation, ObligationCause, OverflowError, SelectionContext, TraitQueryMode, -}; use rustc::ty::query::Providers; use rustc::ty::{ParamEnvAnd, TyCtxt}; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits::query::CanonicalPredicateGoal; +use rustc_infer::traits::{ + EvaluationResult, Obligation, ObligationCause, OverflowError, SelectionContext, TraitQueryMode, +}; use rustc_span::source_map::DUMMY_SP; crate fn provide(p: &mut Providers<'_>) { diff --git a/src/librustc_traits/implied_outlives_bounds.rs b/src/librustc_traits/implied_outlives_bounds.rs index 40f821c29d366..69424e3fac776 100644 --- a/src/librustc_traits/implied_outlives_bounds.rs +++ b/src/librustc_traits/implied_outlives_bounds.rs @@ -1,17 +1,17 @@ //! Provider for the `implied_outlives_bounds` query. //! Do not call this query directory. See [`rustc::traits::query::implied_outlives_bounds`]. -use rustc::infer::canonical::{self, Canonical}; -use rustc::infer::InferCtxt; -use rustc::traits::query::outlives_bounds::OutlivesBound; -use rustc::traits::query::{CanonicalTyGoal, Fallible, NoSolution}; -use rustc::traits::wf; -use rustc::traits::FulfillmentContext; -use rustc::traits::{TraitEngine, TraitEngineExt}; use rustc::ty::outlives::Component; use rustc::ty::query::Providers; use rustc::ty::{self, Ty, TyCtxt, TypeFoldable}; use rustc_hir as hir; +use rustc_infer::infer::canonical::{self, Canonical}; +use rustc_infer::infer::{InferCtxt, TyCtxtInferExt}; +use rustc_infer::traits::query::outlives_bounds::OutlivesBound; +use rustc_infer::traits::query::{CanonicalTyGoal, Fallible, NoSolution}; +use rustc_infer::traits::wf; +use rustc_infer::traits::FulfillmentContext; +use rustc_infer::traits::{TraitEngine, TraitEngineExt}; use rustc_span::source_map::DUMMY_SP; use smallvec::{smallvec, SmallVec}; diff --git a/src/librustc_traits/normalize_erasing_regions.rs b/src/librustc_traits/normalize_erasing_regions.rs index e81b0242d6120..4e5f20d80b0d8 100644 --- a/src/librustc_traits/normalize_erasing_regions.rs +++ b/src/librustc_traits/normalize_erasing_regions.rs @@ -1,7 +1,8 @@ use rustc::traits::query::NoSolution; -use rustc::traits::{Normalized, ObligationCause}; use rustc::ty::query::Providers; use rustc::ty::{self, ParamEnvAnd, Ty, TyCtxt}; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits::{Normalized, ObligationCause}; use std::sync::atomic::Ordering; crate fn provide(p: &mut Providers<'_>) { diff --git a/src/librustc_traits/normalize_projection_ty.rs b/src/librustc_traits/normalize_projection_ty.rs index e50ca485e0a6a..b567895634763 100644 --- a/src/librustc_traits/normalize_projection_ty.rs +++ b/src/librustc_traits/normalize_projection_ty.rs @@ -1,9 +1,12 @@ -use rustc::infer::canonical::{Canonical, QueryResponse}; -use rustc::traits::query::{normalize::NormalizationResult, CanonicalProjectionGoal, NoSolution}; -use rustc::traits::{self, ObligationCause, SelectionContext, TraitEngineExt}; use rustc::ty::query::Providers; use rustc::ty::{ParamEnvAnd, TyCtxt}; use rustc_hir as hir; +use rustc_infer::infer::canonical::{Canonical, QueryResponse}; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits::query::{ + normalize::NormalizationResult, CanonicalProjectionGoal, NoSolution, +}; +use rustc_infer::traits::{self, ObligationCause, SelectionContext, TraitEngineExt}; use rustc_span::DUMMY_SP; use std::sync::atomic::Ordering; diff --git a/src/librustc_traits/type_op.rs b/src/librustc_traits/type_op.rs index 149c42e9c5eb1..4118133806141 100644 --- a/src/librustc_traits/type_op.rs +++ b/src/librustc_traits/type_op.rs @@ -1,13 +1,3 @@ -use rustc::infer::at::ToTrace; -use rustc::infer::canonical::{Canonical, QueryResponse}; -use rustc::infer::InferCtxt; -use rustc::traits::query::type_op::ascribe_user_type::AscribeUserType; -use rustc::traits::query::type_op::eq::Eq; -use rustc::traits::query::type_op::normalize::Normalize; -use rustc::traits::query::type_op::prove_predicate::ProvePredicate; -use rustc::traits::query::type_op::subtype::Subtype; -use rustc::traits::query::{Fallible, NoSolution}; -use rustc::traits::{Normalized, Obligation, ObligationCause, TraitEngine, TraitEngineExt}; use rustc::ty::query::Providers; use rustc::ty::subst::{GenericArg, Subst, UserSelfTy, UserSubsts}; use rustc::ty::{ @@ -15,6 +5,16 @@ use rustc::ty::{ }; use rustc_hir as hir; use rustc_hir::def_id::DefId; +use rustc_infer::infer::at::ToTrace; +use rustc_infer::infer::canonical::{Canonical, QueryResponse}; +use rustc_infer::infer::{InferCtxt, TyCtxtInferExt}; +use rustc_infer::traits::query::type_op::ascribe_user_type::AscribeUserType; +use rustc_infer::traits::query::type_op::eq::Eq; +use rustc_infer::traits::query::type_op::normalize::Normalize; +use rustc_infer::traits::query::type_op::prove_predicate::ProvePredicate; +use rustc_infer::traits::query::type_op::subtype::Subtype; +use rustc_infer::traits::query::{Fallible, NoSolution}; +use rustc_infer::traits::{Normalized, Obligation, ObligationCause, TraitEngine, TraitEngineExt}; use rustc_span::DUMMY_SP; use std::fmt; From bee6a5ac1274201e7da2081a5aff6b3b1f407185 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Mon, 6 Jan 2020 23:31:06 +0100 Subject: [PATCH 07/11] Other crates. --- Cargo.lock | 1 + src/librustc_interface/Cargo.toml | 1 + src/librustc_interface/passes.rs | 2 +- src/librustc_lint/builtin.rs | 2 +- src/librustc_passes/stability.rs | 2 +- src/librustc_ty/common_traits.rs | 3 ++- src/librustc_ty/instance.rs | 2 +- src/librustc_ty/ty.rs | 2 +- src/librustdoc/clean/auto_trait.rs | 2 +- src/librustdoc/clean/blanket_impl.rs | 4 ++-- src/librustdoc/clean/mod.rs | 2 +- src/librustdoc/lib.rs | 1 + 12 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f8b4eca99eefa..7ff9d419c5d75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3818,6 +3818,7 @@ dependencies = [ "rustc_expand", "rustc_hir", "rustc_incremental", + "rustc_infer", "rustc_lint", "rustc_metadata", "rustc_mir", diff --git a/src/librustc_interface/Cargo.toml b/src/librustc_interface/Cargo.toml index de7a9f4f5af1c..b3ac5b0fc548a 100644 --- a/src/librustc_interface/Cargo.toml +++ b/src/librustc_interface/Cargo.toml @@ -31,6 +31,7 @@ rustc_codegen_ssa = { path = "../librustc_codegen_ssa" } rustc_codegen_utils = { path = "../librustc_codegen_utils" } rustc_codegen_llvm = { path = "../librustc_codegen_llvm", optional = true } rustc_hir = { path = "../librustc_hir" } +rustc_infer = { path = "../librustc_infer" } rustc_metadata = { path = "../librustc_metadata" } rustc_mir = { path = "../librustc_mir" } rustc_mir_build = { path = "../librustc_mir_build" } diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs index 6224c4654d695..0b4a337051f01 100644 --- a/src/librustc_interface/passes.rs +++ b/src/librustc_interface/passes.rs @@ -13,7 +13,6 @@ use rustc::session::config::{self, CrateType, Input, OutputFilenames, OutputType use rustc::session::config::{PpMode, PpSourceMode}; use rustc::session::search_paths::PathKind; use rustc::session::Session; -use rustc::traits; use rustc::ty::steal::Steal; use rustc::ty::{self, GlobalCtxt, ResolverOutputs, TyCtxt}; use rustc::util::common::ErrorReported; @@ -26,6 +25,7 @@ use rustc_errors::PResult; use rustc_expand::base::ExtCtxt; use rustc_hir::def_id::{CrateNum, LOCAL_CRATE}; use rustc_hir::Crate; +use rustc_infer::traits; use rustc_lint::LintStore; use rustc_mir as mir; use rustc_mir_build as mir_build; diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index 93fca43d67c1f..6039fef33e613 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -24,7 +24,6 @@ use crate::{EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintContext}; use rustc::hir::map::Map; use rustc::lint::LintDiagnosticBuilder; -use rustc::traits::misc::can_type_implement_copy; use rustc::ty::{self, layout::VariantIdx, Ty, TyCtxt}; use rustc_ast_pretty::pprust::{self, expr_to_string}; use rustc_data_structures::fx::FxHashSet; @@ -36,6 +35,7 @@ use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::{GenericParamKind, PatKind}; use rustc_hir::{HirIdSet, Node}; +use rustc_infer::traits::misc::can_type_implement_copy; use rustc_session::lint::FutureIncompatibleInfo; use rustc_span::edition::Edition; use rustc_span::source_map::Spanned; diff --git a/src/librustc_passes/stability.rs b/src/librustc_passes/stability.rs index 4e2085d07a39a..99f005c29e875 100644 --- a/src/librustc_passes/stability.rs +++ b/src/librustc_passes/stability.rs @@ -7,7 +7,6 @@ use rustc::middle::privacy::AccessLevels; use rustc::middle::stability::{DeprecationEntry, Index}; use rustc::session::parse::feature_err; use rustc::session::Session; -use rustc::traits::misc::can_type_implement_copy; use rustc::ty::query::Providers; use rustc::ty::TyCtxt; use rustc_attr::{self as attr, Stability}; @@ -18,6 +17,7 @@ use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX, LOCAL_CRATE}; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; use rustc_hir::{Generics, HirId, Item, StructField, Variant}; +use rustc_infer::traits::misc::can_type_implement_copy; use rustc_span::symbol::{sym, Symbol}; use rustc_span::Span; use syntax::ast::Attribute; diff --git a/src/librustc_ty/common_traits.rs b/src/librustc_ty/common_traits.rs index 9fe8a19311fb6..e0ce6ad23a650 100644 --- a/src/librustc_ty/common_traits.rs +++ b/src/librustc_ty/common_traits.rs @@ -1,8 +1,9 @@ //! Queries for checking whether a type implements one of a few common traits. use rustc::middle::lang_items; -use rustc::traits; use rustc::ty::{self, Ty, TyCtxt}; +use rustc_infer::infer::TyCtxtInferExt; +use rustc_infer::traits; use rustc_span::DUMMY_SP; fn is_copy_raw<'tcx>(tcx: TyCtxt<'tcx>, query: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> bool { diff --git a/src/librustc_ty/instance.rs b/src/librustc_ty/instance.rs index 66f189a5d979d..484b774add462 100644 --- a/src/librustc_ty/instance.rs +++ b/src/librustc_ty/instance.rs @@ -1,7 +1,7 @@ -use rustc::traits; use rustc::ty::subst::SubstsRef; use rustc::ty::{self, Instance, TyCtxt, TypeFoldable}; use rustc_hir::def_id::DefId; +use rustc_infer::traits; use rustc_target::spec::abi::Abi; use log::debug; diff --git a/src/librustc_ty/ty.rs b/src/librustc_ty/ty.rs index ddb7c8bc79143..f9b2ee3cb8e3f 100644 --- a/src/librustc_ty/ty.rs +++ b/src/librustc_ty/ty.rs @@ -1,11 +1,11 @@ use rustc::hir::map as hir_map; use rustc::session::CrateDisambiguator; -use rustc::traits::{self}; use rustc::ty::subst::Subst; use rustc::ty::{self, ToPredicate, Ty, TyCtxt, WithConstness}; use rustc_data_structures::svh::Svh; use rustc_hir as hir; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; +use rustc_infer::traits; use rustc_span::symbol::Symbol; use rustc_span::Span; diff --git a/src/librustdoc/clean/auto_trait.rs b/src/librustdoc/clean/auto_trait.rs index 8edd0591c8556..289923b45e648 100644 --- a/src/librustdoc/clean/auto_trait.rs +++ b/src/librustdoc/clean/auto_trait.rs @@ -1,7 +1,7 @@ -use rustc::traits::auto_trait::{self, AutoTraitResult}; use rustc::ty::{self, Region, RegionVid, TypeFoldable}; use rustc_data_structures::fx::FxHashSet; use rustc_hir as hir; +use rustc_infer::traits::auto_trait::{self, AutoTraitResult}; use std::fmt::Debug; diff --git a/src/librustdoc/clean/blanket_impl.rs b/src/librustdoc/clean/blanket_impl.rs index 288446b6219ce..f7968bf77226c 100644 --- a/src/librustdoc/clean/blanket_impl.rs +++ b/src/librustdoc/clean/blanket_impl.rs @@ -1,9 +1,9 @@ -use rustc::infer::InferOk; -use rustc::traits; use rustc::ty::subst::Subst; use rustc::ty::{ToPredicate, WithConstness}; use rustc_hir as hir; use rustc_hir::def_id::LOCAL_CRATE; +use rustc_infer::infer::{InferOk, TyCtxtInferExt}; +use rustc_infer::traits; use rustc_span::DUMMY_SP; use super::*; diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 87edc88611f3a..ee432647084da 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -9,7 +9,6 @@ mod simplify; pub mod types; pub mod utils; -use rustc::infer::region_constraints::{Constraint, RegionConstraintData}; use rustc::middle::lang_items; use rustc::middle::resolve_lifetime as rl; use rustc::middle::stability; @@ -22,6 +21,7 @@ use rustc_hir as hir; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX}; use rustc_index::vec::{Idx, IndexVec}; +use rustc_infer::infer::region_constraints::{Constraint, RegionConstraintData}; use rustc_mir::const_eval::is_min_const_fn; use rustc_span::hygiene::MacroKind; use rustc_span::symbol::{kw, sym}; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 4e0a2d9427431..eab88b7165d6b 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -26,6 +26,7 @@ extern crate rustc_expand; extern crate rustc_feature; extern crate rustc_hir; extern crate rustc_index; +extern crate rustc_infer; extern crate rustc_interface; extern crate rustc_lexer; extern crate rustc_lint; From 795673ae2060198cdb09c6ded8d303c244dac6fd Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Tue, 7 Jan 2020 22:07:22 +0100 Subject: [PATCH 08/11] Remove librustc_infer crate re-exports. --- src/librustc_infer/infer/at.rs | 4 ++-- src/librustc_infer/infer/canonical/canonicalizer.rs | 8 ++++---- src/librustc_infer/infer/canonical/query_response.rs | 2 +- src/librustc_infer/infer/canonical/substitute.rs | 6 +++--- src/librustc_infer/infer/combine.rs | 10 +++++----- src/librustc_infer/infer/equate.rs | 8 ++++---- .../infer/error_reporting/need_type_info.rs | 6 +++--- .../nice_region_error/different_lifetimes.rs | 2 +- .../nice_region_error/find_anon_type.rs | 6 +++--- .../infer/error_reporting/nice_region_error/mod.rs | 4 ++-- .../nice_region_error/named_anon_conflict.rs | 2 +- .../nice_region_error/outlives_closure.rs | 4 ++-- .../nice_region_error/placeholder_error.rs | 8 ++++---- .../nice_region_error/static_impl_trait.rs | 4 ++-- .../nice_region_error/trait_impl_difference.rs | 4 ++-- .../infer/error_reporting/nice_region_error/util.rs | 2 +- src/librustc_infer/infer/freshen.rs | 4 ++-- src/librustc_infer/infer/fudge.rs | 4 ++-- src/librustc_infer/infer/glb.rs | 4 ++-- src/librustc_infer/infer/higher_ranked/mod.rs | 4 ++-- src/librustc_infer/infer/lattice.rs | 6 +++--- .../infer/lexical_region_resolve/graphviz.rs | 6 +++--- .../infer/lexical_region_resolve/mod.rs | 12 ++++++------ src/librustc_infer/infer/lub.rs | 4 ++-- src/librustc_infer/infer/mod.rs | 6 +++--- src/librustc_infer/infer/nll_relate/mod.rs | 10 +++++----- src/librustc_infer/infer/opaque_types/mod.rs | 10 +++++----- src/librustc_infer/infer/outlives/env.rs | 4 ++-- src/librustc_infer/infer/outlives/obligations.rs | 6 +++--- src/librustc_infer/infer/outlives/verify.rs | 4 ++-- .../infer/region_constraints/leak_check.rs | 4 ++-- src/librustc_infer/infer/resolve.rs | 4 ++-- src/librustc_infer/infer/sub.rs | 8 ++++---- src/librustc_infer/infer/type_variable.rs | 2 +- src/librustc_infer/lib.rs | 7 ------- src/librustc_infer/traits/auto_trait.rs | 4 ++-- src/librustc_infer/traits/chalk_fulfill.rs | 2 +- src/librustc_infer/traits/codegen/mod.rs | 4 ++-- src/librustc_infer/traits/coherence.rs | 6 +++--- src/librustc_infer/traits/engine.rs | 2 +- .../traits/error_reporting/on_unimplemented.rs | 4 ++-- .../traits/error_reporting/suggestions.rs | 5 +++-- src/librustc_infer/traits/fulfill.rs | 4 ++-- src/librustc_infer/traits/mod.rs | 12 ++++++------ src/librustc_infer/traits/object_safety.rs | 6 +++--- src/librustc_infer/traits/on_unimplemented.rs | 4 ++-- src/librustc_infer/traits/project.rs | 6 +++--- src/librustc_infer/traits/query/normalize.rs | 6 +++--- src/librustc_infer/traits/query/outlives_bounds.rs | 2 +- src/librustc_infer/traits/query/type_op/eq.rs | 2 +- .../traits/query/type_op/implied_outlives_bounds.rs | 2 +- src/librustc_infer/traits/query/type_op/mod.rs | 4 ++-- src/librustc_infer/traits/query/type_op/normalize.rs | 4 ++-- src/librustc_infer/traits/query/type_op/outlives.rs | 2 +- .../traits/query/type_op/prove_predicate.rs | 2 +- src/librustc_infer/traits/query/type_op/subtype.rs | 2 +- src/librustc_infer/traits/select.rs | 12 ++++++------ src/librustc_infer/traits/specialize/mod.rs | 4 ++-- src/librustc_infer/traits/structural_impls.rs | 4 ++-- src/librustc_infer/traits/util.rs | 6 +++--- src/librustc_infer/traits/wf.rs | 6 +++--- 61 files changed, 150 insertions(+), 156 deletions(-) diff --git a/src/librustc_infer/infer/at.rs b/src/librustc_infer/infer/at.rs index c58f1bd87bd8d..156b5a8b0b50b 100644 --- a/src/librustc_infer/infer/at.rs +++ b/src/librustc_infer/infer/at.rs @@ -27,8 +27,8 @@ use super::*; -use crate::ty::relate::{Relate, TypeRelation}; -use crate::ty::Const; +use rustc::ty::relate::{Relate, TypeRelation}; +use rustc::ty::Const; pub struct At<'a, 'tcx> { pub infcx: &'a InferCtxt<'a, 'tcx>, diff --git a/src/librustc_infer/infer/canonical/canonicalizer.rs b/src/librustc_infer/infer/canonical/canonicalizer.rs index 85fafa349151e..ecd7281351def 100644 --- a/src/librustc_infer/infer/canonical/canonicalizer.rs +++ b/src/librustc_infer/infer/canonical/canonicalizer.rs @@ -10,10 +10,10 @@ use crate::infer::canonical::{ OriginalQueryValues, }; use crate::infer::InferCtxt; -use crate::ty::flags::FlagComputation; -use crate::ty::fold::{TypeFoldable, TypeFolder}; -use crate::ty::subst::GenericArg; -use crate::ty::{self, BoundVar, InferConst, List, Ty, TyCtxt, TypeFlags}; +use rustc::ty::flags::FlagComputation; +use rustc::ty::fold::{TypeFoldable, TypeFolder}; +use rustc::ty::subst::GenericArg; +use rustc::ty::{self, BoundVar, InferConst, List, Ty, TyCtxt, TypeFlags}; use std::sync::atomic::Ordering; use rustc_data_structures::fx::FxHashMap; diff --git a/src/librustc_infer/infer/canonical/query_response.rs b/src/librustc_infer/infer/canonical/query_response.rs index 5dc98cb6febbb..f4196e576054a 100644 --- a/src/librustc_infer/infer/canonical/query_response.rs +++ b/src/librustc_infer/infer/canonical/query_response.rs @@ -7,7 +7,6 @@ //! //! [c]: https://rust-lang.github.io/rustc-guide/traits/canonicalization.html -use crate::arena::ArenaAllocatable; use crate::infer::canonical::substitute::{substitute_value, CanonicalExt}; use crate::infer::canonical::{ Canonical, CanonicalVarValues, CanonicalizedQueryResponse, Certainty, OriginalQueryValues, @@ -19,6 +18,7 @@ use crate::infer::{InferCtxt, InferOk, InferResult}; use crate::traits::query::{Fallible, NoSolution}; use crate::traits::TraitEngine; use crate::traits::{Obligation, ObligationCause, PredicateObligation}; +use rustc::arena::ArenaAllocatable; use rustc::ty::fold::TypeFoldable; use rustc::ty::subst::{GenericArg, GenericArgKind}; use rustc::ty::{self, BoundVar, Ty, TyCtxt}; diff --git a/src/librustc_infer/infer/canonical/substitute.rs b/src/librustc_infer/infer/canonical/substitute.rs index 92066048261d6..99ddedfe8815b 100644 --- a/src/librustc_infer/infer/canonical/substitute.rs +++ b/src/librustc_infer/infer/canonical/substitute.rs @@ -7,9 +7,9 @@ //! [c]: https://rust-lang.github.io/rustc-guide/traits/canonicalization.html use crate::infer::canonical::{Canonical, CanonicalVarValues}; -use crate::ty::fold::TypeFoldable; -use crate::ty::subst::GenericArgKind; -use crate::ty::{self, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::subst::GenericArgKind; +use rustc::ty::{self, TyCtxt}; pub(super) trait CanonicalExt<'tcx, V> { /// Instantiate the wrapped value, replacing each canonical value diff --git a/src/librustc_infer/infer/combine.rs b/src/librustc_infer/infer/combine.rs index 9eb961255c295..a10af56a0f0a8 100644 --- a/src/librustc_infer/infer/combine.rs +++ b/src/librustc_infer/infer/combine.rs @@ -33,12 +33,12 @@ use super::unify_key::{ConstVariableOrigin, ConstVariableOriginKind}; use super::{InferCtxt, MiscVariable, TypeTrace}; use crate::traits::{Obligation, PredicateObligations}; -use crate::ty::error::TypeError; -use crate::ty::relate::{self, Relate, RelateResult, TypeRelation}; -use crate::ty::subst::SubstsRef; -use crate::ty::{self, InferConst, Ty, TyCtxt}; -use crate::ty::{IntType, UintType}; +use rustc::ty::error::TypeError; +use rustc::ty::relate::{self, Relate, RelateResult, TypeRelation}; +use rustc::ty::subst::SubstsRef; +use rustc::ty::{self, InferConst, Ty, TyCtxt}; +use rustc::ty::{IntType, UintType}; use rustc_hir::def_id::DefId; use rustc_span::{Span, DUMMY_SP}; use syntax::ast; diff --git a/src/librustc_infer/infer/equate.rs b/src/librustc_infer/infer/equate.rs index 018bbe035431e..c1eec6832b826 100644 --- a/src/librustc_infer/infer/equate.rs +++ b/src/librustc_infer/infer/equate.rs @@ -1,10 +1,10 @@ use super::combine::{CombineFields, RelationDir}; use super::Subtype; -use crate::ty::relate::{self, Relate, RelateResult, TypeRelation}; -use crate::ty::subst::SubstsRef; -use crate::ty::TyVar; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::relate::{self, Relate, RelateResult, TypeRelation}; +use rustc::ty::subst::SubstsRef; +use rustc::ty::TyVar; +use rustc::ty::{self, Ty, TyCtxt}; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/infer/error_reporting/need_type_info.rs b/src/librustc_infer/infer/error_reporting/need_type_info.rs index 0d7fce7eac6c5..c8a465654b63f 100644 --- a/src/librustc_infer/infer/error_reporting/need_type_info.rs +++ b/src/librustc_infer/infer/error_reporting/need_type_info.rs @@ -1,8 +1,8 @@ -use crate::hir::map::Map; use crate::infer::type_variable::TypeVariableOriginKind; use crate::infer::InferCtxt; -use crate::ty::print::Print; -use crate::ty::{self, DefIdTree, Infer, Ty, TyVar}; +use rustc::hir::map::Map; +use rustc::ty::print::Print; +use rustc::ty::{self, DefIdTree, Infer, Ty, TyVar}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir as hir; use rustc_hir::def::{DefKind, Namespace}; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs index 6a9fe19e1ac3d..1a09729ef6443 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs @@ -3,7 +3,7 @@ use crate::infer::error_reporting::nice_region_error::util::AnonymousParamInfo; use crate::infer::error_reporting::nice_region_error::NiceRegionError; -use crate::util::common::ErrorReported; +use rustc::util::common::ErrorReported; use rustc_errors::struct_span_err; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs index 8e2592b531885..2ae7f4cc04f98 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs @@ -1,7 +1,7 @@ -use crate::hir::map::Map; use crate::infer::error_reporting::nice_region_error::NiceRegionError; -use crate::middle::resolve_lifetime as rl; -use crate::ty::{self, Region, TyCtxt}; +use rustc::hir::map::Map; +use rustc::middle::resolve_lifetime as rl; +use rustc::ty::{self, Region, TyCtxt}; use rustc_hir as hir; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; use rustc_hir::Node; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs index b10a60ef6f11f..d8c314a0d2f1f 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs @@ -1,8 +1,8 @@ use crate::infer::lexical_region_resolve::RegionResolutionError; use crate::infer::lexical_region_resolve::RegionResolutionError::*; use crate::infer::InferCtxt; -use crate::ty::{self, TyCtxt}; -use crate::util::common::ErrorReported; +use rustc::ty::{self, TyCtxt}; +use rustc::util::common::ErrorReported; use rustc_errors::DiagnosticBuilder; use rustc_span::source_map::Span; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs index 250dcff372c59..b319755605305 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs @@ -1,7 +1,7 @@ //! Error Reporting for Anonymous Region Lifetime Errors //! where one region is named and the other is anonymous. use crate::infer::error_reporting::nice_region_error::NiceRegionError; -use crate::ty; +use rustc::ty; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder}; use rustc_hir::{FunctionRetTy, TyKind}; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs index af0e5ef8005af..d88e6555af93e 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/outlives_closure.rs @@ -4,8 +4,8 @@ use crate::infer::error_reporting::nice_region_error::NiceRegionError; use crate::infer::lexical_region_resolve::RegionResolutionError::SubSupConflict; use crate::infer::SubregionOrigin; -use crate::ty::RegionKind; -use crate::util::common::ErrorReported; +use rustc::ty::RegionKind; +use rustc::util::common::ErrorReported; use rustc_hir::{Expr, ExprKind::Closure, Node}; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs index 0b0bd61ce771e..57313dbab420f 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs @@ -3,10 +3,10 @@ use crate::infer::lexical_region_resolve::RegionResolutionError; use crate::infer::ValuePairs; use crate::infer::{SubregionOrigin, TypeTrace}; use crate::traits::{ObligationCause, ObligationCauseCode}; -use crate::ty::error::ExpectedFound; -use crate::ty::print::{FmtPrinter, Print, RegionHighlightMode}; -use crate::ty::subst::SubstsRef; -use crate::ty::{self, TyCtxt}; +use rustc::ty::error::ExpectedFound; +use rustc::ty::print::{FmtPrinter, Print, RegionHighlightMode}; +use rustc::ty::subst::SubstsRef; +use rustc::ty::{self, TyCtxt}; use rustc_errors::DiagnosticBuilder; use rustc_hir::def::Namespace; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs index c6fc4cd3c15f7..655e28bbd3d92 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs @@ -3,8 +3,8 @@ use crate::infer::error_reporting::msg_span_from_free_region; use crate::infer::error_reporting::nice_region_error::NiceRegionError; use crate::infer::lexical_region_resolve::RegionResolutionError; -use crate::ty::{BoundRegion, FreeRegion, RegionKind}; -use crate::util::common::ErrorReported; +use rustc::ty::{BoundRegion, FreeRegion, RegionKind}; +use rustc::util::common::ErrorReported; use rustc_errors::Applicability; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs index a33cb511133db..f8cab9f84c841 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs @@ -4,8 +4,8 @@ use crate::infer::error_reporting::nice_region_error::NiceRegionError; use crate::infer::lexical_region_resolve::RegionResolutionError; use crate::infer::{Subtype, ValuePairs}; use crate::traits::ObligationCauseCode::CompareImplMethodObligation; -use crate::ty::Ty; -use crate::util::common::ErrorReported; +use rustc::ty::Ty; +use rustc::util::common::ErrorReported; use rustc_span::Span; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs index 52ccb1454ee2b..4dc9096533b84 100644 --- a/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs +++ b/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs @@ -2,7 +2,7 @@ //! anonymous regions. use crate::infer::error_reporting::nice_region_error::NiceRegionError; -use crate::ty::{self, DefIdTree, Region, Ty}; +use rustc::ty::{self, DefIdTree, Region, Ty}; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_span::Span; diff --git a/src/librustc_infer/infer/freshen.rs b/src/librustc_infer/infer/freshen.rs index 0190989267bb4..63dded3b43d10 100644 --- a/src/librustc_infer/infer/freshen.rs +++ b/src/librustc_infer/infer/freshen.rs @@ -31,8 +31,8 @@ //! variable only once, and it does so as soon as it can, so it is reasonable to ask what the type //! inferencer knows "so far". -use crate::ty::fold::TypeFolder; -use crate::ty::{self, Ty, TyCtxt, TypeFoldable}; +use rustc::ty::fold::TypeFolder; +use rustc::ty::{self, Ty, TyCtxt, TypeFoldable}; use rustc_data_structures::fx::FxHashMap; diff --git a/src/librustc_infer/infer/fudge.rs b/src/librustc_infer/infer/fudge.rs index d0b7bb32b9815..16bf0f3d1c682 100644 --- a/src/librustc_infer/infer/fudge.rs +++ b/src/librustc_infer/infer/fudge.rs @@ -1,5 +1,5 @@ -use crate::ty::fold::{TypeFoldable, TypeFolder}; -use crate::ty::{self, ConstVid, FloatVid, IntVid, RegionVid, Ty, TyCtxt, TyVid}; +use rustc::ty::fold::{TypeFoldable, TypeFolder}; +use rustc::ty::{self, ConstVid, FloatVid, IntVid, RegionVid, Ty, TyCtxt, TyVid}; use super::type_variable::TypeVariableOrigin; use super::InferCtxt; diff --git a/src/librustc_infer/infer/glb.rs b/src/librustc_infer/infer/glb.rs index 6ef92132bc703..2634d9cac3e99 100644 --- a/src/librustc_infer/infer/glb.rs +++ b/src/librustc_infer/infer/glb.rs @@ -4,8 +4,8 @@ use super::InferCtxt; use super::Subtype; use crate::traits::ObligationCause; -use crate::ty::relate::{Relate, RelateResult, TypeRelation}; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; +use rustc::ty::{self, Ty, TyCtxt}; /// "Greatest lower bound" (common subtype) pub struct Glb<'combine, 'infcx, 'tcx> { diff --git a/src/librustc_infer/infer/higher_ranked/mod.rs b/src/librustc_infer/infer/higher_ranked/mod.rs index 1b0f399ca3392..33781188a9550 100644 --- a/src/librustc_infer/infer/higher_ranked/mod.rs +++ b/src/librustc_infer/infer/higher_ranked/mod.rs @@ -5,8 +5,8 @@ use super::combine::CombineFields; use super::{HigherRankedType, InferCtxt, PlaceholderMap}; use crate::infer::CombinedSnapshot; -use crate::ty::relate::{Relate, RelateResult, TypeRelation}; -use crate::ty::{self, Binder, TypeFoldable}; +use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; +use rustc::ty::{self, Binder, TypeFoldable}; impl<'a, 'tcx> CombineFields<'a, 'tcx> { pub fn higher_ranked_sub( diff --git a/src/librustc_infer/infer/lattice.rs b/src/librustc_infer/infer/lattice.rs index df475af1151aa..42f9b3ab7709e 100644 --- a/src/librustc_infer/infer/lattice.rs +++ b/src/librustc_infer/infer/lattice.rs @@ -23,9 +23,9 @@ use super::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use super::InferCtxt; use crate::traits::ObligationCause; -use crate::ty::relate::{RelateResult, TypeRelation}; -use crate::ty::TyVar; -use crate::ty::{self, Ty}; +use rustc::ty::relate::{RelateResult, TypeRelation}; +use rustc::ty::TyVar; +use rustc::ty::{self, Ty}; pub trait LatticeDir<'f, 'tcx>: TypeRelation<'tcx> { fn infcx(&self) -> &'f InferCtxt<'f, 'tcx>; diff --git a/src/librustc_infer/infer/lexical_region_resolve/graphviz.rs b/src/librustc_infer/infer/lexical_region_resolve/graphviz.rs index a930e707c5c15..eb52f10e40893 100644 --- a/src/librustc_infer/infer/lexical_region_resolve/graphviz.rs +++ b/src/librustc_infer/infer/lexical_region_resolve/graphviz.rs @@ -11,9 +11,9 @@ use graphviz as dot; use super::Constraint; use crate::infer::region_constraints::RegionConstraintData; use crate::infer::SubregionOrigin; -use crate::middle::free_region::RegionRelations; -use crate::middle::region; -use crate::ty; +use rustc::middle::free_region::RegionRelations; +use rustc::middle::region; +use rustc::ty; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_hir::def_id::DefIndex; diff --git a/src/librustc_infer/infer/lexical_region_resolve/mod.rs b/src/librustc_infer/infer/lexical_region_resolve/mod.rs index 1b204e5ba6cb3..0b5536219e566 100644 --- a/src/librustc_infer/infer/lexical_region_resolve/mod.rs +++ b/src/librustc_infer/infer/lexical_region_resolve/mod.rs @@ -8,12 +8,12 @@ use crate::infer::region_constraints::VarInfos; use crate::infer::region_constraints::VerifyBound; use crate::infer::RegionVariableOrigin; use crate::infer::SubregionOrigin; -use crate::middle::free_region::RegionRelations; -use crate::ty::fold::TypeFoldable; -use crate::ty::{self, Ty, TyCtxt}; -use crate::ty::{ReEarlyBound, ReEmpty, ReErased, ReFree, ReStatic}; -use crate::ty::{ReLateBound, RePlaceholder, ReScope, ReVar}; -use crate::ty::{Region, RegionVid}; +use rustc::middle::free_region::RegionRelations; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::{self, Ty, TyCtxt}; +use rustc::ty::{ReEarlyBound, ReEmpty, ReErased, ReFree, ReStatic}; +use rustc::ty::{ReLateBound, RePlaceholder, ReScope, ReVar}; +use rustc::ty::{Region, RegionVid}; use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::graph::implementation::{ Direction, Graph, NodeIndex, INCOMING, OUTGOING, diff --git a/src/librustc_infer/infer/lub.rs b/src/librustc_infer/infer/lub.rs index 6a699f803c7b8..b6d20ba1f3f12 100644 --- a/src/librustc_infer/infer/lub.rs +++ b/src/librustc_infer/infer/lub.rs @@ -4,8 +4,8 @@ use super::InferCtxt; use super::Subtype; use crate::traits::ObligationCause; -use crate::ty::relate::{Relate, RelateResult, TypeRelation}; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::relate::{Relate, RelateResult, TypeRelation}; +use rustc::ty::{self, Ty, TyCtxt}; /// "Least upper bound" (common supertype) pub struct Lub<'combine, 'infcx, 'tcx> { diff --git a/src/librustc_infer/infer/mod.rs b/src/librustc_infer/infer/mod.rs index b7f83625757ff..c9e58c2aa7347 100644 --- a/src/librustc_infer/infer/mod.rs +++ b/src/librustc_infer/infer/mod.rs @@ -5,7 +5,7 @@ pub use self::LateBoundRegionConversionTime::*; pub use self::RegionVariableOrigin::*; pub use self::SubregionOrigin::*; pub use self::ValuePairs::*; -pub use crate::ty::IntVarValue; +pub use rustc::ty::IntVarValue; use crate::traits::{self, ObligationCause, PredicateObligations, TraitEngine}; @@ -650,8 +650,8 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> { } pub fn type_is_unconstrained_numeric(&'a self, ty: Ty<'_>) -> UnconstrainedNumeric { - use crate::ty::error::UnconstrainedNumeric::Neither; - use crate::ty::error::UnconstrainedNumeric::{UnconstrainedFloat, UnconstrainedInt}; + use rustc::ty::error::UnconstrainedNumeric::Neither; + use rustc::ty::error::UnconstrainedNumeric::{UnconstrainedFloat, UnconstrainedInt}; match ty.kind { ty::Infer(ty::IntVar(vid)) => { if self.inner.borrow_mut().int_unification_table.probe_value(vid).is_some() { diff --git a/src/librustc_infer/infer/nll_relate/mod.rs b/src/librustc_infer/infer/nll_relate/mod.rs index 77e20e6ad8ff2..e35b8f9c8ecd4 100644 --- a/src/librustc_infer/infer/nll_relate/mod.rs +++ b/src/librustc_infer/infer/nll_relate/mod.rs @@ -24,11 +24,11 @@ use crate::infer::InferCtxt; use crate::infer::{ConstVarValue, ConstVariableValue}; use crate::traits::DomainGoal; -use crate::ty::error::TypeError; -use crate::ty::fold::{TypeFoldable, TypeVisitor}; -use crate::ty::relate::{self, Relate, RelateResult, TypeRelation}; -use crate::ty::subst::GenericArg; -use crate::ty::{self, InferConst, Ty, TyCtxt}; +use rustc::ty::error::TypeError; +use rustc::ty::fold::{TypeFoldable, TypeVisitor}; +use rustc::ty::relate::{self, Relate, RelateResult, TypeRelation}; +use rustc::ty::subst::GenericArg; +use rustc::ty::{self, InferConst, Ty, TyCtxt}; use rustc_data_structures::fx::FxHashMap; use std::fmt::Debug; diff --git a/src/librustc_infer/infer/opaque_types/mod.rs b/src/librustc_infer/infer/opaque_types/mod.rs index 5ecd03e41234e..06d45690e4134 100644 --- a/src/librustc_infer/infer/opaque_types/mod.rs +++ b/src/librustc_infer/infer/opaque_types/mod.rs @@ -1,12 +1,12 @@ use crate::infer::error_reporting::{note_and_explain_free_region, note_and_explain_region}; use crate::infer::{self, InferCtxt, InferOk, TypeVariableOrigin, TypeVariableOriginKind}; -use crate::middle::region; use crate::traits::{self, PredicateObligation}; -use crate::ty::fold::{BottomUpFolder, TypeFoldable, TypeFolder, TypeVisitor}; -use crate::ty::free_region_map::FreeRegionRelations; -use crate::ty::subst::{GenericArg, GenericArgKind, InternalSubsts, SubstsRef}; -use crate::ty::{self, GenericParamDefKind, Ty, TyCtxt}; +use rustc::middle::region; use rustc::session::config::nightly_options; +use rustc::ty::fold::{BottomUpFolder, TypeFoldable, TypeFolder, TypeVisitor}; +use rustc::ty::free_region_map::FreeRegionRelations; +use rustc::ty::subst::{GenericArg, GenericArgKind, InternalSubsts, SubstsRef}; +use rustc::ty::{self, GenericParamDefKind, Ty, TyCtxt}; use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::sync::Lrc; use rustc_errors::{struct_span_err, DiagnosticBuilder}; diff --git a/src/librustc_infer/infer/outlives/env.rs b/src/librustc_infer/infer/outlives/env.rs index ee2e629c2fcd2..aac6c7640ca6b 100644 --- a/src/librustc_infer/infer/outlives/env.rs +++ b/src/librustc_infer/infer/outlives/env.rs @@ -1,7 +1,7 @@ use crate::infer::{GenericKind, InferCtxt}; use crate::traits::query::outlives_bounds::{self, OutlivesBound}; -use crate::ty::free_region_map::FreeRegionMap; -use crate::ty::{self, Ty}; +use rustc::ty::free_region_map::FreeRegionMap; +use rustc::ty::{self, Ty}; use rustc_data_structures::fx::FxHashMap; use rustc_hir as hir; use rustc_span::Span; diff --git a/src/librustc_infer/infer/outlives/obligations.rs b/src/librustc_infer/infer/outlives/obligations.rs index 88733f1901a5b..e3790b027348e 100644 --- a/src/librustc_infer/infer/outlives/obligations.rs +++ b/src/librustc_infer/infer/outlives/obligations.rs @@ -63,9 +63,9 @@ use crate::infer::outlives::env::RegionBoundPairs; use crate::infer::outlives::verify::VerifyBoundCx; use crate::infer::{self, GenericKind, InferCtxt, RegionObligation, SubregionOrigin, VerifyBound}; use crate::traits::ObligationCause; -use crate::ty::outlives::Component; -use crate::ty::subst::GenericArgKind; -use crate::ty::{self, Region, Ty, TyCtxt, TypeFoldable}; +use rustc::ty::outlives::Component; +use rustc::ty::subst::GenericArgKind; +use rustc::ty::{self, Region, Ty, TyCtxt, TypeFoldable}; use rustc_data_structures::fx::FxHashMap; use rustc_hir as hir; diff --git a/src/librustc_infer/infer/outlives/verify.rs b/src/librustc_infer/infer/outlives/verify.rs index 4a05bfc64b177..be6f868430d4c 100644 --- a/src/librustc_infer/infer/outlives/verify.rs +++ b/src/librustc_infer/infer/outlives/verify.rs @@ -1,8 +1,8 @@ use crate::infer::outlives::env::RegionBoundPairs; use crate::infer::{GenericKind, VerifyBound}; use crate::traits; -use crate::ty::subst::{InternalSubsts, Subst}; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::subst::{InternalSubsts, Subst}; +use rustc::ty::{self, Ty, TyCtxt}; use rustc_data_structures::captures::Captures; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/infer/region_constraints/leak_check.rs b/src/librustc_infer/infer/region_constraints/leak_check.rs index 29290cef2d288..74ffdc7a4f087 100644 --- a/src/librustc_infer/infer/region_constraints/leak_check.rs +++ b/src/librustc_infer/infer/region_constraints/leak_check.rs @@ -1,7 +1,7 @@ use super::*; use crate::infer::{CombinedSnapshot, PlaceholderMap}; -use crate::ty::error::TypeError; -use crate::ty::relate::RelateResult; +use rustc::ty::error::TypeError; +use rustc::ty::relate::RelateResult; impl<'tcx> RegionConstraintCollector<'tcx> { /// Searches region constraints created since `snapshot` that diff --git a/src/librustc_infer/infer/resolve.rs b/src/librustc_infer/infer/resolve.rs index c9acd1cf4a1b3..3510b927d9604 100644 --- a/src/librustc_infer/infer/resolve.rs +++ b/src/librustc_infer/infer/resolve.rs @@ -1,7 +1,7 @@ use super::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use super::{FixupError, FixupResult, InferCtxt, Span}; -use crate::ty::fold::{TypeFolder, TypeVisitor}; -use crate::ty::{self, Const, InferConst, Ty, TyCtxt, TypeFoldable}; +use rustc::ty::fold::{TypeFolder, TypeVisitor}; +use rustc::ty::{self, Const, InferConst, Ty, TyCtxt, TypeFoldable}; /////////////////////////////////////////////////////////////////////////// // OPPORTUNISTIC VAR RESOLVER diff --git a/src/librustc_infer/infer/sub.rs b/src/librustc_infer/infer/sub.rs index ef4903358d5c9..2b770ced42a55 100644 --- a/src/librustc_infer/infer/sub.rs +++ b/src/librustc_infer/infer/sub.rs @@ -2,10 +2,10 @@ use super::combine::{CombineFields, RelationDir}; use super::SubregionOrigin; use crate::traits::Obligation; -use crate::ty::fold::TypeFoldable; -use crate::ty::relate::{Cause, Relate, RelateResult, TypeRelation}; -use crate::ty::TyVar; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::relate::{Cause, Relate, RelateResult, TypeRelation}; +use rustc::ty::TyVar; +use rustc::ty::{self, Ty, TyCtxt}; use std::mem; /// Ensures `a` is made a subtype of `b`. Returns `a` on success. diff --git a/src/librustc_infer/infer/type_variable.rs b/src/librustc_infer/infer/type_variable.rs index f391a054a2a5d..b59c560669181 100644 --- a/src/librustc_infer/infer/type_variable.rs +++ b/src/librustc_infer/infer/type_variable.rs @@ -1,4 +1,4 @@ -use crate::ty::{self, Ty, TyVid}; +use rustc::ty::{self, Ty, TyVid}; use rustc_hir::def_id::DefId; use rustc_span::symbol::Symbol; use rustc_span::Span; diff --git a/src/librustc_infer/lib.rs b/src/librustc_infer/lib.rs index d64c9e2f90ba2..d6619e5f7f83a 100644 --- a/src/librustc_infer/lib.rs +++ b/src/librustc_infer/lib.rs @@ -56,12 +56,5 @@ extern crate log; #[macro_use] extern crate rustc; -use rustc::arena; -use rustc::dep_graph; -use rustc::hir; pub mod infer; -use rustc::middle; -pub use rustc_session as session; pub mod traits; -use rustc::ty; -use rustc::util; diff --git a/src/librustc_infer/traits/auto_trait.rs b/src/librustc_infer/traits/auto_trait.rs index 3ab87ce8eb4a3..1a4f899ac8592 100644 --- a/src/librustc_infer/traits/auto_trait.rs +++ b/src/librustc_infer/traits/auto_trait.rs @@ -5,8 +5,8 @@ use super::*; use crate::infer::region_constraints::{Constraint, RegionConstraintData}; use crate::infer::InferCtxt; -use crate::ty::fold::TypeFolder; -use crate::ty::{Region, RegionVid}; +use rustc::ty::fold::TypeFolder; +use rustc::ty::{Region, RegionVid}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; diff --git a/src/librustc_infer/traits/chalk_fulfill.rs b/src/librustc_infer/traits/chalk_fulfill.rs index b28523d955da7..82fa683a290c5 100644 --- a/src/librustc_infer/traits/chalk_fulfill.rs +++ b/src/librustc_infer/traits/chalk_fulfill.rs @@ -5,7 +5,7 @@ use crate::traits::{ Environment, FulfillmentError, FulfillmentErrorCode, InEnvironment, ObligationCause, PredicateObligation, SelectionError, TraitEngine, }; -use crate::ty::{self, Ty}; +use rustc::ty::{self, Ty}; use rustc_data_structures::fx::FxHashSet; pub use rustc::traits::ChalkCanonicalGoal as CanonicalGoal; diff --git a/src/librustc_infer/traits/codegen/mod.rs b/src/librustc_infer/traits/codegen/mod.rs index 4f6c9428fc218..bd4129a4de76c 100644 --- a/src/librustc_infer/traits/codegen/mod.rs +++ b/src/librustc_infer/traits/codegen/mod.rs @@ -7,8 +7,8 @@ use crate::infer::{InferCtxt, TyCtxtInferExt}; use crate::traits::{ FulfillmentContext, Obligation, ObligationCause, SelectionContext, TraitEngine, Vtable, }; -use crate::ty::fold::TypeFoldable; -use crate::ty::{self, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::{self, TyCtxt}; /// Attempts to resolve an obligation to a vtable. The result is /// a shallow vtable resolution, meaning that we do not diff --git a/src/librustc_infer/traits/coherence.rs b/src/librustc_infer/traits/coherence.rs index cafdb0353d56e..43c0fbc27e620 100644 --- a/src/librustc_infer/traits/coherence.rs +++ b/src/librustc_infer/traits/coherence.rs @@ -8,9 +8,9 @@ use crate::infer::{CombinedSnapshot, InferOk, TyCtxtInferExt}; use crate::traits::select::IntercrateAmbiguityCause; use crate::traits::SkipLeakCheck; use crate::traits::{self, Normalized, Obligation, ObligationCause, SelectionContext}; -use crate::ty::fold::TypeFoldable; -use crate::ty::subst::Subst; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::subst::Subst; +use rustc::ty::{self, Ty, TyCtxt}; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_span::symbol::sym; use rustc_span::DUMMY_SP; diff --git a/src/librustc_infer/traits/engine.rs b/src/librustc_infer/traits/engine.rs index 84bfc86e6a94e..ba1443796162f 100644 --- a/src/librustc_infer/traits/engine.rs +++ b/src/librustc_infer/traits/engine.rs @@ -1,6 +1,6 @@ use crate::infer::InferCtxt; use crate::traits::Obligation; -use crate::ty::{self, ToPredicate, Ty, TyCtxt, WithConstness}; +use rustc::ty::{self, ToPredicate, Ty, TyCtxt, WithConstness}; use rustc_hir::def_id::DefId; use super::{ChalkFulfillmentContext, FulfillmentContext, FulfillmentError}; diff --git a/src/librustc_infer/traits/error_reporting/on_unimplemented.rs b/src/librustc_infer/traits/error_reporting/on_unimplemented.rs index ab2d74b1c8deb..87c1107bd427d 100644 --- a/src/librustc_infer/traits/error_reporting/on_unimplemented.rs +++ b/src/librustc_infer/traits/error_reporting/on_unimplemented.rs @@ -2,8 +2,8 @@ use super::{ ObligationCauseCode, OnUnimplementedDirective, OnUnimplementedNote, PredicateObligation, }; use crate::infer::InferCtxt; -use crate::ty::subst::Subst; -use crate::ty::{self, GenericParamDefKind}; +use rustc::ty::subst::Subst; +use rustc::ty::{self, GenericParamDefKind}; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_span::symbol::sym; diff --git a/src/librustc_infer/traits/error_reporting/suggestions.rs b/src/librustc_infer/traits/error_reporting/suggestions.rs index 82b73518d09a8..4a78bcf4a8778 100644 --- a/src/librustc_infer/traits/error_reporting/suggestions.rs +++ b/src/librustc_infer/traits/error_reporting/suggestions.rs @@ -6,8 +6,9 @@ use super::{ use crate::infer::InferCtxt; use crate::traits::error_reporting::suggest_constraining_type_param; use crate::traits::object_safety::object_safety_violations; -use crate::ty::TypeckTables; -use crate::ty::{self, AdtKind, DefIdTree, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; + +use rustc::ty::TypeckTables; +use rustc::ty::{self, AdtKind, DefIdTree, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc_errors::{ error_code, pluralize, struct_span_err, Applicability, DiagnosticBuilder, Style, }; diff --git a/src/librustc_infer/traits/fulfill.rs b/src/librustc_infer/traits/fulfill.rs index 07352a3f9478a..6055b0e74df54 100644 --- a/src/librustc_infer/traits/fulfill.rs +++ b/src/librustc_infer/traits/fulfill.rs @@ -1,6 +1,6 @@ use crate::infer::{InferCtxt, ShallowResolver}; -use crate::ty::error::ExpectedFound; -use crate::ty::{self, ToPolyTraitRef, Ty, TypeFoldable}; +use rustc::ty::error::ExpectedFound; +use rustc::ty::{self, ToPolyTraitRef, Ty, TypeFoldable}; use rustc_data_structures::obligation_forest::ProcessResult; use rustc_data_structures::obligation_forest::{DoCompleted, Error, ForestObligation}; use rustc_data_structures::obligation_forest::{ObligationForest, ObligationProcessor}; diff --git a/src/librustc_infer/traits/mod.rs b/src/librustc_infer/traits/mod.rs index 6226d38f88eb8..06c6d65181348 100644 --- a/src/librustc_infer/traits/mod.rs +++ b/src/librustc_infer/traits/mod.rs @@ -24,12 +24,12 @@ pub mod wf; use crate::infer::outlives::env::OutlivesEnvironment; use crate::infer::{InferCtxt, SuppressRegionErrors, TyCtxtInferExt}; -use crate::middle::region; -use crate::ty::error::{ExpectedFound, TypeError}; -use crate::ty::fold::TypeFoldable; -use crate::ty::subst::{InternalSubsts, SubstsRef}; -use crate::ty::{self, GenericParamDefKind, ToPredicate, Ty, TyCtxt, WithConstness}; -use crate::util::common::ErrorReported; +use rustc::middle::region; +use rustc::ty::error::{ExpectedFound, TypeError}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::subst::{InternalSubsts, SubstsRef}; +use rustc::ty::{self, GenericParamDefKind, ToPredicate, Ty, TyCtxt, WithConstness}; +use rustc::util::common::ErrorReported; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_span::{Span, DUMMY_SP}; diff --git a/src/librustc_infer/traits/object_safety.rs b/src/librustc_infer/traits/object_safety.rs index e35b03a343167..d36d66e4e2555 100644 --- a/src/librustc_infer/traits/object_safety.rs +++ b/src/librustc_infer/traits/object_safety.rs @@ -12,8 +12,8 @@ use super::elaborate_predicates; use crate::infer::TyCtxtInferExt; use crate::traits::{self, Obligation, ObligationCause}; -use crate::ty::subst::{InternalSubsts, Subst}; -use crate::ty::{self, Predicate, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; +use rustc::ty::subst::{InternalSubsts, Subst}; +use rustc::ty::{self, Predicate, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc_errors::Applicability; use rustc_hir as hir; use rustc_hir::def_id::DefId; @@ -553,7 +553,7 @@ fn virtual_call_violation_for_method<'tcx>( } else { // Do sanity check to make sure the receiver actually has the layout of a pointer. - use crate::ty::layout::Abi; + use rustc::ty::layout::Abi; let param_env = tcx.param_env(method.def_id); diff --git a/src/librustc_infer/traits/on_unimplemented.rs b/src/librustc_infer/traits/on_unimplemented.rs index ca824d40e381a..41201c1c7ae7c 100644 --- a/src/librustc_infer/traits/on_unimplemented.rs +++ b/src/librustc_infer/traits/on_unimplemented.rs @@ -1,7 +1,7 @@ use fmt_macros::{Parser, Piece, Position}; -use crate::ty::{self, GenericParamDefKind, TyCtxt}; -use crate::util::common::ErrorReported; +use rustc::ty::{self, GenericParamDefKind, TyCtxt}; +use rustc::util::common::ErrorReported; use rustc_attr as attr; use rustc_data_structures::fx::FxHashMap; diff --git a/src/librustc_infer/traits/project.rs b/src/librustc_infer/traits/project.rs index 5d9f4ddfd167e..a7c3e9110abd2 100644 --- a/src/librustc_infer/traits/project.rs +++ b/src/librustc_infer/traits/project.rs @@ -14,9 +14,9 @@ use super::{VtableClosureData, VtableFnPointerData, VtableGeneratorData, VtableI use crate::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use crate::infer::{InferCtxt, InferOk, LateBoundRegionConversionTime}; -use crate::ty::fold::{TypeFoldable, TypeFolder}; -use crate::ty::subst::{InternalSubsts, Subst}; -use crate::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, WithConstness}; +use rustc::ty::fold::{TypeFoldable, TypeFolder}; +use rustc::ty::subst::{InternalSubsts, Subst}; +use rustc::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, WithConstness}; use rustc_data_structures::snapshot_map::{Snapshot, SnapshotMap}; use rustc_hir::def_id::DefId; use rustc_span::symbol::sym; diff --git a/src/librustc_infer/traits/query/normalize.rs b/src/librustc_infer/traits/query/normalize.rs index 737b4fc6bb9dc..4577e3d2e1cf8 100644 --- a/src/librustc_infer/traits/query/normalize.rs +++ b/src/librustc_infer/traits/query/normalize.rs @@ -7,9 +7,9 @@ use crate::infer::canonical::OriginalQueryValues; use crate::infer::{InferCtxt, InferOk}; use crate::traits::project::Normalized; use crate::traits::{Obligation, ObligationCause, PredicateObligation, Reveal}; -use crate::ty::fold::{TypeFoldable, TypeFolder}; -use crate::ty::subst::Subst; -use crate::ty::{self, Ty, TyCtxt}; +use rustc::ty::fold::{TypeFoldable, TypeFolder}; +use rustc::ty::subst::Subst; +use rustc::ty::{self, Ty, TyCtxt}; use super::NoSolution; diff --git a/src/librustc_infer/traits/query/outlives_bounds.rs b/src/librustc_infer/traits/query/outlives_bounds.rs index 594faffa5f3aa..eb32ebf5c4db4 100644 --- a/src/librustc_infer/traits/query/outlives_bounds.rs +++ b/src/librustc_infer/traits/query/outlives_bounds.rs @@ -2,7 +2,7 @@ use crate::infer::canonical::OriginalQueryValues; use crate::infer::InferCtxt; use crate::traits::query::NoSolution; use crate::traits::{FulfillmentContext, ObligationCause, TraitEngine, TraitEngineExt}; -use crate::ty::{self, Ty}; +use rustc::ty::{self, Ty}; use rustc_hir as hir; use rustc_span::source_map::Span; diff --git a/src/librustc_infer/traits/query/type_op/eq.rs b/src/librustc_infer/traits/query/type_op/eq.rs index 1de13430d4623..3b6fbc7d8dd72 100644 --- a/src/librustc_infer/traits/query/type_op/eq.rs +++ b/src/librustc_infer/traits/query/type_op/eq.rs @@ -1,6 +1,6 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::Fallible; -use crate::ty::{ParamEnvAnd, TyCtxt}; +use rustc::ty::{ParamEnvAnd, TyCtxt}; pub use rustc::traits::query::type_op::Eq; diff --git a/src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs b/src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs index 6f45d76a8e9d7..3dad546872e5a 100644 --- a/src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs +++ b/src/librustc_infer/traits/query/type_op/implied_outlives_bounds.rs @@ -1,7 +1,7 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::outlives_bounds::OutlivesBound; use crate::traits::query::Fallible; -use crate::ty::{ParamEnvAnd, Ty, TyCtxt}; +use rustc::ty::{ParamEnvAnd, Ty, TyCtxt}; #[derive(Clone, Debug, HashStable, TypeFoldable, Lift)] pub struct ImpliedOutlivesBounds<'tcx> { diff --git a/src/librustc_infer/traits/query/type_op/mod.rs b/src/librustc_infer/traits/query/type_op/mod.rs index 5f131e9705605..eb4c0a029e1b9 100644 --- a/src/librustc_infer/traits/query/type_op/mod.rs +++ b/src/librustc_infer/traits/query/type_op/mod.rs @@ -4,8 +4,8 @@ use crate::infer::canonical::{ use crate::infer::{InferCtxt, InferOk}; use crate::traits::query::Fallible; use crate::traits::ObligationCause; -use crate::ty::fold::TypeFoldable; -use crate::ty::{ParamEnvAnd, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::{ParamEnvAnd, TyCtxt}; use std::fmt; use std::rc::Rc; diff --git a/src/librustc_infer/traits/query/type_op/normalize.rs b/src/librustc_infer/traits/query/type_op/normalize.rs index b1e0e29620df6..d2eec53bf80fe 100644 --- a/src/librustc_infer/traits/query/type_op/normalize.rs +++ b/src/librustc_infer/traits/query/type_op/normalize.rs @@ -1,7 +1,7 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::Fallible; -use crate::ty::fold::TypeFoldable; -use crate::ty::{self, Lift, ParamEnvAnd, Ty, TyCtxt}; +use rustc::ty::fold::TypeFoldable; +use rustc::ty::{self, Lift, ParamEnvAnd, Ty, TyCtxt}; use std::fmt; pub use rustc::traits::query::type_op::Normalize; diff --git a/src/librustc_infer/traits/query/type_op/outlives.rs b/src/librustc_infer/traits/query/type_op/outlives.rs index 35afa63796883..b94948cffd68f 100644 --- a/src/librustc_infer/traits/query/type_op/outlives.rs +++ b/src/librustc_infer/traits/query/type_op/outlives.rs @@ -1,7 +1,7 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::dropck_outlives::{trivial_dropck_outlives, DropckOutlivesResult}; use crate::traits::query::Fallible; -use crate::ty::{ParamEnvAnd, Ty, TyCtxt}; +use rustc::ty::{ParamEnvAnd, Ty, TyCtxt}; #[derive(Copy, Clone, Debug, HashStable, TypeFoldable, Lift)] pub struct DropckOutlives<'tcx> { diff --git a/src/librustc_infer/traits/query/type_op/prove_predicate.rs b/src/librustc_infer/traits/query/type_op/prove_predicate.rs index 92cfb82e27e95..8c68f7db9e5bc 100644 --- a/src/librustc_infer/traits/query/type_op/prove_predicate.rs +++ b/src/librustc_infer/traits/query/type_op/prove_predicate.rs @@ -1,6 +1,6 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::Fallible; -use crate::ty::{ParamEnvAnd, Predicate, TyCtxt}; +use rustc::ty::{ParamEnvAnd, Predicate, TyCtxt}; pub use rustc::traits::query::type_op::ProvePredicate; diff --git a/src/librustc_infer/traits/query/type_op/subtype.rs b/src/librustc_infer/traits/query/type_op/subtype.rs index 2877a74aaff01..053411b0cac2e 100644 --- a/src/librustc_infer/traits/query/type_op/subtype.rs +++ b/src/librustc_infer/traits/query/type_op/subtype.rs @@ -1,6 +1,6 @@ use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse}; use crate::traits::query::Fallible; -use crate::ty::{ParamEnvAnd, TyCtxt}; +use rustc::ty::{ParamEnvAnd, TyCtxt}; pub use rustc::traits::query::type_op::Subtype; diff --git a/src/librustc_infer/traits/select.rs b/src/librustc_infer/traits/select.rs index 9abf030ca382d..371268b5ee471 100644 --- a/src/librustc_infer/traits/select.rs +++ b/src/librustc_infer/traits/select.rs @@ -33,13 +33,13 @@ use super::{ VtableGeneratorData, VtableImplData, VtableObjectData, VtableTraitAliasData, }; -use crate::dep_graph::{DepKind, DepNodeIndex}; use crate::infer::{CombinedSnapshot, InferCtxt, InferOk, PlaceholderMap, TypeFreshener}; -use crate::middle::lang_items; -use crate::ty::fast_reject; -use crate::ty::relate::TypeRelation; -use crate::ty::subst::{Subst, SubstsRef}; -use crate::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; +use rustc::dep_graph::{DepKind, DepNodeIndex}; +use rustc::middle::lang_items; +use rustc::ty::fast_reject; +use rustc::ty::relate::TypeRelation; +use rustc::ty::subst::{Subst, SubstsRef}; +use rustc::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_hir as hir; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/traits/specialize/mod.rs b/src/librustc_infer/traits/specialize/mod.rs index d300b6f6dd4cc..ee1c737c208f7 100644 --- a/src/librustc_infer/traits/specialize/mod.rs +++ b/src/librustc_infer/traits/specialize/mod.rs @@ -15,9 +15,9 @@ use specialization_graph::GraphExt; use crate::infer::{InferCtxt, InferOk, TyCtxtInferExt}; use crate::traits::select::IntercrateAmbiguityCause; use crate::traits::{self, coherence, FutureCompatOverlapErrorKind, ObligationCause, TraitEngine}; -use crate::ty::subst::{InternalSubsts, Subst, SubstsRef}; -use crate::ty::{self, TyCtxt, TypeFoldable}; use rustc::lint::LintDiagnosticBuilder; +use rustc::ty::subst::{InternalSubsts, Subst, SubstsRef}; +use rustc::ty::{self, TyCtxt, TypeFoldable}; use rustc_data_structures::fx::FxHashSet; use rustc_errors::struct_span_err; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/traits/structural_impls.rs b/src/librustc_infer/traits/structural_impls.rs index 80731c7b1892f..6630f664f96e4 100644 --- a/src/librustc_infer/traits/structural_impls.rs +++ b/src/librustc_infer/traits/structural_impls.rs @@ -1,7 +1,7 @@ use crate::traits; use crate::traits::project::Normalized; -use crate::ty; -use crate::ty::fold::{TypeFoldable, TypeFolder, TypeVisitor}; +use rustc::ty; +use rustc::ty::fold::{TypeFoldable, TypeFolder, TypeVisitor}; use std::fmt; diff --git a/src/librustc_infer/traits/util.rs b/src/librustc_infer/traits/util.rs index 1c0638d4528fa..c1612a3b9a749 100644 --- a/src/librustc_infer/traits/util.rs +++ b/src/librustc_infer/traits/util.rs @@ -3,9 +3,9 @@ use rustc_span::Span; use smallvec::smallvec; use smallvec::SmallVec; -use crate::ty::outlives::Component; -use crate::ty::subst::{GenericArg, Subst, SubstsRef}; -use crate::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, WithConstness}; +use rustc::ty::outlives::Component; +use rustc::ty::subst::{GenericArg, Subst, SubstsRef}; +use rustc::ty::{self, ToPolyTraitRef, ToPredicate, Ty, TyCtxt, WithConstness}; use rustc_data_structures::fx::FxHashSet; use rustc_hir as hir; use rustc_hir::def_id::DefId; diff --git a/src/librustc_infer/traits/wf.rs b/src/librustc_infer/traits/wf.rs index 48721ec04e7fd..89a271d0111af 100644 --- a/src/librustc_infer/traits/wf.rs +++ b/src/librustc_infer/traits/wf.rs @@ -1,9 +1,9 @@ use crate::infer::opaque_types::required_region_bounds; use crate::infer::InferCtxt; -use crate::middle::lang_items; use crate::traits::{self, AssocTypeBoundData}; -use crate::ty::subst::SubstsRef; -use crate::ty::{self, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; +use rustc::middle::lang_items; +use rustc::ty::subst::SubstsRef; +use rustc::ty::{self, ToPredicate, Ty, TyCtxt, TypeFoldable, WithConstness}; use rustc_hir as hir; use rustc_hir::def_id::DefId; use rustc_span::symbol::{kw, Ident}; From 0b93cfc1ee3d61987e9f3229370d79acd51544a1 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Wed, 8 Jan 2020 09:31:01 +0100 Subject: [PATCH 09/11] Prune features. --- src/librustc_infer/lib.rs | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/src/librustc_infer/lib.rs b/src/librustc_infer/lib.rs index d6619e5f7f83a..31ce04581647f 100644 --- a/src/librustc_infer/lib.rs +++ b/src/librustc_infer/lib.rs @@ -14,37 +14,14 @@ //! This API is completely unstable and subject to change. #![doc(html_root_url = "https://doc.rust-lang.org/nightly/")] -#![feature(arbitrary_self_types)] #![feature(bool_to_option)] #![feature(box_patterns)] #![feature(box_syntax)] -#![feature(const_fn)] -#![feature(const_transmute)] -#![feature(core_intrinsics)] #![feature(drain_filter)] -#![cfg_attr(windows, feature(libc))] #![feature(never_type)] -#![feature(exhaustive_patterns)] -#![feature(overlapping_marker_traits)] -#![feature(extern_types)] -#![feature(nll)] -#![feature(optin_builtin_traits)] -#![feature(option_expect_none)] #![feature(range_is_empty)] -#![feature(specialization)] -#![feature(unboxed_closures)] -#![feature(thread_local)] -#![feature(trace_macros)] -#![feature(trusted_len)] -#![feature(stmt_expr_attributes)] -#![feature(integer_atomics)] -#![feature(test)] #![feature(in_band_lifetimes)] #![feature(crate_visibility_modifier)] -#![feature(log_syntax)] -#![feature(associated_type_bounds)] -#![feature(rustc_attrs)] -#![feature(hash_raw_entry)] #![recursion_limit = "512"] #[macro_use] From 5d5720835329230c60cb7b4f56e2a9b234dae6cf Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Wed, 8 Jan 2020 10:18:48 +0100 Subject: [PATCH 10/11] Gate macro use. --- src/librustc_infer/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/librustc_infer/lib.rs b/src/librustc_infer/lib.rs index 31ce04581647f..6c66ef47f33f0 100644 --- a/src/librustc_infer/lib.rs +++ b/src/librustc_infer/lib.rs @@ -26,6 +26,7 @@ #[macro_use] extern crate rustc_macros; +#[cfg(target_arch = "x86_64")] #[macro_use] extern crate rustc_data_structures; #[macro_use] From e88500b5e18bbbad2323944d3c23f8a4465eb147 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Fri, 7 Feb 2020 09:06:08 +0100 Subject: [PATCH 11/11] Prune rustc dependencies. --- Cargo.lock | 2 -- src/librustc/Cargo.toml | 2 -- 2 files changed, 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ff9d419c5d75..f13a581bc7909 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3111,8 +3111,6 @@ dependencies = [ "bitflags", "byteorder", "chalk-engine", - "fmt_macros", - "graphviz", "jobserver", "log", "measureme", diff --git a/src/librustc/Cargo.toml b/src/librustc/Cargo.toml index 782c6879ac58f..af2be30cc0a86 100644 --- a/src/librustc/Cargo.toml +++ b/src/librustc/Cargo.toml @@ -12,8 +12,6 @@ doctest = false [dependencies] arena = { path = "../libarena" } bitflags = "1.2.1" -fmt_macros = { path = "../libfmt_macros" } -graphviz = { path = "../libgraphviz" } jobserver = "0.1" scoped-tls = "1.0" log = { version = "0.4", features = ["release_max_level_info", "std"] }