@@ -36,7 +36,7 @@ use hir::def::Def;
36
36
use hir:: def_id:: DefId ;
37
37
use util:: nodemap:: { NodeMap , FnvHashSet } ;
38
38
39
- use syntax_pos:: { BytePos , mk_sp, Span , ExpnId } ;
39
+ use syntax_pos:: { mk_sp, Span , ExpnId , DUMMY_SP } ;
40
40
use syntax:: codemap:: { self , respan, Spanned } ;
41
41
use syntax:: abi:: Abi ;
42
42
use syntax:: ast:: { Name , NodeId , DUMMY_NODE_ID , AsmDialect } ;
@@ -301,6 +301,7 @@ pub struct Generics {
301
301
pub lifetimes : HirVec < LifetimeDef > ,
302
302
pub ty_params : HirVec < TyParam > ,
303
303
pub where_clause : WhereClause ,
304
+ pub span : Span ,
304
305
}
305
306
306
307
impl Generics {
@@ -312,6 +313,7 @@ impl Generics {
312
313
id : DUMMY_NODE_ID ,
313
314
predicates : HirVec :: new ( ) ,
314
315
} ,
316
+ span : DUMMY_SP ,
315
317
}
316
318
}
317
319
@@ -326,38 +328,6 @@ impl Generics {
326
328
pub fn is_parameterized ( & self ) -> bool {
327
329
self . is_lt_parameterized ( ) || self . is_type_parameterized ( )
328
330
}
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
- }
361
331
}
362
332
363
333
/// A `where` clause in a definition
0 commit comments