@@ -169,7 +169,6 @@ pub struct LineColumn {
169
169
}
170
170
171
171
#[ derive( Copy , Clone ) ]
172
- #[ cfg_attr( procmacro2_semver_exempt, derive( PartialEq , Eq ) ) ]
173
172
pub struct Span {
174
173
inner : imp:: Span ,
175
174
_marker : marker:: PhantomData < Rc < ( ) > > ,
@@ -239,6 +238,11 @@ impl Span {
239
238
pub fn join ( & self , other : Span ) -> Option < Span > {
240
239
self . inner . join ( other. inner ) . map ( Span :: _new)
241
240
}
241
+
242
+ #[ cfg( procmacro2_semver_exempt) ]
243
+ pub fn eq ( & self , other : & Span ) -> bool {
244
+ self . inner . eq ( & other. inner )
245
+ }
242
246
}
243
247
244
248
impl fmt:: Debug for Span {
@@ -405,33 +409,31 @@ impl fmt::Display for Op {
405
409
#[ derive( Copy , Clone ) ]
406
410
pub struct Term {
407
411
inner : imp:: Term ,
408
- span : Span ,
409
412
_marker : marker:: PhantomData < Rc < ( ) > > ,
410
413
}
411
414
412
415
impl Term {
413
- fn _new ( inner : imp:: Term , span : Span ) -> Term {
416
+ fn _new ( inner : imp:: Term ) -> Term {
414
417
Term {
415
418
inner : inner,
416
- span : span,
417
419
_marker : marker:: PhantomData ,
418
420
}
419
421
}
420
422
421
423
pub fn new ( string : & str , span : Span ) -> Term {
422
- Term :: _new ( imp:: Term :: intern ( string) , span)
424
+ Term :: _new ( imp:: Term :: new ( string, span. inner ) )
423
425
}
424
426
425
427
pub fn as_str ( & self ) -> & str {
426
428
self . inner . as_str ( )
427
429
}
428
430
429
431
pub fn span ( & self ) -> Span {
430
- self . span
432
+ Span :: _new ( self . inner . span ( ) )
431
433
}
432
434
433
435
pub fn set_span ( & mut self , span : Span ) {
434
- self . span = span ;
436
+ self . inner . set_span ( span. inner ) ;
435
437
}
436
438
}
437
439
@@ -450,24 +452,13 @@ impl fmt::Debug for Term {
450
452
#[ derive( Clone ) ]
451
453
pub struct Literal {
452
454
inner : imp:: Literal ,
453
- span : Span ,
454
455
_marker : marker:: PhantomData < Rc < ( ) > > ,
455
456
}
456
457
457
- macro_rules! suffixed_int_literals {
458
+ macro_rules! int_literals {
458
459
( $( $name: ident => $kind: ident, ) * ) => ( $(
459
- #[ allow( unused_comparisons) ]
460
460
pub fn $name( n: $kind) -> Literal {
461
- Literal :: _new( n. into( ) )
462
- }
463
- ) * )
464
- }
465
-
466
- macro_rules! unsuffixed_int_literals {
467
- ( $( $name: ident => $kind: ident, ) * ) => ( $(
468
- #[ allow( unused_comparisons) ]
469
- pub fn $name( n: $kind) -> Literal {
470
- Literal :: _new( imp:: Literal :: integer( n as i64 ) )
461
+ Literal :: _new( imp:: Literal :: $name( n) )
471
462
}
472
463
) * )
473
464
}
@@ -476,12 +467,11 @@ impl Literal {
476
467
fn _new ( inner : imp:: Literal ) -> Literal {
477
468
Literal {
478
469
inner : inner,
479
- span : Span :: call_site ( ) ,
480
470
_marker : marker:: PhantomData ,
481
471
}
482
472
}
483
473
484
- suffixed_int_literals ! {
474
+ int_literals ! {
485
475
u8_suffixed => u8 ,
486
476
u16_suffixed => u16 ,
487
477
u32_suffixed => u32 ,
@@ -492,9 +482,7 @@ impl Literal {
492
482
i32_suffixed => i32 ,
493
483
i64_suffixed => i64 ,
494
484
isize_suffixed => isize ,
495
- }
496
485
497
- unsuffixed_int_literals ! {
498
486
u8_unsuffixed => u8 ,
499
487
u16_unsuffixed => u16 ,
500
488
u32_unsuffixed => u32 ,
@@ -509,42 +497,42 @@ impl Literal {
509
497
510
498
pub fn f64_unsuffixed ( f : f64 ) -> Literal {
511
499
assert ! ( f. is_finite( ) ) ;
512
- Literal :: _new ( imp:: Literal :: float ( f) )
500
+ Literal :: _new ( imp:: Literal :: f64_unsuffixed ( f) )
513
501
}
514
502
515
503
pub fn f64_suffixed ( f : f64 ) -> Literal {
516
504
assert ! ( f. is_finite( ) ) ;
517
- Literal :: _new ( f . into ( ) )
505
+ Literal :: _new ( imp :: Literal :: f64_suffixed ( f ) )
518
506
}
519
507
520
508
pub fn f32_unsuffixed ( f : f32 ) -> Literal {
521
509
assert ! ( f. is_finite( ) ) ;
522
- Literal :: _new ( imp:: Literal :: float ( f as f64 ) )
510
+ Literal :: _new ( imp:: Literal :: f32_unsuffixed ( f ) )
523
511
}
524
512
525
513
pub fn f32_suffixed ( f : f32 ) -> Literal {
526
514
assert ! ( f. is_finite( ) ) ;
527
- Literal :: _new ( f . into ( ) )
515
+ Literal :: _new ( imp :: Literal :: f32_suffixed ( f ) )
528
516
}
529
517
530
518
pub fn string ( string : & str ) -> Literal {
531
- Literal :: _new ( string. into ( ) )
519
+ Literal :: _new ( imp :: Literal :: string ( string ) )
532
520
}
533
521
534
522
pub fn character ( ch : char ) -> Literal {
535
- Literal :: _new ( ch . into ( ) )
523
+ Literal :: _new ( imp :: Literal :: character ( ch ) )
536
524
}
537
525
538
526
pub fn byte_string ( s : & [ u8 ] ) -> Literal {
539
527
Literal :: _new ( imp:: Literal :: byte_string ( s) )
540
528
}
541
529
542
530
pub fn span ( & self ) -> Span {
543
- self . span
531
+ Span :: _new ( self . inner . span ( ) )
544
532
}
545
533
546
534
pub fn set_span ( & mut self , span : Span ) {
547
- self . span = span ;
535
+ self . inner . set_span ( span. inner ) ;
548
536
}
549
537
}
550
538
0 commit comments