Skip to content

Commit 9771fb0

Browse files
committed
split project into multiple files
1 parent df55f56 commit 9771fb0

File tree

11 files changed

+797
-784
lines changed

11 files changed

+797
-784
lines changed

compiler/rustc_hir_analysis/src/astconv/mod.rs

+10-11
Original file line numberDiff line numberDiff line change
@@ -1425,17 +1425,16 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
14251425
vec![]
14261426
};
14271427

1428-
let (impl_, (assoc_item, def_scope)) =
1429-
crate::traits::project::with_replaced_escaping_bound_vars(
1430-
infcx,
1431-
&mut universes,
1432-
self_ty,
1433-
|self_ty| {
1434-
self.select_inherent_assoc_type_candidates(
1435-
infcx, name, span, self_ty, param_env, candidates,
1436-
)
1437-
},
1438-
)?;
1428+
let (impl_, (assoc_item, def_scope)) = crate::traits::with_replaced_escaping_bound_vars(
1429+
infcx,
1430+
&mut universes,
1431+
self_ty,
1432+
|self_ty| {
1433+
self.select_inherent_assoc_type_candidates(
1434+
infcx, name, span, self_ty, param_env, candidates,
1435+
)
1436+
},
1437+
)?;
14391438

14401439
self.check_assoc_ty(assoc_item, name, def_scope, block, span);
14411440

compiler/rustc_trait_selection/src/solve/normalize.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::traits::error_reporting::TypeErrCtxtExt;
22
use crate::traits::query::evaluate_obligation::InferCtxtExt;
3-
use crate::traits::{needs_normalization, BoundVarReplacer, PlaceholderReplacer};
3+
use crate::traits::{BoundVarReplacer, PlaceholderReplacer};
44
use rustc_data_structures::stack::ensure_sufficient_stack;
55
use rustc_infer::infer::at::At;
66
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
@@ -205,10 +205,9 @@ impl<'tcx> FallibleTypeFolder<TyCtxt<'tcx>> for NormalizationFolder<'_, 'tcx> {
205205
}
206206

207207
fn try_fold_const(&mut self, ct: ty::Const<'tcx>) -> Result<ty::Const<'tcx>, Self::Error> {
208-
let reveal = self.at.param_env.reveal();
209208
let infcx = self.at.infcx;
210209
debug_assert_eq!(ct, infcx.shallow_resolve(ct));
211-
if !needs_normalization(&ct, reveal) {
210+
if !ct.has_projections() {
212211
return Ok(ct);
213212
}
214213

compiler/rustc_trait_selection/src/traits/fulfill.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::infer::{InferCtxt, TyOrConstInferVar};
22
use crate::traits::error_reporting::TypeErrCtxtExt;
3+
use crate::traits::normalize::normalize_with_depth_to;
34
use rustc_data_structures::captures::Captures;
45
use rustc_data_structures::obligation_forest::ProcessResult;
56
use rustc_data_structures::obligation_forest::{Error, ForestObligation, Outcome};
@@ -312,7 +313,7 @@ impl<'a, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'tcx> {
312313

313314
if obligation.predicate.has_projections() {
314315
let mut obligations = Vec::new();
315-
let predicate = crate::traits::project::normalize_with_depth_to(
316+
let predicate = normalize_with_depth_to(
316317
&mut self.selcx,
317318
obligation.param_env,
318319
obligation.cause.clone(),

compiler/rustc_trait_selection/src/traits/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod engine;
99
pub mod error_reporting;
1010
mod fulfill;
1111
pub mod misc;
12+
pub mod normalize;
1213
mod object_safety;
1314
pub mod outlives_bounds;
1415
pub mod project;
@@ -40,17 +41,15 @@ use rustc_span::Span;
4041
use std::fmt::Debug;
4142
use std::ops::ControlFlow;
4243

43-
pub(crate) use self::project::{needs_normalization, BoundVarReplacer, PlaceholderReplacer};
44-
4544
pub use self::coherence::{add_placeholder_note, orphan_check, overlapping_impls};
4645
pub use self::coherence::{OrphanCheckErr, OverlapResult};
4746
pub use self::engine::{ObligationCtxt, TraitEngineExt};
4847
pub use self::fulfill::{FulfillmentContext, PendingPredicateObligation};
48+
pub use self::normalize::NormalizeExt;
4949
pub use self::object_safety::astconv_object_safety_violations;
5050
pub use self::object_safety::is_vtable_safe_method;
5151
pub use self::object_safety::object_safety_violations_for_assoc_item;
5252
pub use self::object_safety::ObjectSafetyViolation;
53-
pub use self::project::NormalizeExt;
5453
pub use self::project::{normalize_inherent_projection, normalize_projection_type};
5554
pub use self::select::{EvaluationCache, SelectionCache, SelectionContext};
5655
pub use self::select::{EvaluationResult, IntercrateAmbiguityCause, OverflowError};
@@ -68,6 +67,7 @@ pub use self::util::{
6867
};
6968
pub use self::util::{expand_trait_aliases, TraitAliasExpander};
7069
pub use self::util::{get_vtable_index_of_object_method, impl_item_is_final, upcast_choices};
70+
pub use self::util::{with_replaced_escaping_bound_vars, BoundVarReplacer, PlaceholderReplacer};
7171

7272
pub use rustc_infer::traits::*;
7373

0 commit comments

Comments
 (0)