- variance: variance inference
+- outlives: outlives inference
+
- check: walks over function bodies and type checks them, inferring types for
local variables, type parameters, etc as necessary.
#![feature(advanced_slice_patterns)]
#![feature(box_patterns)]
#![feature(box_syntax)]
+#![feature(crate_visibility_modifier)]
#![feature(conservative_impl_trait)]
+#![feature(match_default_bindings)]
#![feature(never_type)]
#![feature(quote)]
#![feature(rustc_diagnostic_macros)]
mod constrained_type_params;
mod impl_wf_check;
mod coherence;
+mod outlives;
mod variance;
+mod namespace;
pub struct TypeAndSubsts<'tcx> {
substs: &'tcx Substs<'tcx>,
coherence::provide(providers);
check::provide(providers);
variance::provide(providers);
+ outlives::provide(providers);
}
pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>)
})?;
+ tcx.sess.track_errors(|| {
+ time(time_passes, "outlives testing", ||
+ outlives::test::test_inferred_outlives(tcx));
+ })?;
+
tcx.sess.track_errors(|| {
time(time_passes, "impl wf inference", ||
impl_wf_check::impl_wf_check(tcx));