@abaplint/core 2.113.126 → 2.113.127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/build/abaplint.d.ts +17 -3
  2. package/build/src/abap/5_syntax/_builtin.js +10 -10
  3. package/build/src/abap/5_syntax/_procedural.js +2 -2
  4. package/build/src/abap/5_syntax/_type_utils.js +13 -7
  5. package/build/src/abap/5_syntax/basic_types.js +10 -10
  6. package/build/src/abap/5_syntax/expressions/attribute_chain.js +5 -5
  7. package/build/src/abap/5_syntax/expressions/attribute_name.js +6 -6
  8. package/build/src/abap/5_syntax/expressions/cast.js +9 -9
  9. package/build/src/abap/5_syntax/expressions/compare.js +4 -4
  10. package/build/src/abap/5_syntax/expressions/component_chain.js +8 -8
  11. package/build/src/abap/5_syntax/expressions/component_compare.js +3 -3
  12. package/build/src/abap/5_syntax/expressions/component_compare_simple.js +3 -3
  13. package/build/src/abap/5_syntax/expressions/component_cond.js +3 -3
  14. package/build/src/abap/5_syntax/expressions/component_name.js +4 -4
  15. package/build/src/abap/5_syntax/expressions/cond.js +3 -3
  16. package/build/src/abap/5_syntax/expressions/cond_body.js +5 -5
  17. package/build/src/abap/5_syntax/expressions/constant.js +1 -1
  18. package/build/src/abap/5_syntax/expressions/conv_body.js +4 -4
  19. package/build/src/abap/5_syntax/expressions/corresponding_body.js +3 -3
  20. package/build/src/abap/5_syntax/expressions/data_definition.js +3 -3
  21. package/build/src/abap/5_syntax/expressions/database_table.js +1 -1
  22. package/build/src/abap/5_syntax/expressions/default.js +3 -3
  23. package/build/src/abap/5_syntax/expressions/dereference.js +2 -2
  24. package/build/src/abap/5_syntax/expressions/dynamic.js +2 -2
  25. package/build/src/abap/5_syntax/expressions/field_assignment.js +2 -2
  26. package/build/src/abap/5_syntax/expressions/field_chain.js +19 -19
  27. package/build/src/abap/5_syntax/expressions/field_length.js +2 -2
  28. package/build/src/abap/5_syntax/expressions/field_offset.js +2 -2
  29. package/build/src/abap/5_syntax/expressions/filter_body.js +3 -3
  30. package/build/src/abap/5_syntax/expressions/for.js +8 -8
  31. package/build/src/abap/5_syntax/expressions/form_param.js +2 -2
  32. package/build/src/abap/5_syntax/expressions/fstarget.js +2 -2
  33. package/build/src/abap/5_syntax/expressions/inline_data.js +1 -1
  34. package/build/src/abap/5_syntax/expressions/inline_field_definition.js +3 -3
  35. package/build/src/abap/5_syntax/expressions/inline_fs.js +1 -1
  36. package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +2 -2
  37. package/build/src/abap/5_syntax/expressions/let.js +2 -2
  38. package/build/src/abap/5_syntax/expressions/loop_group_by.js +6 -6
  39. package/build/src/abap/5_syntax/expressions/message_source.js +2 -2
  40. package/build/src/abap/5_syntax/expressions/method_call_body.js +3 -3
  41. package/build/src/abap/5_syntax/expressions/method_call_chain.js +14 -14
  42. package/build/src/abap/5_syntax/expressions/method_call_param.js +2 -2
  43. package/build/src/abap/5_syntax/expressions/method_def_returning.js +1 -1
  44. package/build/src/abap/5_syntax/expressions/method_param.js +4 -4
  45. package/build/src/abap/5_syntax/expressions/method_parameters.js +7 -7
  46. package/build/src/abap/5_syntax/expressions/method_source.js +20 -20
  47. package/build/src/abap/5_syntax/expressions/new_object.js +10 -10
  48. package/build/src/abap/5_syntax/expressions/raise_with.js +2 -2
  49. package/build/src/abap/5_syntax/expressions/reduce_body.js +7 -7
  50. package/build/src/abap/5_syntax/expressions/reduce_next.js +3 -3
  51. package/build/src/abap/5_syntax/expressions/select.js +25 -25
  52. package/build/src/abap/5_syntax/expressions/select_loop.js +2 -2
  53. package/build/src/abap/5_syntax/expressions/source.js +30 -30
  54. package/build/src/abap/5_syntax/expressions/source_field.js +2 -2
  55. package/build/src/abap/5_syntax/expressions/source_field_symbol.js +2 -2
  56. package/build/src/abap/5_syntax/expressions/sql_compare.js +6 -6
  57. package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +2 -2
  58. package/build/src/abap/5_syntax/expressions/sql_from.js +3 -3
  59. package/build/src/abap/5_syntax/expressions/sql_in.js +4 -4
  60. package/build/src/abap/5_syntax/expressions/sql_order_by.js +2 -2
  61. package/build/src/abap/5_syntax/expressions/sql_source.js +3 -3
  62. package/build/src/abap/5_syntax/expressions/string_template.js +6 -6
  63. package/build/src/abap/5_syntax/expressions/switch_body.js +4 -4
  64. package/build/src/abap/5_syntax/expressions/table_expression.js +2 -2
  65. package/build/src/abap/5_syntax/expressions/target.js +19 -19
  66. package/build/src/abap/5_syntax/expressions/type_table.js +2 -2
  67. package/build/src/abap/5_syntax/expressions/type_table_key.js +1 -1
  68. package/build/src/abap/5_syntax/expressions/value_body.js +10 -10
  69. package/build/src/abap/5_syntax/statements/add.js +2 -2
  70. package/build/src/abap/5_syntax/statements/add_corresponding.js +2 -2
  71. package/build/src/abap/5_syntax/statements/append.js +6 -6
  72. package/build/src/abap/5_syntax/statements/assert.js +1 -1
  73. package/build/src/abap/5_syntax/statements/assign.js +8 -8
  74. package/build/src/abap/5_syntax/statements/authority_check.js +1 -1
  75. package/build/src/abap/5_syntax/statements/call.js +3 -3
  76. package/build/src/abap/5_syntax/statements/call_badi.js +3 -3
  77. package/build/src/abap/5_syntax/statements/call_function.js +6 -6
  78. package/build/src/abap/5_syntax/statements/call_kernel.js +1 -1
  79. package/build/src/abap/5_syntax/statements/call_transaction.js +2 -2
  80. package/build/src/abap/5_syntax/statements/call_transformation.js +4 -4
  81. package/build/src/abap/5_syntax/statements/case.js +1 -1
  82. package/build/src/abap/5_syntax/statements/case_type.js +1 -1
  83. package/build/src/abap/5_syntax/statements/catch.js +2 -2
  84. package/build/src/abap/5_syntax/statements/check.js +1 -1
  85. package/build/src/abap/5_syntax/statements/class_data.js +2 -2
  86. package/build/src/abap/5_syntax/statements/class_implementation.js +1 -1
  87. package/build/src/abap/5_syntax/statements/clear.js +2 -2
  88. package/build/src/abap/5_syntax/statements/close_dataset.js +1 -1
  89. package/build/src/abap/5_syntax/statements/collect.js +3 -3
  90. package/build/src/abap/5_syntax/statements/commit_entities.js +3 -3
  91. package/build/src/abap/5_syntax/statements/concatenate.js +5 -5
  92. package/build/src/abap/5_syntax/statements/condense.js +1 -1
  93. package/build/src/abap/5_syntax/statements/convert.js +7 -7
  94. package/build/src/abap/5_syntax/statements/create_data.js +3 -3
  95. package/build/src/abap/5_syntax/statements/create_object.js +9 -6
  96. package/build/src/abap/5_syntax/statements/data.js +2 -2
  97. package/build/src/abap/5_syntax/statements/delete_cluster.js +1 -1
  98. package/build/src/abap/5_syntax/statements/delete_database.js +4 -4
  99. package/build/src/abap/5_syntax/statements/delete_internal.js +4 -4
  100. package/build/src/abap/5_syntax/statements/delete_memory.js +1 -1
  101. package/build/src/abap/5_syntax/statements/delete_report.js +1 -1
  102. package/build/src/abap/5_syntax/statements/describe.js +10 -10
  103. package/build/src/abap/5_syntax/statements/divide.js +2 -2
  104. package/build/src/abap/5_syntax/statements/do.js +2 -2
  105. package/build/src/abap/5_syntax/statements/editor_call.js +2 -2
  106. package/build/src/abap/5_syntax/statements/else_if.js +1 -1
  107. package/build/src/abap/5_syntax/statements/export.js +2 -2
  108. package/build/src/abap/5_syntax/statements/find.js +5 -5
  109. package/build/src/abap/5_syntax/statements/format.js +1 -1
  110. package/build/src/abap/5_syntax/statements/get_badi.js +3 -3
  111. package/build/src/abap/5_syntax/statements/get_bit.js +3 -3
  112. package/build/src/abap/5_syntax/statements/get_cursor.js +1 -1
  113. package/build/src/abap/5_syntax/statements/get_locale.js +2 -2
  114. package/build/src/abap/5_syntax/statements/get_parameter.js +3 -3
  115. package/build/src/abap/5_syntax/statements/get_reference.js +3 -3
  116. package/build/src/abap/5_syntax/statements/get_run_time.js +2 -2
  117. package/build/src/abap/5_syntax/statements/get_time.js +2 -2
  118. package/build/src/abap/5_syntax/statements/if.js +1 -1
  119. package/build/src/abap/5_syntax/statements/import.js +2 -2
  120. package/build/src/abap/5_syntax/statements/import_dynpro.js +2 -2
  121. package/build/src/abap/5_syntax/statements/include_type.js +2 -2
  122. package/build/src/abap/5_syntax/statements/insert_database.js +4 -4
  123. package/build/src/abap/5_syntax/statements/insert_field_group.js +3 -3
  124. package/build/src/abap/5_syntax/statements/insert_internal.js +7 -7
  125. package/build/src/abap/5_syntax/statements/insert_report.js +1 -1
  126. package/build/src/abap/5_syntax/statements/insert_textpool.js +1 -1
  127. package/build/src/abap/5_syntax/statements/log_point.js +1 -1
  128. package/build/src/abap/5_syntax/statements/loop.js +10 -10
  129. package/build/src/abap/5_syntax/statements/loop_at_screen.js +2 -2
  130. package/build/src/abap/5_syntax/statements/message.js +5 -5
  131. package/build/src/abap/5_syntax/statements/modify_database.js +5 -5
  132. package/build/src/abap/5_syntax/statements/modify_entities.js +3 -3
  133. package/build/src/abap/5_syntax/statements/modify_internal.js +4 -4
  134. package/build/src/abap/5_syntax/statements/modify_screen.js +1 -1
  135. package/build/src/abap/5_syntax/statements/move.js +4 -4
  136. package/build/src/abap/5_syntax/statements/move_corresponding.js +2 -2
  137. package/build/src/abap/5_syntax/statements/multiply.js +2 -2
  138. package/build/src/abap/5_syntax/statements/open_dataset.js +2 -2
  139. package/build/src/abap/5_syntax/statements/pack.js +2 -2
  140. package/build/src/abap/5_syntax/statements/parameter.js +1 -1
  141. package/build/src/abap/5_syntax/statements/perform.js +4 -4
  142. package/build/src/abap/5_syntax/statements/raise.js +8 -8
  143. package/build/src/abap/5_syntax/statements/raise_event.js +1 -1
  144. package/build/src/abap/5_syntax/statements/read_entities.js +3 -3
  145. package/build/src/abap/5_syntax/statements/read_report.js +2 -2
  146. package/build/src/abap/5_syntax/statements/read_table.js +8 -8
  147. package/build/src/abap/5_syntax/statements/read_textpool.js +2 -2
  148. package/build/src/abap/5_syntax/statements/receive.js +2 -2
  149. package/build/src/abap/5_syntax/statements/replace.js +2 -2
  150. package/build/src/abap/5_syntax/statements/scan.js +2 -2
  151. package/build/src/abap/5_syntax/statements/search.js +1 -1
  152. package/build/src/abap/5_syntax/statements/select.js +1 -1
  153. package/build/src/abap/5_syntax/statements/select_loop.js +1 -1
  154. package/build/src/abap/5_syntax/statements/selectoption.js +4 -4
  155. package/build/src/abap/5_syntax/statements/set_bit.js +2 -2
  156. package/build/src/abap/5_syntax/statements/set_handler.js +2 -2
  157. package/build/src/abap/5_syntax/statements/set_locale.js +2 -2
  158. package/build/src/abap/5_syntax/statements/set_parameter.js +1 -1
  159. package/build/src/abap/5_syntax/statements/set_pf_status.js +1 -1
  160. package/build/src/abap/5_syntax/statements/set_titlebar.js +1 -1
  161. package/build/src/abap/5_syntax/statements/shift.js +2 -2
  162. package/build/src/abap/5_syntax/statements/sort.js +2 -2
  163. package/build/src/abap/5_syntax/statements/split.js +3 -3
  164. package/build/src/abap/5_syntax/statements/static.js +1 -1
  165. package/build/src/abap/5_syntax/statements/submit.js +3 -3
  166. package/build/src/abap/5_syntax/statements/subtract.js +2 -2
  167. package/build/src/abap/5_syntax/statements/subtract_corresponding.js +2 -2
  168. package/build/src/abap/5_syntax/statements/syntax_check.js +2 -2
  169. package/build/src/abap/5_syntax/statements/system_call.js +1 -1
  170. package/build/src/abap/5_syntax/statements/transfer.js +2 -2
  171. package/build/src/abap/5_syntax/statements/translate.js +2 -2
  172. package/build/src/abap/5_syntax/statements/truncate_dataset.js +1 -1
  173. package/build/src/abap/5_syntax/statements/type.js +3 -3
  174. package/build/src/abap/5_syntax/statements/unpack.js +2 -2
  175. package/build/src/abap/5_syntax/statements/update_database.js +4 -4
  176. package/build/src/abap/5_syntax/statements/wait.js +2 -2
  177. package/build/src/abap/5_syntax/statements/when.js +1 -1
  178. package/build/src/abap/5_syntax/statements/when_type.js +3 -3
  179. package/build/src/abap/5_syntax/statements/while.js +3 -3
  180. package/build/src/abap/5_syntax/statements/with.js +2 -2
  181. package/build/src/abap/5_syntax/statements/with_loop.js +2 -2
  182. package/build/src/abap/5_syntax/statements/write.js +4 -4
  183. package/build/src/abap/5_syntax/structures/data.js +1 -1
  184. package/build/src/abap/5_syntax/structures/statics.js +1 -1
  185. package/build/src/abap/types/basic/any_type.js +13 -0
  186. package/build/src/abap/types/basic/cgeneric_type.js +7 -0
  187. package/build/src/abap/types/basic/integer_type.js +7 -4
  188. package/build/src/abap/types/basic/string_type.js +7 -4
  189. package/build/src/abap/types/basic/void_type.js +10 -0
  190. package/build/src/abap/types/basic/xgeneric_type.js +7 -0
  191. package/build/src/abap/types/basic/xstring_type.js +13 -0
  192. package/build/src/abap/types/event_definition.js +1 -1
  193. package/build/src/abap/types/form_definition.js +3 -3
  194. package/build/src/abap/types/method_parameters.js +11 -11
  195. package/build/src/cds/cds_determine_types.js +5 -5
  196. package/build/src/ddic.js +11 -11
  197. package/build/src/objects/authorization_check_field.js +1 -1
  198. package/build/src/objects/lock_object.js +1 -1
  199. package/build/src/objects/maintenance_and_transport_object.js +2 -2
  200. package/build/src/objects/table.js +1 -1
  201. package/build/src/objects/view.js +1 -1
  202. package/build/src/registry.js +1 -1
  203. package/package.json +4 -4
