Skip to content

Commit

Permalink
fix feature error, test fallout
Browse files Browse the repository at this point in the history
  • Loading branch information
llogiq committed Sep 8, 2016
1 parent df611a6 commit 76a2f9f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 12 deletions.
18 changes: 9 additions & 9 deletions src/librustc_typeck/rscope.rs
Expand Up @@ -229,17 +229,9 @@ impl<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> StaticRscope<'a, 'gcx, 'tcx> {

impl<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> RegionScope for StaticRscope<'a, 'gcx, 'tcx> {
fn anon_regions(&self,
_span: Span,
span: Span,
count: usize)
-> Result<Vec<ty::Region>, Option<Vec<ElisionFailureInfo>>> {
Ok(vec![ty::ReStatic; count])
}

fn object_lifetime_default(&self, span: Span) -> Option<ty::Region> {
Some(self.base_object_lifetime_default(span))
}

fn base_object_lifetime_default(&self, span: Span) -> ty::Region {
if !self.tcx.sess.features.borrow().static_in_const {
self.tcx
.sess
Expand All @@ -248,6 +240,14 @@ impl<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> RegionScope for StaticRscope<'a, 'gcx, 'tcx>
`static_in_const` feature, see #35897")
.emit();
}
Ok(vec![ty::ReStatic; count])
}

fn object_lifetime_default(&self, span: Span) -> Option<ty::Region> {
Some(self.base_object_lifetime_default(span))
}

fn base_object_lifetime_default(&self, _span: Span) -> ty::Region {
ty::ReStatic
}
}
Expand Down
2 changes: 0 additions & 2 deletions src/test/compile-fail/const-unsized.rs
Expand Up @@ -15,7 +15,6 @@ const CONST_0: Debug+Sync = *(&0 as &(Debug+Sync));
//~| NOTE `std::fmt::Debug + Sync + 'static: std::marker::Sized` not satisfied
//~| NOTE does not have a constant size known at compile-time
//~| NOTE constant expressions must have a statically known size
//~| ERROR this needs a `'static` lifetime or the `static_in_const` feature

const CONST_FOO: str = *"foo";
//~^ ERROR `str: std::marker::Sized` is not satisfied
Expand All @@ -28,7 +27,6 @@ static STATIC_1: Debug+Sync = *(&1 as &(Debug+Sync));
//~| NOTE `std::fmt::Debug + Sync + 'static: std::marker::Sized` not satisfied
//~| NOTE does not have a constant size known at compile-time
//~| NOTE constant expressions must have a statically known size
//~| ERROR this needs a `'static` lifetime or the `static_in_const` feature

static STATIC_BAR: str = *"bar";
//~^ ERROR `str: std::marker::Sized` is not satisfied
Expand Down
1 change: 0 additions & 1 deletion src/test/compile-fail/issue-24446.rs
Expand Up @@ -12,7 +12,6 @@ fn main() {
static foo: Fn() -> u32 = || -> u32 {
//~^ ERROR: mismatched types
//~| ERROR: `std::ops::Fn() -> u32 + 'static: std::marker::Sized` is not satisfied
//~| ERROR: this needs a `'static` lifetime or the `static_in_const` feature
0
};
}

0 comments on commit 76a2f9f

Please sign in to comment.