@@ -169,7 +169,6 @@ pub struct LineColumn {
169169}
170170
171171#[ derive( Copy , Clone ) ]
172- #[ cfg_attr( procmacro2_semver_exempt, derive( PartialEq , Eq ) ) ]
173172pub struct Span {
174173 inner : imp:: Span ,
175174 _marker : marker:: PhantomData < Rc < ( ) > > ,
@@ -239,6 +238,11 @@ impl Span {
239238 pub fn join ( & self , other : Span ) -> Option < Span > {
240239 self . inner . join ( other. inner ) . map ( Span :: _new)
241240 }
241+
242+ #[ cfg( procmacro2_semver_exempt) ]
243+ pub fn eq ( & self , other : & Span ) -> bool {
244+ self . inner . eq ( & other. inner )
245+ }
242246}
243247
244248impl fmt:: Debug for Span {
@@ -405,33 +409,31 @@ impl fmt::Display for Op {
405409#[ derive( Copy , Clone ) ]
406410pub struct Term {
407411 inner : imp:: Term ,
408- span : Span ,
409412 _marker : marker:: PhantomData < Rc < ( ) > > ,
410413}
411414
412415impl Term {
413- fn _new ( inner : imp:: Term , span : Span ) -> Term {
416+ fn _new ( inner : imp:: Term ) -> Term {
414417 Term {
415418 inner : inner,
416- span : span,
417419 _marker : marker:: PhantomData ,
418420 }
419421 }
420422
421423 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 ) )
423425 }
424426
425427 pub fn as_str ( & self ) -> & str {
426428 self . inner . as_str ( )
427429 }
428430
429431 pub fn span ( & self ) -> Span {
430- self . span
432+ Span :: _new ( self . inner . span ( ) )
431433 }
432434
433435 pub fn set_span ( & mut self , span : Span ) {
434- self . span = span ;
436+ self . inner . set_span ( span. inner ) ;
435437 }
436438}
437439
@@ -450,24 +452,13 @@ impl fmt::Debug for Term {
450452#[ derive( Clone ) ]
451453pub struct Literal {
452454 inner : imp:: Literal ,
453- span : Span ,
454455 _marker : marker:: PhantomData < Rc < ( ) > > ,
455456}
456457
457- macro_rules! suffixed_int_literals {
458+ macro_rules! int_literals {
458459 ( $( $name: ident => $kind: ident, ) * ) => ( $(
459- #[ allow( unused_comparisons) ]
460460 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) )
471462 }
472463 ) * )
473464}
@@ -476,12 +467,11 @@ impl Literal {
476467 fn _new ( inner : imp:: Literal ) -> Literal {
477468 Literal {
478469 inner : inner,
479- span : Span :: call_site ( ) ,
480470 _marker : marker:: PhantomData ,
481471 }
482472 }
483473
484- suffixed_int_literals ! {
474+ int_literals ! {
485475 u8_suffixed => u8 ,
486476 u16_suffixed => u16 ,
487477 u32_suffixed => u32 ,
@@ -492,9 +482,7 @@ impl Literal {
492482 i32_suffixed => i32 ,
493483 i64_suffixed => i64 ,
494484 isize_suffixed => isize ,
495- }
496485
497- unsuffixed_int_literals ! {
498486 u8_unsuffixed => u8 ,
499487 u16_unsuffixed => u16 ,
500488 u32_unsuffixed => u32 ,
@@ -509,42 +497,42 @@ impl Literal {
509497
510498 pub fn f64_unsuffixed ( f : f64 ) -> Literal {
511499 assert ! ( f. is_finite( ) ) ;
512- Literal :: _new ( imp:: Literal :: float ( f) )
500+ Literal :: _new ( imp:: Literal :: f64_unsuffixed ( f) )
513501 }
514502
515503 pub fn f64_suffixed ( f : f64 ) -> Literal {
516504 assert ! ( f. is_finite( ) ) ;
517- Literal :: _new ( f . into ( ) )
505+ Literal :: _new ( imp :: Literal :: f64_suffixed ( f ) )
518506 }
519507
520508 pub fn f32_unsuffixed ( f : f32 ) -> Literal {
521509 assert ! ( f. is_finite( ) ) ;
522- Literal :: _new ( imp:: Literal :: float ( f as f64 ) )
510+ Literal :: _new ( imp:: Literal :: f32_unsuffixed ( f ) )
523511 }
524512
525513 pub fn f32_suffixed ( f : f32 ) -> Literal {
526514 assert ! ( f. is_finite( ) ) ;
527- Literal :: _new ( f . into ( ) )
515+ Literal :: _new ( imp :: Literal :: f32_suffixed ( f ) )
528516 }
529517
530518 pub fn string ( string : & str ) -> Literal {
531- Literal :: _new ( string. into ( ) )
519+ Literal :: _new ( imp :: Literal :: string ( string ) )
532520 }
533521
534522 pub fn character ( ch : char ) -> Literal {
535- Literal :: _new ( ch . into ( ) )
523+ Literal :: _new ( imp :: Literal :: character ( ch ) )
536524 }
537525
538526 pub fn byte_string ( s : & [ u8 ] ) -> Literal {
539527 Literal :: _new ( imp:: Literal :: byte_string ( s) )
540528 }
541529
542530 pub fn span ( & self ) -> Span {
543- self . span
531+ Span :: _new ( self . inner . span ( ) )
544532 }
545533
546534 pub fn set_span ( & mut self , span : Span ) {
547- self . span = span ;
535+ self . inner . set_span ( span. inner ) ;
548536 }
549537}
550538
0 commit comments