Skip to content

Commit b769785

Browse files
committed
move RegionResolutionError into lexical_region_resolve
1 parent 8e9e154 commit b769785

File tree

5 files changed

+42
-34
lines changed

5 files changed

+42
-34
lines changed

src/librustc/infer/error_reporting/different_lifetimes.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
use hir;
1414
use infer::InferCtxt;
1515
use ty::{self, Region};
16-
use infer::region_inference::RegionResolutionError::*;
17-
use infer::region_inference::RegionResolutionError;
16+
use infer::lexical_region_resolve::RegionResolutionError::*;
17+
use infer::lexical_region_resolve::RegionResolutionError;
1818
use hir::map as hir_map;
1919
use middle::resolve_lifetime as rl;
2020
use hir::intravisit::{self, Visitor, NestedVisitorMap};

src/librustc/infer/error_reporting/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@
5757
5858
use infer;
5959
use super::{InferCtxt, TypeTrace, SubregionOrigin, RegionVariableOrigin, ValuePairs};
60-
use super::region_inference::{RegionResolutionError, GenericKind};
60+
use super::region_inference::GenericKind;
61+
use super::lexical_region_resolve::RegionResolutionError;
6162

6263
use std::fmt;
6364
use hir;

src/librustc/infer/error_reporting/named_anon_conflict.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
//! Error Reporting for Anonymous Region Lifetime Errors
1212
//! where one region is named and the other is anonymous.
1313
use infer::InferCtxt;
14-
use infer::region_inference::RegionResolutionError::*;
15-
use infer::region_inference::RegionResolutionError;
14+
use infer::lexical_region_resolve::RegionResolutionError::*;
15+
use infer::lexical_region_resolve::RegionResolutionError;
1616
use ty;
1717

1818
impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {

src/librustc/infer/lexical_region_resolve/mod.rs

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
//! The code to do lexical region resolution.
1212
1313
use infer::SubregionOrigin;
14+
use infer::RegionVariableOrigin;
1415
use infer::region_inference::Constraint;
16+
use infer::region_inference::GenericKind;
1517
use infer::region_inference::RegionVarBindings;
16-
use infer::region_inference::RegionResolutionError;
1718
use infer::region_inference::VarValue;
1819
use infer::region_inference::VerifyBound;
1920
use middle::free_region::RegionRelations;
@@ -23,11 +24,38 @@ use std::fmt;
2324
use std::u32;
2425
use ty::{self, TyCtxt};
2526
use ty::{Region, RegionVid};
26-
use ty::{ReEmpty, ReStatic, ReFree, ReEarlyBound, ReErased};
27-
use ty::{ReLateBound, ReScope, ReVar, ReSkolemized};
27+
use ty::{ReEarlyBound, ReEmpty, ReErased, ReFree, ReStatic};
28+
use ty::{ReLateBound, ReScope, ReSkolemized, ReVar};
2829

2930
mod graphviz;
3031

32+
#[derive(Clone, Debug)]
33+
pub enum RegionResolutionError<'tcx> {
34+
/// `ConcreteFailure(o, a, b)`:
35+
///
36+
/// `o` requires that `a <= b`, but this does not hold
37+
ConcreteFailure(SubregionOrigin<'tcx>, Region<'tcx>, Region<'tcx>),
38+
39+
/// `GenericBoundFailure(p, s, a)
40+
///
41+
/// The parameter/associated-type `p` must be known to outlive the lifetime
42+
/// `a` (but none of the known bounds are sufficient).
43+
GenericBoundFailure(SubregionOrigin<'tcx>, GenericKind<'tcx>, Region<'tcx>),
44+
45+
/// `SubSupConflict(v, sub_origin, sub_r, sup_origin, sup_r)`:
46+
///
47+
/// Could not infer a value for `v` because `sub_r <= v` (due to
48+
/// `sub_origin`) but `v <= sup_r` (due to `sup_origin`) and
49+
/// `sub_r <= sup_r` does not hold.
50+
SubSupConflict(
51+
RegionVariableOrigin,
52+
SubregionOrigin<'tcx>,
53+
Region<'tcx>,
54+
SubregionOrigin<'tcx>,
55+
Region<'tcx>,
56+
),
57+
}
58+
3159
struct RegionAndOrigin<'tcx> {
3260
region: Region<'tcx>,
3361
origin: SubregionOrigin<'tcx>,
@@ -327,7 +355,11 @@ impl<'a, 'gcx, 'tcx> RegionVarBindings<'a, 'gcx, 'tcx> {
327355
sup
328356
);
329357

330-
errors.push(RegionResolutionError::ConcreteFailure((*origin).clone(), sub, sup));
358+
errors.push(RegionResolutionError::ConcreteFailure(
359+
(*origin).clone(),
360+
sub,
361+
sup,
362+
));
331363
}
332364

333365
Constraint::VarSubReg(a_vid, b_region) => {

src/librustc/infer/region_inference/mod.rs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -142,31 +142,6 @@ enum CombineMapType {
142142
Glb,
143143
}
144144

145-
#[derive(Clone, Debug)]
146-
pub enum RegionResolutionError<'tcx> {
147-
/// `ConcreteFailure(o, a, b)`:
148-
///
149-
/// `o` requires that `a <= b`, but this does not hold
150-
ConcreteFailure(SubregionOrigin<'tcx>, Region<'tcx>, Region<'tcx>),
151-
152-
/// `GenericBoundFailure(p, s, a)
153-
///
154-
/// The parameter/associated-type `p` must be known to outlive the lifetime
155-
/// `a` (but none of the known bounds are sufficient).
156-
GenericBoundFailure(SubregionOrigin<'tcx>, GenericKind<'tcx>, Region<'tcx>),
157-
158-
/// `SubSupConflict(v, sub_origin, sub_r, sup_origin, sup_r)`:
159-
///
160-
/// Could not infer a value for `v` because `sub_r <= v` (due to
161-
/// `sub_origin`) but `v <= sup_r` (due to `sup_origin`) and
162-
/// `sub_r <= sup_r` does not hold.
163-
SubSupConflict(RegionVariableOrigin,
164-
SubregionOrigin<'tcx>,
165-
Region<'tcx>,
166-
SubregionOrigin<'tcx>,
167-
Region<'tcx>),
168-
}
169-
170145
#[derive(Copy, Clone, Debug)]
171146
pub enum VarValue<'tcx> {
172147
Value(Region<'tcx>),

0 commit comments

Comments
 (0)