1
1
use std:: str;
2
2
use std:: collections:: { HashSet , HashMap } ;
3
3
use 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 } ;
7
7
use super :: * ;
8
8
use super :: super :: configuration:: * ;
9
9
use super :: super :: utils:: Stack ;
@@ -20,7 +20,7 @@ pub struct Context<'a> {
20
20
stored_infos : HashMap < ( BytePos , BytePos ) , Info > ,
21
21
stored_info_ranges : HashMap < ( BytePos , BytePos ) , ( Info , Info ) > ,
22
22
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 ) > ,
24
24
if_stmt_last_brace_condition_ref : Option < ConditionReference > ,
25
25
/// Used for ensuring nodes are parsed in order.
26
26
#[ cfg( debug_assertions) ]
@@ -147,37 +147,31 @@ pub trait NodeKinded {
147
147
}
148
148
149
149
pub trait SpanDataContainer {
150
- fn span_data ( & self ) -> SpanData ;
150
+ fn span_data ( & self ) -> Span ;
151
151
}
152
152
153
153
impl SpanDataContainer for & dyn SpanDataContainer {
154
- fn span_data ( & self ) -> SpanData {
154
+ fn span_data ( & self ) -> Span {
155
155
( * * self ) . span_data ( )
156
156
}
157
157
}
158
158
159
159
impl SpanDataContainer for TokenAndSpan {
160
- fn span_data ( & self ) -> SpanData {
160
+ fn span_data ( & self ) -> Span {
161
161
self . span
162
162
}
163
163
}
164
164
165
165
impl 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
174
168
}
175
169
}
176
170
177
171
impl SpanDataContainer for BytePos {
178
- fn span_data ( & self ) -> SpanData {
172
+ fn span_data ( & self ) -> Span {
179
173
// todo: change this so this allocation isn't necessary
180
- SpanData {
174
+ Span {
181
175
lo : * self ,
182
176
hi : * self ,
183
177
ctxt : Default :: default ( ) ,
@@ -186,7 +180,7 @@ impl SpanDataContainer for BytePos {
186
180
}
187
181
188
182
impl < T > SpanDataContainer for std:: boxed:: Box < T > where T : SpanDataContainer {
189
- fn span_data ( & self ) -> SpanData {
183
+ fn span_data ( & self ) -> Span {
190
184
( * * self ) . span_data ( )
191
185
}
192
186
}
@@ -332,8 +326,8 @@ macro_rules! generate_node {
332
326
}
333
327
}
334
328
impl SpanDataContainer for $node_name {
335
- fn span_data( & self ) -> SpanData {
336
- self . span( ) . data ( )
329
+ fn span_data( & self ) -> Span {
330
+ self . span( )
337
331
}
338
332
}
339
333
) *
@@ -353,9 +347,9 @@ macro_rules! generate_node {
353
347
) *
354
348
355
349
impl <' a> SpanDataContainer for Node <' a> {
356
- fn span_data( & self ) -> SpanData {
350
+ fn span_data( & self ) -> Span {
357
351
match self {
358
- $( Node :: $node_name( node) => node. span( ) . data ( ) ) ,*
352
+ $( Node :: $node_name( node) => node. span( ) ) ,*
359
353
}
360
354
}
361
355
}
@@ -588,9 +582,9 @@ macro_rules! generate_traits {
588
582
}
589
583
590
584
impl SpanDataContainer for $enum_name {
591
- fn span_data( & self ) -> SpanData {
585
+ fn span_data( & self ) -> Span {
592
586
match self {
593
- $( $enum_name:: $member_name( node) => node. span( ) . data ( ) ) ,*
587
+ $( $enum_name:: $member_name( node) => node. span( ) ) ,*
594
588
}
595
589
}
596
590
}
@@ -648,32 +642,31 @@ generate_traits![JSXObject, JSXMemberExpr, Ident];
648
642
/* InnerSpanned */
649
643
650
644
pub trait InnerSpanned {
651
- fn get_inner_span_data ( & self , context : & mut Context ) -> SpanData ;
645
+ fn get_inner_span_data ( & self , context : & mut Context ) -> Span ;
652
646
}
653
647
654
648
impl InnerSpanned for BlockStmt {
655
- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
649
+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
656
650
get_inner_span_for_object_like ( & self . span )
657
651
}
658
652
}
659
653
660
654
impl InnerSpanned for ObjectLit {
661
- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
655
+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
662
656
get_inner_span_for_object_like ( & self . span )
663
657
}
664
658
}
665
659
666
660
impl InnerSpanned for ObjectPat {
667
- fn get_inner_span_data ( & self , _: & mut Context ) -> SpanData {
661
+ fn get_inner_span_data ( & self , _: & mut Context ) -> Span {
668
662
get_inner_span_for_object_like ( & self . span )
669
663
}
670
664
}
671
665
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 ) ,
677
670
ctxt : Default :: default ( )
678
671
}
679
672
}
@@ -702,11 +695,11 @@ impl<'a> Node<'a> {
702
695
/* ParametersSpanned */
703
696
704
697
pub 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 > ;
706
699
}
707
700
708
701
impl 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 > {
710
703
get_params_or_args_span_data (
711
704
self . lo ( ) ,
712
705
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -719,13 +712,13 @@ impl ParametersSpanned for Function {
719
712
}
720
713
721
714
impl 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 > {
723
716
self . function . get_parameters_span_data ( context)
724
717
}
725
718
}
726
719
727
720
impl 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 > {
729
722
get_params_or_args_span_data (
730
723
self . lo ( ) ,
731
724
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -737,13 +730,13 @@ impl ParametersSpanned for Constructor {
737
730
}
738
731
739
732
impl 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 > {
741
734
self . function . get_parameters_span_data ( context)
742
735
}
743
736
}
744
737
745
738
impl 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 > {
747
740
get_params_or_args_span_data (
748
741
self . lo ( ) ,
749
742
vec ! [ ] ,
@@ -756,7 +749,7 @@ impl ParametersSpanned for GetterProp {
756
749
}
757
750
758
751
impl 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 > {
760
753
get_params_or_args_span_data (
761
754
self . lo ( ) ,
762
755
vec ! [ self . param. span_data( ) ] ,
@@ -767,7 +760,7 @@ impl ParametersSpanned for SetterProp {
767
760
}
768
761
769
762
impl 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 > {
771
764
get_params_or_args_span_data (
772
765
self . lo ( ) ,
773
766
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -778,7 +771,7 @@ impl ParametersSpanned for ArrowExpr {
778
771
}
779
772
780
773
impl 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 > {
782
775
get_params_or_args_span_data (
783
776
self . lo ( ) ,
784
777
self . args . iter ( ) . map ( |a| a. span_data ( ) ) . collect ( ) ,
@@ -789,7 +782,7 @@ impl ParametersSpanned for CallExpr {
789
782
}
790
783
791
784
impl 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 > {
793
786
get_params_or_args_span_data (
794
787
self . lo ( ) ,
795
788
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 {
800
793
}
801
794
802
795
impl 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 > {
804
797
get_params_or_args_span_data (
805
798
self . lo ( ) ,
806
799
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -811,7 +804,7 @@ impl ParametersSpanned for TsCallSignatureDecl {
811
804
}
812
805
813
806
impl 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 > {
815
808
get_params_or_args_span_data (
816
809
self . lo ( ) ,
817
810
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -822,7 +815,7 @@ impl ParametersSpanned for TsConstructSignatureDecl {
822
815
}
823
816
824
817
impl 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 > {
826
819
get_params_or_args_span_data (
827
820
self . lo ( ) ,
828
821
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -833,7 +826,7 @@ impl ParametersSpanned for TsMethodSignature {
833
826
}
834
827
835
828
impl 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 > {
837
830
get_params_or_args_span_data (
838
831
self . lo ( ) ,
839
832
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -844,7 +837,7 @@ impl ParametersSpanned for TsConstructorType {
844
837
}
845
838
846
839
impl 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 > {
848
841
get_params_or_args_span_data (
849
842
self . lo ( ) ,
850
843
self . params . iter ( ) . map ( |x| x. span_data ( ) ) . collect ( ) ,
@@ -854,7 +847,7 @@ impl ParametersSpanned for TsFnType {
854
847
}
855
848
}
856
849
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 > {
858
851
let close_token_end = {
859
852
let close_paren = if let Some ( last_param) = params. last ( ) {
860
853
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
893
886
}
894
887
} ?;
895
888
896
- Some ( SpanData {
889
+ Some ( Span {
897
890
lo : close_token_start,
898
891
hi : close_token_end,
899
892
ctxt : Default :: default ( ) ,
0 commit comments