Refactor checking if a Lifetime is static

Simply move the test for `keywords::StaticLifetime` into the
`Lifetime` impl, to match how elision is checked.
This commit is contained in:
Adam Ransom 2017-03-21 21:35:57 +09:00
parent 8c4f2c64c6
commit 1ae1a19ba6
2 changed files with 6 additions and 2 deletions

View File

@ -100,6 +100,10 @@ impl Lifetime {
pub fn is_elided(&self) -> bool {
self.name == keywords::Invalid.name()
}
pub fn is_static(&self) -> bool {
self.name == keywords::StaticLifetime.name()
}
}
/// A lifetime definition, eg `'a: 'b+'c+'d`

View File

@ -434,7 +434,7 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> {
self.resolve_elided_lifetimes(slice::ref_slice(lifetime_ref));
return;
}
if lifetime_ref.name == keywords::StaticLifetime.name() {
if lifetime_ref.is_static() {
self.insert_lifetime(lifetime_ref, Region::Static);
return;
}
@ -1434,7 +1434,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
let lifetime_i = &lifetimes[i];
for lifetime in lifetimes {
if lifetime.lifetime.name == keywords::StaticLifetime.name() {
if lifetime.lifetime.is_static() {
let lifetime = lifetime.lifetime;
let mut err = struct_span_err!(self.sess, lifetime.span, E0262,
"invalid lifetime parameter name: `{}`", lifetime.name);