11use std:: str;
22use std:: collections:: { HashSet , HashMap } ;
33use dprint_core:: { Info , ConditionReference } ;
4- use swc_common:: { SpanData , BytePos , comments:: { Comment , CommentKind } , SourceFile , Spanned , Span } ;
5- use swc_ecma_ast :: * ;
6- use swc_ecma_parser :: { token:: TokenAndSpan } ;
4+ use swc_common:: { BytePos , comments:: { Comment , CommentKind } , SourceFile , Spanned , Span } ;
5+ use swc_ecmascript :: ast :: * ;
6+ use swc_ecmascript :: parser :: { token:: TokenAndSpan } ;
77use super :: * ;
88use super :: super :: configuration:: * ;
99use super :: super :: utils:: Stack ;
@@ -20,7 +20,7 @@ pub struct Context<'a> {
2020 stored_infos : HashMap < ( BytePos , BytePos ) , Info > ,
2121 stored_info_ranges : HashMap < ( BytePos , BytePos ) , ( Info , Info ) > ,
2222 pub end_statement_or_member_infos : Stack < Info > ,
23- before_comments_start_info_stack : Stack < ( SpanData , Info ) > ,
23+ before_comments_start_info_stack : Stack < ( Span , Info ) > ,
2424 if_stmt_last_brace_condition_ref : Option < ConditionReference > ,
2525 /// Used for ensuring nodes are parsed in order.
2626 #[ cfg( debug_assertions) ]
@@ -147,37 +147,31 @@ pub trait NodeKinded {
147147}
148148
149149pub trait SpanDataContainer {
150- fn span_data ( & self ) -> SpanData ;
150+ fn span_data ( & self ) -> Span ;
151151}
152152
153153impl SpanDataContainer for & dyn SpanDataContainer {
154- fn span_data ( & self ) -> SpanData {
154+ fn span_data ( & self ) -> Span {
155155 ( * * self ) . span_data ( )
156156 }
157157}
158158
159159impl SpanDataContainer for TokenAndSpan {
160- fn span_data ( & self ) -> SpanData {
160+ fn span_data ( & self ) -> Span {
161161 self . span
162162 }
163163}
164164
165165impl SpanDataContainer for Comment {
166- fn span_data ( & self ) -> SpanData {
167- self . span . data ( )
168- }
169- }
170-
171- impl SpanDataContainer for SpanData {
172- fn span_data ( & self ) -> SpanData {
173- self . clone ( )
166+ fn span_data ( & self ) -> Span {
167+ self . span
174168 }
175169}
176170
177171impl SpanDataContainer for BytePos {
178- fn span_data ( & self ) -> SpanData {
172+ fn span_data ( & self ) -> Span {
179173 // todo: change this so this allocation isn't necessary
180- SpanData {
174+ Span {
181175 lo : * self ,
182176 hi : * self ,
183177 ctxt : Default :: default ( ) ,
@@ -186,7 +180,7 @@ impl SpanDataContainer for BytePos {
186180}
187181
188182impl < T > SpanDataContainer for std:: boxed:: Box < T > where T : SpanDataContainer {
189- fn span_data ( & self ) -> SpanData {
183+ fn span_data ( & self ) -> Span {
190184 ( * * self ) . span_data ( )
191185 }
192186}
@@ -332,8 +326,8 @@ macro_rules! generate_node {
332326 }
333327 }
334328 impl SpanDataContainer for $node_name {
335- fn span_data( & self ) -> SpanData {
336- self . span( ) . data ( )
329+ fn span_data( & self ) -> Span {
330+ self . span( )
337331 }
338332 }
339333 ) *
@@ -353,9 +347,9 @@ macro_rules! generate_node {
353347 ) *
354348
355349 impl <' a> SpanDataContainer for Node <' a> {
356- fn span_data( & self ) -> SpanData {
350+ fn span_data( & self ) -> Span {
357351 match self {
358- $( Node :: $node_name( node) => node. span( ) . data ( ) ) ,*
352+ $( Node :: $node_name( node) => node. span( ) ) ,*
359353 }
360354 }
361355 }
@@ -588,9 +582,9 @@ macro_rules! generate_traits {
588582 }
589583
590584 impl SpanDataContainer for $enum_name {
591- fn span_data( & self ) -> SpanData {
585+ fn span_data( & self ) -> Span {
592586 match self {
593- $( $enum_name:: $member_name( node) => node. span( ) . data ( ) ) ,*
587+ $( $enum_name:: $member_name( node) => node. span( ) ) ,*
594588 }
595589 }
596590 }
@@ -648,32 +642,31 @@ generate_traits![JSXObject, JSXMemberExpr, Ident];
648642/* InnerSpanned */
649643
650644pub trait InnerSpanned {
651- fn get_inner_span_data ( & self , context : & mut Context ) -> SpanData ;
645+ fn get_inner_span_data ( & self , context : & mut Context ) -> Span ;
652646}
653647
654648impl InnerSpanned for BlockStmt {
655- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
649+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
656650 get_inner_span_for_object_like ( & self . span )
657651 }
658652}
659653
660654impl InnerSpanned for ObjectLit {
661- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
655+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
662656 get_inner_span_for_object_like ( & self . span )
663657 }
664658}
665659
666660impl InnerSpanned for ObjectPat {
667- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
661+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
668662 get_inner_span_for_object_like ( & self . span )
669663 }
670664}
671665
672- fn get_inner_span_for_object_like ( span : & Span ) -> SpanData {
673- let span_data = span. data ( ) ;
674- SpanData {
675- lo : BytePos ( span_data. lo . 0 + 1 ) ,
676- hi : BytePos ( span_data. hi . 0 - 1 ) ,
666+ fn get_inner_span_for_object_like ( span : & Span ) -> Span {
667+ Span {
668+ lo : BytePos ( span. lo . 0 + 1 ) ,
669+ hi : BytePos ( span. hi . 0 - 1 ) ,
677670 ctxt : Default :: default ( )
678671 }
679672}
@@ -702,11 +695,11 @@ impl<'a> Node<'a> {
702695/* ParametersSpanned */
703696
704697pub trait ParametersSpanned {
705- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > ;
698+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > ;
706699}
707700
708701impl ParametersSpanned for Function {
709- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
702+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
710703 get_params_or_args_span_data (
711704 self . lo ( ) ,
712705 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -719,13 +712,13 @@ impl ParametersSpanned for Function {
719712}
720713
721714impl ParametersSpanned for ClassMethod {
722- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
715+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
723716 self . function . get_parameters_span_data ( context)
724717 }
725718}
726719
727720impl ParametersSpanned for Constructor {
728- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
721+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
729722 get_params_or_args_span_data (
730723 self . lo ( ) ,
731724 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -737,13 +730,13 @@ impl ParametersSpanned for Constructor {
737730}
738731
739732impl ParametersSpanned for MethodProp {
740- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
733+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
741734 self . function . get_parameters_span_data ( context)
742735 }
743736}
744737
745738impl ParametersSpanned for GetterProp {
746- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
739+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
747740 get_params_or_args_span_data (
748741 self . lo ( ) ,
749742 vec ! [ ] ,
@@ -756,7 +749,7 @@ impl ParametersSpanned for GetterProp {
756749}
757750
758751impl ParametersSpanned for SetterProp {
759- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
752+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
760753 get_params_or_args_span_data (
761754 self . lo ( ) ,
762755 vec ! [ self . param. span_data( ) ] ,
@@ -767,7 +760,7 @@ impl ParametersSpanned for SetterProp {
767760}
768761
769762impl ParametersSpanned for ArrowExpr {
770- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
763+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
771764 get_params_or_args_span_data (
772765 self . lo ( ) ,
773766 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -778,7 +771,7 @@ impl ParametersSpanned for ArrowExpr {
778771}
779772
780773impl ParametersSpanned for CallExpr {
781- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
774+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
782775 get_params_or_args_span_data (
783776 self . lo ( ) ,
784777 self . args . iter ( ) . map ( |a| a. span_data ( ) ) . collect ( ) ,
@@ -789,7 +782,7 @@ impl ParametersSpanned for CallExpr {
789782}
790783
791784impl ParametersSpanned for NewExpr {
792- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
785+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
793786 get_params_or_args_span_data (
794787 self . lo ( ) ,
795788 self . args . as_ref ( ) . map ( |args| args. iter ( ) . map ( |a| a. span_data ( ) ) . collect ( ) ) . unwrap_or_default ( ) ,
@@ -800,7 +793,7 @@ impl ParametersSpanned for NewExpr {
800793}
801794
802795impl ParametersSpanned for TsCallSignatureDecl {
803- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
796+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
804797 get_params_or_args_span_data (
805798 self . lo ( ) ,
806799 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -811,7 +804,7 @@ impl ParametersSpanned for TsCallSignatureDecl {
811804}
812805
813806impl ParametersSpanned for TsConstructSignatureDecl {
814- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
807+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
815808 get_params_or_args_span_data (
816809 self . lo ( ) ,
817810 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -822,7 +815,7 @@ impl ParametersSpanned for TsConstructSignatureDecl {
822815}
823816
824817impl ParametersSpanned for TsMethodSignature {
825- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
818+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
826819 get_params_or_args_span_data (
827820 self . lo ( ) ,
828821 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -833,7 +826,7 @@ impl ParametersSpanned for TsMethodSignature {
833826}
834827
835828impl ParametersSpanned for TsConstructorType {
836- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
829+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
837830 get_params_or_args_span_data (
838831 self . lo ( ) ,
839832 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -844,7 +837,7 @@ impl ParametersSpanned for TsConstructorType {
844837}
845838
846839impl ParametersSpanned for TsFnType {
847- fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < SpanData > {
840+ fn get_parameters_span_data ( & self , context : & mut Context ) -> Option < Span > {
848841 get_params_or_args_span_data (
849842 self . lo ( ) ,
850843 self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -854,7 +847,7 @@ impl ParametersSpanned for TsFnType {
854847 }
855848}
856849
857- fn get_params_or_args_span_data ( start_pos : BytePos , params : Vec < SpanData > , following_pos : BytePos , context : & mut Context ) -> Option < SpanData > {
850+ fn get_params_or_args_span_data ( start_pos : BytePos , params : Vec < Span > , following_pos : BytePos , context : & mut Context ) -> Option < Span > {
858851 let close_token_end = {
859852 let close_paren = if let Some ( last_param) = params. last ( ) {
860853 context. token_finder . get_first_close_paren_after ( last_param)
@@ -893,7 +886,7 @@ fn get_params_or_args_span_data(start_pos: BytePos, params: Vec<SpanData>, follo
893886 }
894887 } ?;
895888
896- Some ( SpanData {
889+ Some ( Span {
897890 lo : close_token_start,
898891 hi : close_token_end,
899892 ctxt : Default :: default ( ) ,
0 commit comments