@@ -172,6 +172,9 @@ declare class Any implements IStructure {
172
172
  }
173
173
 
174
174
  declare class AnyType extends AbstractType {
175
+ private static readonly singletons;
176
+ static get(input?: AbstractTypeData): AnyType;
177
+ private constructor();
175
178
  toText(): string;
176
179
  toABAP(): string;
177
180
  isGeneric(): boolean;
@@ -970,6 +973,9 @@ declare class CDSWithParameters extends Expression {
970
973
  }
971
974
 
972
975
  declare class CGenericType extends AbstractType {
976
+ private static readonly singleton;
977
+ static get(): CGenericType;
978
+ private constructor();
973
979
  toText(): string;
974
980
  isGeneric(): boolean;
975
981
  toABAP(): string;
@@ -3695,7 +3701,7 @@ declare class Integer8Type extends AbstractType {
3695
3701
  }
3696
3702
 
3697
3703
  declare class IntegerType extends AbstractType {
3698
- private static readonly singleton;
3704
+ private static readonly singletons;
3699
3705
  static get(input?: AbstractTypeData): IntegerType;
3700
3706
  private constructor();
3701
3707
  /** fully qualified symbolic name of the type */
@@ -6626,7 +6632,7 @@ declare class StringToken extends Token {
6626
6632
  }
6627
6633
 
6628
6634
  declare class StringType extends AbstractType {
6629
- private static readonly singleton;
6635
+ private static readonly singletons;
6630
6636
  static get(input?: AbstractTypeData): StringType;
6631
6637
  private constructor();
6632
6638
  /** fully qualified symbolic name of the type */
@@ -7397,8 +7403,10 @@ export declare enum Visibility {
7397
7403
  }
7398
7404
 
7399
7405
  declare class VoidType extends AbstractType {
7406
+ private static readonly singletons;
7407
+ static get(voided: string | undefined, qualifiedName?: string): VoidType;
7400
7408
  private readonly voided;
7401
- constructor(voided: string | undefined, qualifiedName?: string);
7409
+ private constructor();
7402
7410
  getVoided(): string | undefined;
7403
7411
  toABAP(): string;
7404
7412
  toText(): string;
@@ -7598,6 +7606,9 @@ declare class WStaticArrowW extends Token {
7598
7606
  }
7599
7607
 
7600
7608
  declare class XGenericType extends AbstractType {
7609
+ private static readonly singleton;
7610
+ static get(): XGenericType;
7611
+ private constructor();
7601
7612
  toText(): string;
7602
7613
  isGeneric(): boolean;
7603
7614
  toABAP(): string;
@@ -7614,6 +7625,9 @@ declare class XSequenceType extends AbstractType {
7614
7625
  }
7615
7626
 
7616
7627
  declare class XStringType extends AbstractType {
7628
+ private static readonly singletons;
7629
+ static get(input?: AbstractTypeData): XStringType;
7630
+ private constructor();
7617
7631
  toText(): string;
7618
7632
  isGeneric(): boolean;
7619
7633
  toABAP(): string;
@@ -167,14 +167,14 @@ class BuiltIn {
167
167
  ret.push(...BuiltIn.getCache);
168
168
  for (const e of extras) {
169
169
  const id = new tokens_1.Identifier(new position_1.Position(this.row++, 1), e);
170
- ret.push(new _typed_identifier_1.TypedIdentifier(id, BuiltIn.filename, new basic_1.VoidType(e), ["read_only" /* IdentifierMeta.ReadOnly */, "built-in" /* IdentifierMeta.BuiltIn */], "'?'"));
170
+ ret.push(new _typed_identifier_1.TypedIdentifier(id, BuiltIn.filename, basic_1.VoidType.get(e), ["read_only" /* IdentifierMeta.ReadOnly */, "built-in" /* IdentifierMeta.BuiltIn */], "'?'"));
171
171
  }
172
172
  return ret;
173
173
  }
174
174
  /////////////////////////////
175
175
  buildVariable(name) {
176
176
  const id = new tokens_1.Identifier(new position_1.Position(this.row++, 1), name);
177
- return new _typed_identifier_1.TypedIdentifier(id, BuiltIn.filename, new basic_1.VoidType(name), ["built-in" /* IdentifierMeta.BuiltIn */]);
177
+ return new _typed_identifier_1.TypedIdentifier(id, BuiltIn.filename, basic_1.VoidType.get(name), ["built-in" /* IdentifierMeta.BuiltIn */]);
178
178
  }
179
179
  buildSY() {
180
180
  const components = [];
@@ -226,7 +226,7 @@ class BuiltIn {
226
226
  components.push({ name: "dayst", type: new basic_1.CharacterType(1) });
227
227
  components.push({ name: "ftype", type: new basic_1.CharacterType(1) });
228
228
  components.push({ name: "appli", type: new basic_1.HexType(2) });
229
- components.push({ name: "fdayw", type: new basic_1.AnyType() });
229
+ components.push({ name: "fdayw", type: basic_1.AnyType.get() });
230
230
  components.push({ name: "ccurs", type: new basic_1.PackedType(5, 0) });
231
231
  components.push({ name: "ccurt", type: new basic_1.PackedType(5, 0) });
232
232
  components.push({ name: "debug", type: new basic_1.CharacterType(1) });
@@ -363,7 +363,7 @@ class BuiltIn {
363
363
  buildConstant(name, type, value) {
364
364
  const id = new tokens_1.Identifier(new position_1.Position(this.row++, 1), name);
365
365
  if (type === undefined) {
366
- type = new basic_1.VoidType(name);
366
+ type = basic_1.VoidType.get(name);
367
367
  }
368
368
  if (value === undefined) {
369
369
  value = "'?'";
@@ -411,7 +411,7 @@ BuiltIn.methods = {
411
411
  mandatory: {
412
412
  "val": basic_1.IntegerType.get(),
413
413
  },
414
- return: new basic_1.XStringType(),
414
+ return: basic_1.XStringType.get(),
415
415
  version: version_1.Version.v702,
416
416
  },
417
417
  "BOOLC": {
@@ -430,7 +430,7 @@ BuiltIn.methods = {
430
430
  optional: {
431
431
  "bit": basic_1.IntegerType.get(),
432
432
  },
433
- return: new basic_1.XStringType(),
433
+ return: basic_1.XStringType.get(),
434
434
  version: version_1.Version.v702,
435
435
  },
436
436
  "CEIL": {
@@ -496,7 +496,7 @@ BuiltIn.methods = {
496
496
  "CONCAT_LINES_OF": {
497
497
  counter: BuiltIn.counter++,
498
498
  mandatory: {
499
- "table": new basic_1.TableType(new basic_1.AnyType(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
499
+ "table": new basic_1.TableType(basic_1.AnyType.get(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
500
500
  },
501
501
  optional: {
502
502
  "sep": basic_1.CLikeType.get(),
@@ -777,7 +777,7 @@ BuiltIn.methods = {
777
777
  "LINE_EXISTS": {
778
778
  counter: BuiltIn.counter++,
779
779
  mandatory: {
780
- "val": new basic_1.AnyType(),
780
+ "val": basic_1.AnyType.get(),
781
781
  },
782
782
  return: new basic_1.CharacterType(1),
783
783
  predicate: true,
@@ -786,7 +786,7 @@ BuiltIn.methods = {
786
786
  "LINE_INDEX": {
787
787
  counter: BuiltIn.counter++,
788
788
  mandatory: {
789
- "val": new basic_1.AnyType(),
789
+ "val": basic_1.AnyType.get(),
790
790
  },
791
791
  return: basic_1.IntegerType.get(),
792
792
  version: version_1.Version.v740sp02,
@@ -794,7 +794,7 @@ BuiltIn.methods = {
794
794
  "LINES": {
795
795
  counter: BuiltIn.counter++,
796
796
  mandatory: {
797
- "val": new basic_1.TableType(new basic_1.AnyType(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
797
+ "val": new basic_1.TableType(basic_1.AnyType.get(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
798
798
  },
799
799
  return: basic_1.IntegerType.get(),
800
800
  },
@@ -89,7 +89,7 @@ class Procedural {
89
89
  for (const param of definition.getParameters()) {
90
90
  let found = undefined;
91
91
  if (param.type === undefined || param.type === "") {
92
- found = new basic_1.AnyType();
92
+ found = basic_1.AnyType.get();
93
93
  }
94
94
  else if (param.type.includes("=>")) {
95
95
  // then its a type from global INTF or CLAS
@@ -160,7 +160,7 @@ class Procedural {
160
160
  }
161
161
  }
162
162
  if (found instanceof basic_1.UnknownType && new ddic_1.DDIC(this.reg).inErrorNamespace(param.type) === false) {
163
- found = new basic_1.VoidType(param.type);
163
+ found = basic_1.VoidType.get(param.type);
164
164
  }
165
165
  if (allNames.has(param.name.toUpperCase())) {
166
166
  // yea, IMPORTING and EXPORTING can have the same name
@@ -237,7 +237,7 @@ class TypeUtils {
237
237
  return calculated;
238
238
  }
239
239
  isAssignableStrict(source, target, node) {
240
- var _a, _b, _c, _d, _e, _f, _g, _h;
240
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
241
241
  const calculated = node ? this.isCalculated(node) : false;
242
242
  /*
243
243
  console.dir(source);
@@ -263,16 +263,22 @@ class TypeUtils {
263
263
  }
264
264
  return false;
265
265
  }
266
- else if (target instanceof basic_1.StringType) {
266
+ else if (target instanceof basic_1.XStringType) {
267
267
  if (((_c = source.getAbstractTypeData()) === null || _c === void 0 ? void 0 : _c.derivedFromConstant) === true) {
268
268
  return true;
269
269
  }
270
270
  return false;
271
271
  }
272
+ else if (target instanceof basic_1.StringType) {
273
+ if (((_d = source.getAbstractTypeData()) === null || _d === void 0 ? void 0 : _d.derivedFromConstant) === true) {
274
+ return true;
275
+ }
276
+ return false;
277
+ }
272
278
  }
273
279
  else if (source instanceof basic_1.HexType) {
274
280
  if (target instanceof basic_1.HexType) {
275
- if (((_d = source.getAbstractTypeData()) === null || _d === void 0 ? void 0 : _d.derivedFromConstant) === true) {
281
+ if (((_e = source.getAbstractTypeData()) === null || _e === void 0 ? void 0 : _e.derivedFromConstant) === true) {
276
282
  return source.getLength() <= target.getLength();
277
283
  }
278
284
  return source.getLength() === target.getLength();
@@ -281,7 +287,7 @@ class TypeUtils {
281
287
  return false;
282
288
  }
283
289
  else if (target instanceof basic_1.IntegerType || target instanceof basic_1.Integer8Type) {
284
- if (((_e = source.getAbstractTypeData()) === null || _e === void 0 ? void 0 : _e.derivedFromConstant) === true) {
290
+ if (((_f = source.getAbstractTypeData()) === null || _f === void 0 ? void 0 : _f.derivedFromConstant) === true) {
285
291
  return true;
286
292
  }
287
293
  return false;
@@ -299,7 +305,7 @@ class TypeUtils {
299
305
  */
300
306
  }
301
307
  else if (target instanceof basic_1.IntegerType) {
302
- if (((_f = source.getAbstractTypeData()) === null || _f === void 0 ? void 0 : _f.derivedFromConstant) === true) {
308
+ if (((_g = source.getAbstractTypeData()) === null || _g === void 0 ? void 0 : _g.derivedFromConstant) === true) {
303
309
  return true;
304
310
  }
305
311
  return false;
@@ -309,7 +315,7 @@ class TypeUtils {
309
315
  return false;
310
316
  }
311
317
  else if (target instanceof basic_1.XSequenceType || target instanceof basic_1.XStringType) {
312
- if (((_g = source.getAbstractTypeData()) === null || _g === void 0 ? void 0 : _g.derivedFromConstant) === true) {
318
+ if (((_h = source.getAbstractTypeData()) === null || _h === void 0 ? void 0 : _h.derivedFromConstant) === true) {
313
319
  return true;
314
320
  }
315
321
  return false;
@@ -353,7 +359,7 @@ class TypeUtils {
353
359
  return false;
354
360
  }
355
361
  else if (target instanceof basic_1.Integer8Type || target instanceof basic_1.PackedType) {
356
- if (((_h = source.getAbstractTypeData()) === null || _h === void 0 ? void 0 : _h.derivedFromConstant) === true) {
362
+ if (((_j = source.getAbstractTypeData()) === null || _j === void 0 ? void 0 : _j.derivedFromConstant) === true) {
357
363
  return true;
358
364
  }
359
365
  return false;
@@ -118,7 +118,7 @@ class BasicTypes {
118
118
  }
119
119
  let type = undefined;
120
120
  if (children[1] && (children[1].getFirstToken().getStr() === "=>" || children[1].getFirstToken().getStr() === "->")) {
121
- type = new field_chain_1.FieldChain().runSyntax(chain, this.input, _reference_1.ReferenceType.TypeReference);
121
+ type = field_chain_1.FieldChain.runSyntax(chain, this.input, _reference_1.ReferenceType.TypeReference);
122
122
  }
123
123
  else {
124
124
  const name = children.shift().getFirstToken().getStr();
@@ -141,7 +141,7 @@ class BasicTypes {
141
141
  }
142
142
  if (type === undefined && this.input.scope.isAnyOO() === false && this.input.scope.getDDIC().inErrorNamespace(name) === false) {
143
143
  this.input.scope.addReference(chain.getChildren()[0].getFirstToken(), undefined, _reference_1.ReferenceType.VoidType, this.input.filename);
144
- return new Types.VoidType(name);
144
+ return Types.VoidType.get(name);
145
145
  }
146
146
  while (children.length > 0) {
147
147
  const child = children.shift();
@@ -383,7 +383,7 @@ class BasicTypes {
383
383
  || text === "TYPE HASHED TABLE"
384
384
  || text === "TYPE INDEX TABLE"
385
385
  || text === "TYPE ANY TABLE") {
386
- return new Types.TableType(new Types.AnyType(), options);
386
+ return new Types.TableType(Types.AnyType.get(), options);
387
387
  }
388
388
  else if (text.startsWith("TYPE RANGE OF ")) {
389
389
  const sub = node.findFirstExpression(Expressions.TypeName);
@@ -420,13 +420,13 @@ class BasicTypes {
420
420
  const name = typename.concatTokens();
421
421
  const type = (_d = this.input.scope.getDDIC().lookupDDLS(name)) === null || _d === void 0 ? void 0 : _d.type;
422
422
  if (type) {
423
- return new Types.TableType(new basic_1.VoidType("RapTodo"), options);
423
+ return new Types.TableType(basic_1.VoidType.get("RapTodo"), options);
424
424
  }
425
425
  else if (this.input.scope.getDDIC().inErrorNamespace(name)) {
426
426
  return new Types.UnknownType(`DDLS ${name} not found`);
427
427
  }
428
428
  else {
429
- return new Types.VoidType(name);
429
+ return Types.VoidType.get(name);
430
430
  }
431
431
  }
432
432
  // fallback to old style syntax, OCCURS etc
@@ -493,7 +493,7 @@ class BasicTypes {
493
493
  || text === "TYPE HASHED TABLE"
494
494
  || text === "TYPE INDEX TABLE"
495
495
  || text === "TYPE ANY TABLE") {
496
- return new Types.TableType(new Types.AnyType(), { withHeader: node.concatTokens().toUpperCase().includes("WITH HEADER LINE"), keyType: Types.TableKeyType.default });
496
+ return new Types.TableType(Types.AnyType.get(), { withHeader: node.concatTokens().toUpperCase().includes("WITH HEADER LINE"), keyType: Types.TableKeyType.default });
497
497
  }
498
498
  else if (text.startsWith("LIKE ")) {
499
499
  let sub = node.findFirstExpression(Expressions.Type);
@@ -632,7 +632,7 @@ class BasicTypes {
632
632
  const obj = this.input.scope.findObjectDefinition(className);
633
633
  if (obj === undefined && this.input.scope.getDDIC().inErrorNamespace(className) === false) {
634
634
  this.input.scope.addReference(expr.getFirstToken(), undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, this.input.filename, { ooName: className.toUpperCase() });
635
- return new Types.VoidType(className);
635
+ return Types.VoidType.get(className);
636
636
  }
637
637
  else if (obj === undefined) {
638
638
  return new Types.UnknownType("Could not resolve top " + className + ", resolveTypeChain");
@@ -714,7 +714,7 @@ class BasicTypes {
714
714
  }
715
715
  if (foundType === undefined && this.input.scope.getDDIC().inErrorNamespace(subs[0]) === false) {
716
716
  this.input.scope.addReference(expr.getFirstToken(), undefined, _reference_1.ReferenceType.VoidType, this.input.filename);
717
- return new Types.VoidType(subs[0]);
717
+ return Types.VoidType.get(subs[0]);
718
718
  }
719
719
  else if (foundType instanceof Types.VoidType) {
720
720
  this.input.scope.addReference(expr.getFirstToken(), undefined, _reference_1.ReferenceType.VoidType, this.input.filename);
@@ -839,11 +839,11 @@ class BasicTypes {
839
839
  return new Types.DataReference(new Types.DataType());
840
840
  }
841
841
  if (this.input.scope.isBadiDef(name) === true) {
842
- return new Types.VoidType(name);
842
+ return Types.VoidType.get(name);
843
843
  }
844
844
  if (((_a = this.input.scope.getDDIC()) === null || _a === void 0 ? void 0 : _a.inErrorNamespace(name)) === false) {
845
845
  // this.scope.addReference(chain.getFirstToken(), undefined, ReferenceType.VoidType, this.filename);
846
- return new Types.VoidType(name);
846
+ return Types.VoidType.get(name);
847
847
  }
848
848
  return new Types.UnknownType("REF, unable to resolve " + name);
849
849
  }
@@ -7,25 +7,25 @@ const _object_oriented_1 = require("../_object_oriented");
7
7
  const expressions_1 = require("../../2_statements/expressions");
8
8
  const _syntax_input_1 = require("../_syntax_input");
9
9
  class AttributeChain {
10
- runSyntax(inputContext, node, input, type) {
10
+ static runSyntax(inputContext, node, input, type) {
11
11
  if (inputContext instanceof void_type_1.VoidType) {
12
12
  return inputContext;
13
13
  }
14
14
  else if (!(inputContext instanceof object_reference_type_1.ObjectReferenceType)) {
15
15
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), "Not an object reference(AttributeChain)"));
16
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
16
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
17
17
  }
18
18
  const children = node.getChildren().slice();
19
19
  const first = children[0];
20
20
  if (!(first.get() instanceof expressions_1.AttributeName)) {
21
21
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), "AttributeChain, unexpected first child"));
22
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
22
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
23
23
  }
24
24
  const def = input.scope.findObjectDefinition(inputContext.getIdentifierName());
25
25
  if (def === undefined) {
26
26
  const message = "Definition for \"" + inputContext.getIdentifierName() + "\" not found in scope(AttributeChain)";
27
27
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
28
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
28
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29
29
  }
30
30
  const nameToken = first.getFirstToken();
31
31
  const name = nameToken.getStr();
@@ -37,7 +37,7 @@ class AttributeChain {
37
37
  if (context === undefined) {
38
38
  const message = "Attribute or constant \"" + name + "\" not found in \"" + def.getName() + "\"";
39
39
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, nameToken, message));
40
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
40
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
41
41
  }
42
42
  for (const t of type) {
43
43
  input.scope.addReference(nameToken, context, t, input.filename);
@@ -10,7 +10,7 @@ const _reference_1 = require("../_reference");
10
10
  const basic_1 = require("../../types/basic");
11
11
  const _syntax_input_1 = require("../_syntax_input");
12
12
  class AttributeName {
13
- runSyntax(context, node, input, type, error = true) {
13
+ static runSyntax(context, node, input, type, error = true) {
14
14
  if (context instanceof void_type_1.VoidType) {
15
15
  return context;
16
16
  }
@@ -21,7 +21,7 @@ class AttributeName {
21
21
  if (def === undefined) {
22
22
  const message = "Definition for \"" + context.getIdentifierName() + "\" not found in scope(AttributeName)";
23
23
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
24
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
24
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
25
25
  }
26
26
  const token = node.getFirstToken();
27
27
  const name = token.getStr();
@@ -34,7 +34,7 @@ class AttributeName {
34
34
  if (error === true) {
35
35
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
36
36
  }
37
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
37
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
38
38
  }
39
39
  if (type) {
40
40
  input.scope.addReference(token, found, type, input.filename);
@@ -56,19 +56,19 @@ class AttributeName {
56
56
  if (!(sub instanceof structure_type_1.StructureType)) {
57
57
  const message = "Data reference not structured";
58
58
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
59
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
59
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
60
60
  }
61
61
  ret = sub.getComponentByName(name);
62
62
  if (ret === undefined) {
63
63
  const message = "Component \"" + name + "\" not found in data reference structure";
64
64
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
65
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
65
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
66
66
  }
67
67
  }
68
68
  else {
69
69
  const message = "Not an object reference, attribute name";
70
70
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
71
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
71
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
72
72
  }
73
73
  return ret;
74
74
  }
@@ -9,21 +9,21 @@ const basic_types_1 = require("../basic_types");
9
9
  const _reference_1 = require("../_reference");
10
10
  const _syntax_input_1 = require("../_syntax_input");
11
11
  class Cast {
12
- runSyntax(node, input, targetType) {
12
+ static runSyntax(node, input, targetType) {
13
13
  const sourceNode = node.findDirectExpression(Expressions.Source);
14
14
  if (sourceNode === undefined) {
15
15
  const message = "Cast, source node not found";
16
16
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
17
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
17
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
18
18
  }
19
- const sourceType = new source_1.Source().runSyntax(sourceNode, input);
19
+ const sourceType = source_1.Source.runSyntax(sourceNode, input);
20
20
  let tt = undefined;
21
21
  const typeExpression = node.findDirectExpression(Expressions.TypeNameOrInfer);
22
22
  const typeName = typeExpression === null || typeExpression === void 0 ? void 0 : typeExpression.concatTokens();
23
23
  if (typeName === undefined) {
24
24
  const message = "Cast, child TypeNameOrInfer not found";
25
25
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
26
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
26
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
27
27
  }
28
28
  else if (typeName === "#" && targetType) {
29
29
  tt = targetType;
@@ -31,7 +31,7 @@ class Cast {
31
31
  else if (typeName === "#") {
32
32
  const message = "Cast, todo, infer type";
33
33
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
34
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
34
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
35
35
  }
36
36
  if (tt === undefined && typeExpression) {
37
37
  const basic = new basic_types_1.BasicTypes(input);
@@ -47,7 +47,7 @@ class Cast {
47
47
  tt = new basic_1.DataReference(tt, typeName);
48
48
  }
49
49
  if (tt === undefined && input.scope.getDDIC().inErrorNamespace(typeName) === false) {
50
- tt = new basic_1.VoidType(typeName);
50
+ tt = basic_1.VoidType.get(typeName);
51
51
  }
52
52
  else if (typeName.toUpperCase() === "OBJECT") {
53
53
  return new basic_1.GenericObjectReferenceType();
@@ -56,14 +56,14 @@ class Cast {
56
56
  // todo, this should be an UnknownType instead?
57
57
  const message = "Type \"" + typeName + "\" not found in scope, Cast";
58
58
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, typeExpression.getFirstToken(), message));
59
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
59
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
60
60
  }
61
61
  }
62
- new source_1.Source().addIfInferred(node, input, tt);
62
+ source_1.Source.addIfInferred(node, input, tt);
63
63
  if (new _type_utils_1.TypeUtils(input.scope).isCastable(sourceType, tt) === false) {
64
64
  const message = "Cast, incompatible types";
65
65
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
66
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
66
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
67
67
  }
68
68
  return tt;
69
69
  }
@@ -6,15 +6,15 @@ const source_1 = require("./source");
6
6
  const method_call_chain_1 = require("./method_call_chain");
7
7
  const source_field_symbol_1 = require("./source_field_symbol");
8
8
  class Compare {
9
- runSyntax(node, input) {
9
+ static runSyntax(node, input) {
10
10
  for (const t of node.findDirectExpressions(Expressions.Source)) {
11
- new source_1.Source().runSyntax(t, input);
11
+ source_1.Source.runSyntax(t, input);
12
12
  }
13
13
  for (const t of node.findDirectExpressions(Expressions.SourceFieldSymbolChain)) {
14
- new source_field_symbol_1.SourceFieldSymbol().runSyntax(t, input);
14
+ source_field_symbol_1.SourceFieldSymbol.runSyntax(t, input);
15
15
  }
16
16
  for (const t of node.findDirectExpressions(Expressions.MethodCallChain)) {
17
- new method_call_chain_1.MethodCallChain().runSyntax(t, input);
17
+ method_call_chain_1.MethodCallChain.runSyntax(t, input);
18
18
  }
19
19
  }
20
20
  }
@@ -10,7 +10,7 @@ const _reference_1 = require("../_reference");
10
10
  const _object_oriented_1 = require("../_object_oriented");
11
11
  const _syntax_input_1 = require("../_syntax_input");
12
12
  class ComponentChain {
13
- runSyntax(context, node, input) {
13
+ static runSyntax(context, node, input) {
14
14
  if (context === undefined) {
15
15
  return undefined;
16
16
  }
@@ -29,21 +29,21 @@ class ComponentChain {
29
29
  if (!(context instanceof structure_type_1.StructureType)) {
30
30
  const message = "ComponentChain, not a structure";
31
31
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
32
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
32
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
33
33
  }
34
34
  }
35
35
  else if (concat === "=>") {
36
36
  if (!(context instanceof basic_1.ObjectReferenceType)) {
37
37
  const message = "ComponentChain, not a reference";
38
38
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
39
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
39
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
40
40
  }
41
41
  }
42
42
  else if (concat === "->") {
43
43
  if (!(context instanceof basic_1.ObjectReferenceType) && !(context instanceof basic_1.DataReference)) {
44
44
  const message = "ComponentChain, not a reference";
45
45
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
46
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
46
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
47
47
  }
48
48
  }
49
49
  }
@@ -60,7 +60,7 @@ class ComponentChain {
60
60
  if (context === undefined) {
61
61
  const message = "Component \"" + name + "\" not found in structure";
62
62
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
63
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
63
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
64
64
  }
65
65
  }
66
66
  else if (context instanceof basic_1.ObjectReferenceType) {
@@ -69,7 +69,7 @@ class ComponentChain {
69
69
  if (def === undefined) {
70
70
  const message = id.getName() + " not found in scope";
71
71
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
72
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
72
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
73
73
  }
74
74
  const helper = new _object_oriented_1.ObjectOriented(input.scope);
75
75
  const found = helper.searchAttributeName(def, name);
@@ -77,7 +77,7 @@ class ComponentChain {
77
77
  if (context === undefined) {
78
78
  const message = "Attribute \"" + name + "\" not found";
79
79
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
80
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
80
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
81
81
  }
82
82
  else {
83
83
  const extra = {
@@ -90,7 +90,7 @@ class ComponentChain {
90
90
  else {
91
91
  const message = "ComponentChain, not a structure, " + (context === null || context === void 0 ? void 0 : context.constructor.name);
92
92
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
93
- return new void_type_1.VoidType(_syntax_input_1.CheckSyntaxKey);
93
+ return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
94
94
  }
95
95
  }
96
96
  }
@@ -6,16 +6,16 @@ const _syntax_input_1 = require("../_syntax_input");
6
6
  const component_chain_1 = require("./component_chain");
7
7
  const source_1 = require("./source");
8
8
  class ComponentCompare {
9
- runSyntax(node, input, type) {
9
+ static runSyntax(node, input, type) {
10
10
  const chain = node.findDirectExpression(Expressions.ComponentChainSimple);
11
11
  if (chain === undefined) {
12
12
  const message = "ComponentCompare, chain not found";
13
13
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
14
14
  return;
15
15
  }
16
- new component_chain_1.ComponentChain().runSyntax(type, chain, input);
16
+ component_chain_1.ComponentChain.runSyntax(type, chain, input);
17
17
  for (const s of node.findDirectExpressions(Expressions.Source)) {
18
- new source_1.Source().runSyntax(s, input);
18
+ source_1.Source.runSyntax(s, input);
19
19
  }
20
20
  }
21
21
  }
@@ -8,18 +8,18 @@ const _type_utils_1 = require("../_type_utils");
8
8
  const component_chain_1 = require("./component_chain");
9
9
  const source_1 = require("./source");
10
10
  class ComponentCompareSimple {
11
- runSyntax(node, input, rowType) {
11
+ static runSyntax(node, input, rowType) {
12
12
  let targetType = undefined;
13
13
  for (const c of node.getChildren()) {
14
14
  if (c instanceof nodes_1.ExpressionNode) {
15
15
  if (c.get() instanceof Expressions.ComponentChainSimple) {
16
- targetType = new component_chain_1.ComponentChain().runSyntax(rowType, c, input);
16
+ targetType = component_chain_1.ComponentChain.runSyntax(rowType, c, input);
17
17
  }
18
18
  else if (c.get() instanceof Expressions.Dynamic) {
19
19
  targetType = undefined;
20
20
  }
21
21
  else if (c.get() instanceof Expressions.Source) {
22
- const sourceType = new source_1.Source().runSyntax(c, input, targetType);
22
+ const sourceType = source_1.Source.runSyntax(c, input, targetType);
23
23
  if (targetType && new _type_utils_1.TypeUtils(input.scope).isAssignable(sourceType, targetType) === false) {
24
24
  const message = "ComponentCompareSimple, incompatible types";
25
25
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -4,15 +4,15 @@ exports.ComponentCond = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const component_compare_1 = require("./component_compare");
6
6
  class ComponentCond {
7
- runSyntax(node, input, type) {
7
+ static runSyntax(node, input, type) {
8
8
  for (const t of node.findDirectExpressions(Expressions.ComponentCondSub)) {
9
9
  const c = t.findDirectExpression(Expressions.ComponentCond);
10
10
  if (c) {
11
- new ComponentCond().runSyntax(c, input, type);
11
+ ComponentCond.runSyntax(c, input, type);
12
12
  }
13
13
  }
14
14
  for (const t of node.findDirectExpressions(Expressions.ComponentCompare)) {
15
- new component_compare_1.ComponentCompare().runSyntax(t, input, type);
15
+ component_compare_1.ComponentCompare.runSyntax(t, input, type);
16
16
  }
17
17
  }
18
18
  }