Skip to content

Commit f9764e1

Browse files
committed
---
yaml --- r: 232397 b: refs/heads/try c: 7f8942c h: refs/heads/master i: 232395: 9cdf9d7 v: v3
1 parent 10defc0 commit f9764e1

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: edeb4f1c86cbf6af8ef9874d4b3af50f721ea1b8
33
refs/heads/snap-stage3: 1af31d4974e33027a68126fa5a5a3c2c6491824f
4-
refs/heads/try: 401a2435521ad63a0d780a719f4f5cf9f8b6ae90
4+
refs/heads/try: 7f8942c18d552837033dc543e03a4156200896e8
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/src/librustc/middle/outlives.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ pub enum Component<'tcx> {
5454
// the future without breaking backwards compat.
5555
EscapingProjection(Vec<Component<'tcx>>),
5656

57+
// This is a temporary marker indicating "outlives components"
58+
// that are due to the new rules introduced by RFC 1214. For the
59+
// time being, violations of these requirements generally induce
60+
// warnings, not errors.
5761
RFC1214(Vec<Component<'tcx>>),
5862
}
5963

@@ -64,7 +68,7 @@ pub fn components<'a,'tcx>(infcx: &InferCtxt<'a,'tcx>,
6468
-> Vec<Component<'tcx>> {
6569
let mut components = vec![];
6670
compute_components(infcx, ty0, &mut components);
67-
debug!("outlives({:?}) = {:?}", ty0, components);
71+
debug!("components({:?}) = {:?}", ty0, components);
6872
components
6973
}
7074

branches/try/src/librustc/middle/wf.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ pub enum ImpliedBound<'tcx> {
122122
RegionSubProjection(ty::Region, ty::ProjectionTy<'tcx>),
123123
}
124124

125-
/// This routine computes the full set of well-formedness constraints
126-
/// that must hold for the type `ty` to appear in a context with
127-
/// lifetime `outer_region`.
125+
/// Compute the implied bounds that a callee/impl can assume based on
126+
/// the fact that caller/projector has ensured that `ty` is WF. See
127+
/// the `ImpliedBound` type for more details.
128128
pub fn implied_bounds<'a,'tcx>(
129129
infcx: &'a InferCtxt<'a,'tcx>,
130130
body_id: ast::NodeId,

branches/try/src/librustc_typeck/check/regionck.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,11 +1732,6 @@ fn projection_bound<'a, 'tcx>(rcx: &Rcx<'a, 'tcx>,
17321732

17331733
// see the extensive comment in projection_must_outlive
17341734

1735-
// this routine is not invoked in this case
1736-
assert!(
1737-
!projection_ty.trait_ref.substs.types.iter().any(|t| t.needs_infer()) &&
1738-
!projection_ty.trait_ref.substs.regions().iter().any(|r| r.needs_infer()));
1739-
17401735
let ty = rcx.tcx().mk_projection(projection_ty.trait_ref, projection_ty.item_name);
17411736
let recursive_bound = recursive_type_bound(rcx, span, ty);
17421737

0 commit comments

Comments
 (0)