@@ -36,7 +36,7 @@ use hir::def::Def;
3636use hir:: def_id:: DefId ;
3737use util:: nodemap:: { NodeMap , FnvHashSet } ;
3838
39- use syntax_pos:: { BytePos , mk_sp, Span , ExpnId } ;
39+ use syntax_pos:: { mk_sp, Span , ExpnId , DUMMY_SP } ;
4040use syntax:: codemap:: { self , respan, Spanned } ;
4141use syntax:: abi:: Abi ;
4242use syntax:: ast:: { Name , NodeId , DUMMY_NODE_ID , AsmDialect } ;
@@ -301,6 +301,7 @@ pub struct Generics {
301301 pub lifetimes : HirVec < LifetimeDef > ,
302302 pub ty_params : HirVec < TyParam > ,
303303 pub where_clause : WhereClause ,
304+ pub span : Span ,
304305}
305306
306307impl Generics {
@@ -312,6 +313,7 @@ impl Generics {
312313 id : DUMMY_NODE_ID ,
313314 predicates : HirVec :: new ( ) ,
314315 } ,
316+ span : DUMMY_SP ,
315317 }
316318 }
317319
@@ -326,38 +328,6 @@ impl Generics {
326328 pub fn is_parameterized ( & self ) -> bool {
327329 self . is_lt_parameterized ( ) || self . is_type_parameterized ( )
328330 }
329-
330- // Does return a span which includes lifetimes and type parameters,
331- // not where clause.
332- pub fn span ( & self ) -> Option < Span > {
333- if !self . is_parameterized ( ) {
334- None
335- } else {
336- let mut span: Option < Span > = None ;
337- for lifetime in self . lifetimes . iter ( ) {
338- if let Some ( ref mut span) = span {
339- let life_span = lifetime. lifetime . span ;
340- span. hi = if span. hi > life_span. hi { span. hi } else { life_span. hi } ;
341- span. lo = if span. lo < life_span. lo { span. lo } else { life_span. lo } ;
342- } else {
343- span = Some ( lifetime. lifetime . span . clone ( ) ) ;
344- }
345- }
346- for ty_param in self . ty_params . iter ( ) {
347- if let Some ( ref mut span) = span {
348- span. lo = if span. lo < ty_param. span . lo { span. lo } else { ty_param. span . lo } ;
349- span. hi = if span. hi > ty_param. span . hi { span. hi } else { ty_param. span . hi } ;
350- } else {
351- span = Some ( ty_param. span . clone ( ) ) ;
352- }
353- }
354- if let Some ( ref mut span) = span {
355- span. lo = span. lo - BytePos ( 1 ) ;
356- span. hi = span. hi + BytePos ( 1 ) ;
357- }
358- span
359- }
360- }
361331}
362332
363333/// A `where` clause in a definition
0 commit comments