diff options
| author | bors <bors@rust-lang.org> | 2019-06-19 12:41:38 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-06-19 12:41:38 +0000 |
| commit | e79b2a18a21e6b178d73473bb8fdbf3d18c66051 (patch) | |
| tree | 093258b3615472cfd3dbad9238abc18c1cdc0361 /src/librustc | |
| parent | 9cb052acfb25c12d5e8960f9ea53b69a2f19b0e8 (diff) | |
| parent | fdeb58151370c1a65fa1ff23e7d4b304fca01d2a (diff) | |
Auto merge of #61172 - matthewjasper:cleanup-implied-bounds-lint, r=varkor
Improve the explicit_outlives_requirements lint * Don't use Strings to compare parameters * Extend the lint to lifetime bounds * Extend the lint to enums and unions * Use the correct span for where clauses in tuple structs * Try to early-out where possible * Remove unnecessary bounds in rustc crates
Diffstat (limited to 'src/librustc')
| -rw-r--r-- | src/librustc/hir/intravisit.rs | 1 | ||||
| -rw-r--r-- | src/librustc/hir/lowering.rs | 6 | ||||
| -rw-r--r-- | src/librustc/hir/mod.rs | 17 | ||||
| -rw-r--r-- | src/librustc/hir/print.rs | 2 |
4 files changed, 12 insertions, 14 deletions
diff --git a/src/librustc/hir/intravisit.rs b/src/librustc/hir/intravisit.rs index 8d7e51d1ea6..1777d765cc8 100644 --- a/src/librustc/hir/intravisit.rs +++ b/src/librustc/hir/intravisit.rs @@ -773,7 +773,6 @@ pub fn walk_generic_param<'v, V: Visitor<'v>>(visitor: &mut V, param: &'v Generi pub fn walk_generics<'v, V: Visitor<'v>>(visitor: &mut V, generics: &'v Generics) { walk_list!(visitor, visit_generic_param, &generics.params); - visitor.visit_id(generics.where_clause.hir_id); walk_list!(visitor, visit_where_predicate, &generics.where_clause.predicates); } diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 60b099b0fed..996af3672e8 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -1755,8 +1755,8 @@ impl<'a> LoweringContext<'a> { generics: hir::Generics { params: lifetime_defs, where_clause: hir::WhereClause { - hir_id: lctx.next_id(), predicates: hir_vec![], + span, }, span, }, @@ -2647,8 +2647,8 @@ impl<'a> LoweringContext<'a> { generics: hir::Generics { params: generic_params, where_clause: hir::WhereClause { - hir_id: this.next_id(), predicates: hir_vec![], + span, }, span, }, @@ -3001,11 +3001,11 @@ impl<'a> LoweringContext<'a> { AnonymousLifetimeMode::ReportError, |this| { hir::WhereClause { - hir_id: this.lower_node_id(wc.id), predicates: wc.predicates .iter() .map(|predicate| this.lower_where_predicate(predicate)) .collect(), + span: wc.span, } }, ) diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs index 69bd4d3f1f6..527f18f57dc 100644 --- a/src/librustc/hir/mod.rs +++ b/src/librustc/hir/mod.rs @@ -592,8 +592,8 @@ impl Generics { Generics { params: HirVec::new(), where_clause: WhereClause { - hir_id: DUMMY_HIR_ID, predicates: HirVec::new(), + span: DUMMY_SP, }, span: DUMMY_SP, } @@ -644,19 +644,18 @@ pub enum SyntheticTyParamKind { /// A where-clause in a definition. #[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable)] pub struct WhereClause { - pub hir_id: HirId, pub predicates: HirVec<WherePredicate>, + // Only valid if predicates isn't empty. + span: Span, } impl WhereClause { pub fn span(&self) -> Option<Span> { - self.predicates.iter().map(|predicate| predicate.span()) - .fold(None, |acc, i| match (acc, i) { - (None, i) => Some(i), - (Some(acc), i) => { - Some(acc.to(i)) - } - }) + if self.predicates.is_empty() { + None + } else { + Some(self.span) + } } } diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs index 69ee84dfa43..e1c713b537c 100644 --- a/src/librustc/hir/print.rs +++ b/src/librustc/hir/print.rs @@ -2202,8 +2202,8 @@ impl<'a> State<'a> { let generics = hir::Generics { params: hir::HirVec::new(), where_clause: hir::WhereClause { - hir_id: hir::DUMMY_HIR_ID, predicates: hir::HirVec::new(), + span: syntax_pos::DUMMY_SP, }, span: syntax_pos::DUMMY_SP, }; |
