@@ -8,50 +8,45 @@ import haxeparser.Data.EnumFlag;
88import haxeparser .Data .EnumConstructor ;
99import haxe .macro .Expr ;
1010
11- // FIXME ComplexTypeUtils differ from ExprUtils ONLY in place for callback call and it's type. Maybe it's possible to generate such functions.
1211class ComplexTypeUtils {
1312
14- public static function walkFile (file : {pack : Array <String >, decls : Array <TypeDecl > }, cb : ComplexType -> Void ) {
15- for (decl in file .decls ){
16- walkTypeDecl (decl , cb );
17- }
13+ public static function walkFile (file : {pack : Array <String >, decls : Array <TypeDecl > }, cb : ComplexType -> Void ) {
14+ for (decl in file .decls ) walkTypeDecl (decl , cb );
1815 }
1916
2017 public static function walkTypeDecl (td : TypeDecl , cb : ComplexType -> Void ) {
2118 switch (td .decl ){
22- case EClass (d ):
23- walkClass (d ,cb );
24- case EEnum (d ):
25- walkEnum (d ,cb );
26- case EAbstract (a ):
27- walkAbstract (a ,cb );
28- case EImport (sl , mode ):
29- walkImport (sl , mode ,cb );
30- case ETypedef (d ):
31- walkTypedef (d ,cb );
32- case EUsing (path ):
33- walkTypePath (path ,cb );
19+ case EClass (d ):
20+ walkClass (d , cb );
21+ case EEnum (d ):
22+ walkEnum (d , cb );
23+ case EAbstract (a ):
24+ walkAbstract (a , cb );
25+ case EImport (sl , mode ):
26+ walkImport (sl , mode , cb );
27+ case ETypedef (d ):
28+ walkTypedef (d , cb );
29+ case EUsing (path ):
30+ walkTypePath (path , cb );
3431 }
3532 }
3633
37- static function walkMeta (meta : Metadata , cb : ComplexType -> Void ){
38- for (m in meta ) for (p in m .params ) walkExpr (p ,cb );
34+ static function walkMeta (meta : Metadata , cb : ComplexType -> Void ) {
35+ for (m in meta ) for (p in m .params ) walkExpr (p , cb );
3936 }
4037
41- static function walkCommonDefinition <A ,B > (d : Definition <A , B >, cb : ComplexType -> Void ) {
42- for (p in d .params ) walkTypeParamDecl (p ,cb );
38+ static function walkCommonDefinition <A , B > (d : Definition <A , B >, cb : ComplexType -> Void ) {
39+ for (p in d .params ) walkTypeParamDecl (p , cb );
4340 walkMeta (d .meta , cb );
4441 }
4542
4643 public static function walkClass (d : Definition <ClassFlag , Array <Field >>, cb : ComplexType -> Void ) {
4744 walkCommonDefinition (d , cb );
4845 for (f in d .flags ) switch f {
49- case HExtends (t ) | HImplements (t ): walkTypePath (t ,cb );
46+ case HExtends (t ) | HImplements (t ): walkTypePath (t , cb );
5047 default :
5148 }
52- for (f in d .data ) {
53- walkField (f ,cb );
54- }
49+ for (f in d .data ) walkField (f , cb );
5550 }
5651
5752 public static function walkEnum (d : Definition <EnumFlag , Array <EnumConstructor >>, cb : ComplexType -> Void ) {
@@ -61,22 +56,18 @@ class ComplexTypeUtils {
6156 for (arg in ec .args ) {
6257 walkComplexType (arg .type , cb );
6358 }
64- for (param in ec .params ) {
65- walkTypeParamDecl (param , cb );
66- }
59+ for (param in ec .params ) walkTypeParamDecl (param , cb );
6760 if (ec .type != null ) walkComplexType (ec .type , cb );
6861 }
6962 }
7063
7164 public static function walkAbstract (d : Definition <AbstractFlag , Array <Field >>, cb : ComplexType -> Void ) {
7265 walkCommonDefinition (d , cb );
7366 for (f in d .flags ) switch f {
74- case AFromType (ct ) | AToType (ct ) | AIsType (ct ): walkComplexType (ct ,cb );
67+ case AFromType (ct ) | AToType (ct ) | AIsType (ct ): walkComplexType (ct , cb );
7568 default :
7669 }
77- for (f in d .data ) {
78- walkField (f ,cb );
79- }
70+ for (f in d .data ) walkField (f , cb );
8071 }
8172
8273 public static function walkImport (sl , mode , cb : ComplexType -> Void ) {
@@ -105,12 +96,8 @@ class ComplexTypeUtils {
10596 }
10697
10798 public static function walkTypeParamDecl (tp : TypeParamDecl , cb : ComplexType -> Void ) {
108- if (tp .constraints != null ) {
109- for (c in tp .constraints ) walkComplexType (c , cb );
110- }
111- if (tp .params != null ) {
112- for (t in tp .params ) walkTypeParamDecl (t , cb );
113- }
99+ if (tp .constraints != null ) for (c in tp .constraints ) walkComplexType (c , cb );
100+ if (tp .params != null ) for (t in tp .params ) walkTypeParamDecl (t , cb );
114101 }
115102
116103 public static function walkFunction (f : Function , cb : ComplexType -> Void ) {
@@ -120,17 +107,11 @@ class ComplexTypeUtils {
120107 }
121108 if (f .ret != null ) walkComplexType (f .ret , cb );
122109 if (f .expr != null ) walkExpr (f .expr , cb );
123- if (f .params != null ) {
124- for (tp in f .params ) {
125- walkTypeParamDecl (tp , cb );
126- }
127- }
110+ if (f .params != null ) for (tp in f .params ) walkTypeParamDecl (tp , cb );
128111 }
129112
130113 public static function walkCase (c : Case , cb : ComplexType -> Void ) {
131- for (v in c .values ) {
132- walkExpr (v , cb );
133- }
114+ for (v in c .values ) walkExpr (v , cb );
134115 if (c .guard != null ) walkExpr (c .guard , cb );
135116 if (c .expr != null ) walkExpr (c .expr , cb );
136117 }
@@ -181,33 +162,23 @@ class ComplexTypeUtils {
181162 case EField (e , field ): walkExpr (e , cb );
182163 case EParenthesis (e ): walkExpr (e , cb );
183164 case EObjectDecl (fields ):
184- for (f in fields ) {
185- walkExpr (f .expr , cb );
186- }
165+ for (f in fields ) walkExpr (f .expr , cb );
187166 case EArrayDecl (values ):
188- for (v in values ) {
189- walkExpr (v , cb );
190- }
167+ for (v in values ) walkExpr (v , cb );
191168 case ECall (e , params ):
192169 walkExpr (e , cb );
193- for (p in params ) {
194- walkExpr (p , cb );
195- }
170+ for (p in params ) walkExpr (p , cb );
196171 case ENew (t , params ):
197172 walkTypePath (t , cb );
198- for (p in params ) {
199- walkExpr (p , cb );
200- }
173+ for (p in params ) walkExpr (p , cb );
201174 case EUnop (op , postFix , e ): walkExpr (e , cb );
202175 case EVars (vars ):
203176 for (v in vars ) {
204177 walkVar (v , cb );
205178 }
206179 case EFunction (name , f ): walkFunction (f , cb );
207180 case EBlock (exprs ):
208- for (e in exprs ) {
209- walkExpr (e , cb );
210- }
181+ for (e in exprs ) walkExpr (e , cb );
211182 case EFor (it , expr ): walkExpr (it , cb ); walkExpr (expr , cb );
212183 case EIn (e1 , e2 ): walkExpr (e1 , cb ); walkExpr (e2 , cb );
213184 case EIf (econd , eif , eelse ):
@@ -218,9 +189,7 @@ class ComplexTypeUtils {
218189 case ESwitch (e , cases , edef ):
219190 walkExpr (e , cb );
220191 for (c in cases ) walkCase (c , cb );
221- if (edef != null && edef .expr != null ){
222- walkExpr (edef , cb );
223- }
192+ if (edef != null && edef .expr != null ) walkExpr (edef , cb );
224193 case ETry (e , catches ):
225194 walkExpr (e , cb );
226195 for (c in catches ) walkCatch (c , cb );
@@ -243,11 +212,8 @@ class ComplexTypeUtils {
243212 walkExpr (e , cb );
244213 walkComplexType (t , cb );
245214 case EMeta (s , e ):
246- if (s .params != null ) {
247- for (mp in s .params ) walkExpr (mp , cb );
248- }
215+ if (s .params != null ) for (mp in s .params ) walkExpr (mp , cb );
249216 walkExpr (e , cb );
250217 }
251218 }
252-
253- }
219+ }
0 commit comments