@abaplint/cli 2.101.13 → 2.101.15

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 (2) hide show
  1. package/build/cli.js +295 -225
  2. package/package.json +3 -3
package/build/cli.js CHANGED
@@ -893,6 +893,7 @@ async function run(arg) {
893
893
  await reg.parseAsync({ progress, outputPerformance: arg.performanceInformation });
894
894
  if (arg.runFix !== true) {
895
895
  issues = issues.concat(reg.findIssues({ progress, outputPerformance: arg.performanceInformation }));
896
+ // require('v8').writeHeapSnapshot();
896
897
  }
897
898
  }
898
899
  catch (error) {
@@ -19371,14 +19372,14 @@ class BuiltIn {
19371
19372
  ret.push(this.buildConstant("abap_undefined", new basic_1.CharacterType(1, { qualifiedName: "ABAP_BOOL", ddicName: "ABAP_BOOL" }), "'-'"));
19372
19373
  ret.push(this.buildConstant("abap_off", new basic_1.CharacterType(1, { qualifiedName: "ABAP_BOOL", ddicName: "ABAP_BOOL" }), "' '"));
19373
19374
  ret.push(this.buildConstant("abap_on", new basic_1.CharacterType(1, { qualifiedName: "ABAP_BOOL", ddicName: "ABAP_BOOL" }), "'X'"));
19374
- ret.push(this.buildConstant("col_background", new basic_1.IntegerType(), "0"));
19375
- ret.push(this.buildConstant("col_heading", new basic_1.IntegerType(), "1"));
19376
- ret.push(this.buildConstant("col_key", new basic_1.IntegerType(), "4"));
19377
- ret.push(this.buildConstant("col_negative", new basic_1.IntegerType(), "6"));
19378
- ret.push(this.buildConstant("col_group", new basic_1.IntegerType(), "7"));
19379
- ret.push(this.buildConstant("col_normal", new basic_1.IntegerType(), "2"));
19380
- ret.push(this.buildConstant("col_positive", new basic_1.IntegerType(), "5"));
19381
- ret.push(this.buildConstant("col_total", new basic_1.IntegerType(), "3"));
19375
+ ret.push(this.buildConstant("col_background", basic_1.IntegerType.get(), "0"));
19376
+ ret.push(this.buildConstant("col_heading", basic_1.IntegerType.get(), "1"));
19377
+ ret.push(this.buildConstant("col_key", basic_1.IntegerType.get(), "4"));
19378
+ ret.push(this.buildConstant("col_negative", basic_1.IntegerType.get(), "6"));
19379
+ ret.push(this.buildConstant("col_group", basic_1.IntegerType.get(), "7"));
19380
+ ret.push(this.buildConstant("col_normal", basic_1.IntegerType.get(), "2"));
19381
+ ret.push(this.buildConstant("col_positive", basic_1.IntegerType.get(), "5"));
19382
+ ret.push(this.buildConstant("col_total", basic_1.IntegerType.get(), "3"));
19382
19383
  ret.push(this.buildConstant("space", new basic_1.CharacterType(1, { derivedFromConstant: true }), "' '"));
19383
19384
  for (const e of extras) {
19384
19385
  const id = new tokens_1.Identifier(new position_1.Position(this.row++, 1), e);
@@ -19390,50 +19391,50 @@ class BuiltIn {
19390
19391
  buildSY() {
19391
19392
  const components = [];
19392
19393
  // NOTE: fields must be in correct sequence for the syntax check
19393
- components.push({ name: "index", type: new basic_1.IntegerType() });
19394
- components.push({ name: "pagno", type: new basic_1.IntegerType() });
19395
- components.push({ name: "tabix", type: new basic_1.IntegerType() });
19396
- components.push({ name: "tfill", type: new basic_1.IntegerType() });
19397
- components.push({ name: "tlopc", type: new basic_1.IntegerType() });
19398
- components.push({ name: "tmaxl", type: new basic_1.IntegerType() });
19399
- components.push({ name: "toccu", type: new basic_1.IntegerType() });
19400
- components.push({ name: "ttabc", type: new basic_1.IntegerType() });
19401
- components.push({ name: "tstis", type: new basic_1.IntegerType() });
19402
- components.push({ name: "ttabi", type: new basic_1.IntegerType() });
19403
- components.push({ name: "dbcnt", type: new basic_1.IntegerType() });
19404
- components.push({ name: "fdpos", type: new basic_1.IntegerType() });
19405
- components.push({ name: "colno", type: new basic_1.IntegerType() });
19406
- components.push({ name: "linct", type: new basic_1.IntegerType() });
19407
- components.push({ name: "linno", type: new basic_1.IntegerType() });
19408
- components.push({ name: "linsz", type: new basic_1.IntegerType() });
19409
- components.push({ name: "pagct", type: new basic_1.IntegerType() });
19410
- components.push({ name: "macol", type: new basic_1.IntegerType() });
19411
- components.push({ name: "marow", type: new basic_1.IntegerType() });
19412
- components.push({ name: "tleng", type: new basic_1.IntegerType() });
19413
- components.push({ name: "sfoff", type: new basic_1.IntegerType() });
19414
- components.push({ name: "willi", type: new basic_1.IntegerType() });
19415
- components.push({ name: "lilli", type: new basic_1.IntegerType() });
19416
- components.push({ name: "subrc", type: new basic_1.IntegerType() });
19417
- components.push({ name: "fleng", type: new basic_1.IntegerType() });
19418
- components.push({ name: "cucol", type: new basic_1.IntegerType() });
19419
- components.push({ name: "curow", type: new basic_1.IntegerType() });
19420
- components.push({ name: "lsind", type: new basic_1.IntegerType() });
19421
- components.push({ name: "listi", type: new basic_1.IntegerType() });
19422
- components.push({ name: "stepl", type: new basic_1.IntegerType() });
19423
- components.push({ name: "tpagi", type: new basic_1.IntegerType() });
19424
- components.push({ name: "winx1", type: new basic_1.IntegerType() });
19425
- components.push({ name: "winy1", type: new basic_1.IntegerType() });
19426
- components.push({ name: "winx2", type: new basic_1.IntegerType() });
19427
- components.push({ name: "winy2", type: new basic_1.IntegerType() });
19428
- components.push({ name: "winco", type: new basic_1.IntegerType() });
19429
- components.push({ name: "winro", type: new basic_1.IntegerType() });
19430
- components.push({ name: "windi", type: new basic_1.IntegerType() });
19431
- components.push({ name: "srows", type: new basic_1.IntegerType() });
19432
- components.push({ name: "scols", type: new basic_1.IntegerType() });
19433
- components.push({ name: "loopc", type: new basic_1.IntegerType() });
19434
- components.push({ name: "folen", type: new basic_1.IntegerType() });
19435
- components.push({ name: "fodec", type: new basic_1.IntegerType() });
19436
- components.push({ name: "tzone", type: new basic_1.IntegerType() });
19394
+ components.push({ name: "index", type: basic_1.IntegerType.get() });
19395
+ components.push({ name: "pagno", type: basic_1.IntegerType.get() });
19396
+ components.push({ name: "tabix", type: basic_1.IntegerType.get() });
19397
+ components.push({ name: "tfill", type: basic_1.IntegerType.get() });
19398
+ components.push({ name: "tlopc", type: basic_1.IntegerType.get() });
19399
+ components.push({ name: "tmaxl", type: basic_1.IntegerType.get() });
19400
+ components.push({ name: "toccu", type: basic_1.IntegerType.get() });
19401
+ components.push({ name: "ttabc", type: basic_1.IntegerType.get() });
19402
+ components.push({ name: "tstis", type: basic_1.IntegerType.get() });
19403
+ components.push({ name: "ttabi", type: basic_1.IntegerType.get() });
19404
+ components.push({ name: "dbcnt", type: basic_1.IntegerType.get() });
19405
+ components.push({ name: "fdpos", type: basic_1.IntegerType.get() });
19406
+ components.push({ name: "colno", type: basic_1.IntegerType.get() });
19407
+ components.push({ name: "linct", type: basic_1.IntegerType.get() });
19408
+ components.push({ name: "linno", type: basic_1.IntegerType.get() });
19409
+ components.push({ name: "linsz", type: basic_1.IntegerType.get() });
19410
+ components.push({ name: "pagct", type: basic_1.IntegerType.get() });
19411
+ components.push({ name: "macol", type: basic_1.IntegerType.get() });
19412
+ components.push({ name: "marow", type: basic_1.IntegerType.get() });
19413
+ components.push({ name: "tleng", type: basic_1.IntegerType.get() });
19414
+ components.push({ name: "sfoff", type: basic_1.IntegerType.get() });
19415
+ components.push({ name: "willi", type: basic_1.IntegerType.get() });
19416
+ components.push({ name: "lilli", type: basic_1.IntegerType.get() });
19417
+ components.push({ name: "subrc", type: basic_1.IntegerType.get() });
19418
+ components.push({ name: "fleng", type: basic_1.IntegerType.get() });
19419
+ components.push({ name: "cucol", type: basic_1.IntegerType.get() });
19420
+ components.push({ name: "curow", type: basic_1.IntegerType.get() });
19421
+ components.push({ name: "lsind", type: basic_1.IntegerType.get() });
19422
+ components.push({ name: "listi", type: basic_1.IntegerType.get() });
19423
+ components.push({ name: "stepl", type: basic_1.IntegerType.get() });
19424
+ components.push({ name: "tpagi", type: basic_1.IntegerType.get() });
19425
+ components.push({ name: "winx1", type: basic_1.IntegerType.get() });
19426
+ components.push({ name: "winy1", type: basic_1.IntegerType.get() });
19427
+ components.push({ name: "winx2", type: basic_1.IntegerType.get() });
19428
+ components.push({ name: "winy2", type: basic_1.IntegerType.get() });
19429
+ components.push({ name: "winco", type: basic_1.IntegerType.get() });
19430
+ components.push({ name: "winro", type: basic_1.IntegerType.get() });
19431
+ components.push({ name: "windi", type: basic_1.IntegerType.get() });
19432
+ components.push({ name: "srows", type: basic_1.IntegerType.get() });
19433
+ components.push({ name: "scols", type: basic_1.IntegerType.get() });
19434
+ components.push({ name: "loopc", type: basic_1.IntegerType.get() });
19435
+ components.push({ name: "folen", type: basic_1.IntegerType.get() });
19436
+ components.push({ name: "fodec", type: basic_1.IntegerType.get() });
19437
+ components.push({ name: "tzone", type: basic_1.IntegerType.get() });
19437
19438
  components.push({ name: "dayst", type: new basic_1.CharacterType(1) });
19438
19439
  components.push({ name: "ftype", type: new basic_1.CharacterType(1) });
19439
19440
  components.push({ name: "appli", type: new basic_1.HexType(2) });
@@ -19444,7 +19445,7 @@ class BuiltIn {
19444
19445
  components.push({ name: "ctype", type: new basic_1.CharacterType(1) });
19445
19446
  components.push({ name: "input", type: new basic_1.CharacterType(1, { qualifiedName: "sy-input" }) });
19446
19447
  components.push({ name: "langu", type: new basic_1.CharacterType(1, { qualifiedName: "sy-langu", conversionExit: "ISOLA" }) });
19447
- components.push({ name: "modno", type: new basic_1.IntegerType() });
19448
+ components.push({ name: "modno", type: basic_1.IntegerType.get() });
19448
19449
  components.push({ name: "batch", type: new basic_1.CharacterType(1, { qualifiedName: "sy-batch" }) });
19449
19450
  components.push({ name: "binpt", type: new basic_1.CharacterType(1, { qualifiedName: "sy-binpt" }) });
19450
19451
  components.push({ name: "calld", type: new basic_1.CharacterType(1, { qualifiedName: "sy-calld" }) });
@@ -19454,7 +19455,7 @@ class BuiltIn {
19454
19455
  components.push({ name: "pri40", type: new basic_1.CharacterType(1) });
19455
19456
  components.push({ name: "rstrt", type: new basic_1.CharacterType(1) });
19456
19457
  components.push({ name: "wtitl", type: new basic_1.CharacterType(1, { qualifiedName: "sy-wtitl" }) });
19457
- components.push({ name: "cpage", type: new basic_1.IntegerType() });
19458
+ components.push({ name: "cpage", type: basic_1.IntegerType.get() });
19458
19459
  components.push({ name: "dbnam", type: new basic_1.CharacterType(20, { qualifiedName: "sy-dbnam" }) });
19459
19460
  components.push({ name: "mandt", type: new basic_1.CharacterType(3, { qualifiedName: "sy-mandt" }) });
19460
19461
  components.push({ name: "prefx", type: new basic_1.CharacterType(3) });
@@ -19552,8 +19553,8 @@ class BuiltIn {
19552
19553
  components.push({ name: "oncom", type: new basic_1.CharacterType(1) });
19553
19554
  components.push({ name: "vline", type: new basic_1.CharacterType(1, { qualifiedName: "sy-vline" }) });
19554
19555
  components.push({ name: "winsl", type: new basic_1.CharacterType(79) });
19555
- components.push({ name: "staco", type: new basic_1.IntegerType() });
19556
- components.push({ name: "staro", type: new basic_1.IntegerType() });
19556
+ components.push({ name: "staco", type: basic_1.IntegerType.get() });
19557
+ components.push({ name: "staro", type: basic_1.IntegerType.get() });
19557
19558
  components.push({ name: "datar", type: new basic_1.CharacterType(1, { qualifiedName: "sy-datar" }) });
19558
19559
  components.push({ name: "host", type: new basic_1.CharacterType(32, { qualifiedName: "sy-host" }) });
19559
19560
  components.push({ name: "locdb", type: new basic_1.CharacterType(1) });
@@ -19596,7 +19597,7 @@ BuiltIn.methods = [
19596
19597
  mandatory: {
19597
19598
  "val": new basic_1.FloatType(),
19598
19599
  },
19599
- return: new basic_1.IntegerType(),
19600
+ return: basic_1.IntegerType.get(),
19600
19601
  },
19601
19602
  {
19602
19603
  name: "ACOS",
@@ -19622,7 +19623,7 @@ BuiltIn.methods = [
19622
19623
  {
19623
19624
  name: "BIT-SET",
19624
19625
  mandatory: {
19625
- "val": new basic_1.IntegerType(),
19626
+ "val": basic_1.IntegerType.get(),
19626
19627
  },
19627
19628
  return: new basic_1.XStringType(),
19628
19629
  version: version_1.Version.v702,
@@ -19632,7 +19633,7 @@ BuiltIn.methods = [
19632
19633
  mandatory: {
19633
19634
  "val": new basic_1.CLikeType(),
19634
19635
  },
19635
- return: new basic_1.StringType(),
19636
+ return: basic_1.StringType.get(),
19636
19637
  version: version_1.Version.v702,
19637
19638
  },
19638
19639
  {
@@ -19641,7 +19642,7 @@ BuiltIn.methods = [
19641
19642
  "bool": new basic_1.CLikeType(),
19642
19643
  },
19643
19644
  optional: {
19644
- "bit": new basic_1.IntegerType(),
19645
+ "bit": basic_1.IntegerType.get(),
19645
19646
  },
19646
19647
  return: new basic_1.XStringType(),
19647
19648
  version: version_1.Version.v702,
@@ -19651,18 +19652,18 @@ BuiltIn.methods = [
19651
19652
  mandatory: {
19652
19653
  "val": new basic_1.FloatType(),
19653
19654
  },
19654
- return: new basic_1.IntegerType(),
19655
+ return: basic_1.IntegerType.get(),
19655
19656
  },
19656
19657
  {
19657
19658
  name: "CHAR_OFF",
19658
19659
  mandatory: {
19659
19660
  "val": new basic_1.CLikeType(),
19660
- "add": new basic_1.IntegerType(),
19661
+ "add": basic_1.IntegerType.get(),
19661
19662
  },
19662
19663
  optional: {
19663
- "off": new basic_1.IntegerType(),
19664
+ "off": basic_1.IntegerType.get(),
19664
19665
  },
19665
- return: new basic_1.IntegerType(),
19666
+ return: basic_1.IntegerType.get(),
19666
19667
  version: version_1.Version.v702,
19667
19668
  },
19668
19669
  {
@@ -19670,7 +19671,7 @@ BuiltIn.methods = [
19670
19671
  mandatory: {
19671
19672
  "val": new basic_1.CLikeType(),
19672
19673
  },
19673
- return: new basic_1.IntegerType(),
19674
+ return: basic_1.IntegerType.get(),
19674
19675
  },
19675
19676
  {
19676
19677
  name: "CMAX",
@@ -19686,7 +19687,7 @@ BuiltIn.methods = [
19686
19687
  "val7": new basic_1.CLikeType(),
19687
19688
  "val9": new basic_1.CLikeType(),
19688
19689
  },
19689
- return: new basic_1.StringType(),
19690
+ return: basic_1.StringType.get(),
19690
19691
  version: version_1.Version.v702,
19691
19692
  },
19692
19693
  {
@@ -19703,7 +19704,7 @@ BuiltIn.methods = [
19703
19704
  "val7": new basic_1.CLikeType(),
19704
19705
  "val9": new basic_1.CLikeType(),
19705
19706
  },
19706
- return: new basic_1.StringType(),
19707
+ return: basic_1.StringType.get(),
19707
19708
  version: version_1.Version.v702,
19708
19709
  },
19709
19710
  {
@@ -19714,7 +19715,7 @@ BuiltIn.methods = [
19714
19715
  optional: {
19715
19716
  "sep": new basic_1.CLikeType(),
19716
19717
  },
19717
- return: new basic_1.StringType(),
19718
+ return: basic_1.StringType.get(),
19718
19719
  version: version_1.Version.v702,
19719
19720
  },
19720
19721
  {
@@ -19727,7 +19728,7 @@ BuiltIn.methods = [
19727
19728
  "from": new basic_1.CLikeType(),
19728
19729
  "to": new basic_1.CLikeType(),
19729
19730
  },
19730
- return: new basic_1.StringType(),
19731
+ return: basic_1.StringType.get(),
19731
19732
  version: version_1.Version.v702,
19732
19733
  },
19733
19734
  {
@@ -19742,9 +19743,9 @@ BuiltIn.methods = [
19742
19743
  "regex": new basic_1.CLikeType(),
19743
19744
  "pcre": new basic_1.CLikeType(),
19744
19745
  "case": new basic_1.CharacterType(1),
19745
- "off": new basic_1.IntegerType(),
19746
- "len": new basic_1.IntegerType(),
19747
- "occ": new basic_1.IntegerType(),
19746
+ "off": basic_1.IntegerType.get(),
19747
+ "len": basic_1.IntegerType.get(),
19748
+ "occ": basic_1.IntegerType.get(),
19748
19749
  },
19749
19750
  return: new basic_1.CharacterType(1),
19750
19751
  predicate: true,
@@ -19759,9 +19760,9 @@ BuiltIn.methods = [
19759
19760
  "sub": new basic_1.CLikeType(),
19760
19761
  "start": new basic_1.CLikeType(),
19761
19762
  "end": new basic_1.CLikeType(),
19762
- "off": new basic_1.IntegerType(),
19763
- "len": new basic_1.IntegerType(),
19764
- "occ": new basic_1.IntegerType(),
19763
+ "off": basic_1.IntegerType.get(),
19764
+ "len": basic_1.IntegerType.get(),
19765
+ "occ": basic_1.IntegerType.get(),
19765
19766
  },
19766
19767
  predicate: true,
19767
19768
  return: new basic_1.CharacterType(1), version: version_1.Version.v702,
@@ -19775,9 +19776,9 @@ BuiltIn.methods = [
19775
19776
  "sub": new basic_1.CLikeType(),
19776
19777
  "start": new basic_1.CLikeType(),
19777
19778
  "end": new basic_1.CLikeType(),
19778
- "off": new basic_1.IntegerType(),
19779
- "len": new basic_1.IntegerType(),
19780
- "occ": new basic_1.IntegerType(),
19779
+ "off": basic_1.IntegerType.get(),
19780
+ "len": basic_1.IntegerType.get(),
19781
+ "occ": basic_1.IntegerType.get(),
19781
19782
  },
19782
19783
  return: new basic_1.CharacterType(1),
19783
19784
  predicate: true,
@@ -19807,10 +19808,10 @@ BuiltIn.methods = [
19807
19808
  "regex": new basic_1.CLikeType(),
19808
19809
  "pcre": new basic_1.CLikeType(),
19809
19810
  "case": new basic_1.CharacterType(1),
19810
- "off": new basic_1.IntegerType(),
19811
- "len": new basic_1.IntegerType(),
19811
+ "off": basic_1.IntegerType.get(),
19812
+ "len": basic_1.IntegerType.get(),
19812
19813
  },
19813
- return: new basic_1.IntegerType(),
19814
+ return: basic_1.IntegerType.get(),
19814
19815
  version: version_1.Version.v702,
19815
19816
  },
19816
19817
  {
@@ -19823,10 +19824,10 @@ BuiltIn.methods = [
19823
19824
  "regex": new basic_1.CLikeType(),
19824
19825
  "pcre": new basic_1.CLikeType(),
19825
19826
  "case": new basic_1.CharacterType(1),
19826
- "off": new basic_1.IntegerType(),
19827
- "len": new basic_1.IntegerType(),
19827
+ "off": basic_1.IntegerType.get(),
19828
+ "len": basic_1.IntegerType.get(),
19828
19829
  },
19829
- return: new basic_1.IntegerType(),
19830
+ return: basic_1.IntegerType.get(),
19830
19831
  version: version_1.Version.v702,
19831
19832
  },
19832
19833
  {
@@ -19839,10 +19840,10 @@ BuiltIn.methods = [
19839
19840
  "regex": new basic_1.CLikeType(),
19840
19841
  "pcre": new basic_1.CLikeType(),
19841
19842
  "case": new basic_1.CharacterType(1),
19842
- "off": new basic_1.IntegerType(),
19843
- "len": new basic_1.IntegerType(),
19843
+ "off": basic_1.IntegerType.get(),
19844
+ "len": basic_1.IntegerType.get(),
19844
19845
  },
19845
- return: new basic_1.IntegerType(),
19846
+ return: basic_1.IntegerType.get(),
19846
19847
  version: version_1.Version.v702,
19847
19848
  },
19848
19849
  {
@@ -19850,7 +19851,7 @@ BuiltIn.methods = [
19850
19851
  mandatory: {
19851
19852
  "val": new basic_1.CLikeType(),
19852
19853
  },
19853
- return: new basic_1.IntegerType(),
19854
+ return: basic_1.IntegerType.get(),
19854
19855
  },
19855
19856
  {
19856
19857
  name: "DISTANCE",
@@ -19858,7 +19859,7 @@ BuiltIn.methods = [
19858
19859
  "val1": new basic_1.CLikeType(),
19859
19860
  "val2": new basic_1.CLikeType(),
19860
19861
  },
19861
- return: new basic_1.IntegerType(),
19862
+ return: basic_1.IntegerType.get(),
19862
19863
  version: version_1.Version.v702,
19863
19864
  },
19864
19865
  {
@@ -19867,7 +19868,7 @@ BuiltIn.methods = [
19867
19868
  "val": new basic_1.CLikeType(),
19868
19869
  "format": new basic_1.CLikeType(),
19869
19870
  },
19870
- return: new basic_1.StringType(),
19871
+ return: basic_1.StringType.get(),
19871
19872
  version: version_1.Version.v702,
19872
19873
  },
19873
19874
  {
@@ -19887,11 +19888,11 @@ BuiltIn.methods = [
19887
19888
  "regex": new basic_1.CLikeType(),
19888
19889
  "pcre": new basic_1.CLikeType(),
19889
19890
  "case": new basic_1.CharacterType(1),
19890
- "off": new basic_1.IntegerType(),
19891
- "len": new basic_1.IntegerType(),
19892
- "occ": new basic_1.IntegerType(),
19891
+ "off": basic_1.IntegerType.get(),
19892
+ "len": basic_1.IntegerType.get(),
19893
+ "occ": basic_1.IntegerType.get(),
19893
19894
  },
19894
- return: new basic_1.IntegerType(),
19895
+ return: basic_1.IntegerType.get(),
19895
19896
  version: version_1.Version.v702,
19896
19897
  },
19897
19898
  {
@@ -19901,11 +19902,11 @@ BuiltIn.methods = [
19901
19902
  },
19902
19903
  optional: {
19903
19904
  "sub": new basic_1.CLikeType(),
19904
- "off": new basic_1.IntegerType(),
19905
- "len": new basic_1.IntegerType(),
19906
- "occ": new basic_1.IntegerType(),
19905
+ "off": basic_1.IntegerType.get(),
19906
+ "len": basic_1.IntegerType.get(),
19907
+ "occ": basic_1.IntegerType.get(),
19907
19908
  },
19908
- return: new basic_1.IntegerType(),
19909
+ return: basic_1.IntegerType.get(),
19909
19910
  version: version_1.Version.v702,
19910
19911
  },
19911
19912
  {
@@ -19915,11 +19916,11 @@ BuiltIn.methods = [
19915
19916
  },
19916
19917
  optional: {
19917
19918
  "sub": new basic_1.CLikeType(),
19918
- "off": new basic_1.IntegerType(),
19919
- "len": new basic_1.IntegerType(),
19920
- "occ": new basic_1.IntegerType(),
19919
+ "off": basic_1.IntegerType.get(),
19920
+ "len": basic_1.IntegerType.get(),
19921
+ "occ": basic_1.IntegerType.get(),
19921
19922
  },
19922
- return: new basic_1.IntegerType(),
19923
+ return: basic_1.IntegerType.get(),
19923
19924
  version: version_1.Version.v702,
19924
19925
  },
19925
19926
  {
@@ -19932,11 +19933,11 @@ BuiltIn.methods = [
19932
19933
  "regex": new basic_1.CLikeType(),
19933
19934
  "pcre": new basic_1.CLikeType(),
19934
19935
  "case": new basic_1.CharacterType(1),
19935
- "off": new basic_1.IntegerType(),
19936
- "len": new basic_1.IntegerType(),
19937
- "occ": new basic_1.IntegerType(),
19936
+ "off": basic_1.IntegerType.get(),
19937
+ "len": basic_1.IntegerType.get(),
19938
+ "occ": basic_1.IntegerType.get(),
19938
19939
  },
19939
- return: new basic_1.IntegerType(),
19940
+ return: basic_1.IntegerType.get(),
19940
19941
  version: version_1.Version.v702,
19941
19942
  },
19942
19943
  {
@@ -19944,14 +19945,14 @@ BuiltIn.methods = [
19944
19945
  mandatory: {
19945
19946
  "val": new basic_1.FloatType(),
19946
19947
  },
19947
- return: new basic_1.IntegerType(),
19948
+ return: basic_1.IntegerType.get(),
19948
19949
  },
19949
19950
  {
19950
19951
  name: "FRAC",
19951
19952
  mandatory: {
19952
19953
  "val": new basic_1.FloatType(),
19953
19954
  },
19954
- return: new basic_1.IntegerType(),
19955
+ return: basic_1.IntegerType.get(),
19955
19956
  },
19956
19957
  {
19957
19958
  name: "FROM_MIXED",
@@ -19960,10 +19961,10 @@ BuiltIn.methods = [
19960
19961
  },
19961
19962
  optional: {
19962
19963
  "case": new basic_1.CharacterType(1),
19963
- "sep": new basic_1.IntegerType(),
19964
- "min": new basic_1.IntegerType(),
19964
+ "sep": basic_1.IntegerType.get(),
19965
+ "min": basic_1.IntegerType.get(),
19965
19966
  },
19966
- return: new basic_1.StringType(),
19967
+ return: basic_1.StringType.get(),
19967
19968
  version: version_1.Version.v702,
19968
19969
  },
19969
19970
  {
@@ -19973,9 +19974,9 @@ BuiltIn.methods = [
19973
19974
  "sub": new basic_1.CLikeType(),
19974
19975
  },
19975
19976
  optional: {
19976
- "off": new basic_1.IntegerType(),
19977
+ "off": basic_1.IntegerType.get(),
19977
19978
  },
19978
- return: new basic_1.StringType(),
19979
+ return: basic_1.StringType.get(),
19979
19980
  version: version_1.Version.v702,
19980
19981
  },
19981
19982
  {
@@ -19984,7 +19985,7 @@ BuiltIn.methods = [
19984
19985
  "base": new basic_1.FloatType(),
19985
19986
  "exp": new basic_1.FloatType(),
19986
19987
  },
19987
- return: new basic_1.IntegerType(),
19988
+ return: basic_1.IntegerType.get(),
19988
19989
  version: version_1.Version.v740sp02,
19989
19990
  },
19990
19991
  {
@@ -20001,7 +20002,7 @@ BuiltIn.methods = [
20001
20002
  mandatory: {
20002
20003
  "val": new basic_1.CLikeType(),
20003
20004
  },
20004
- return: new basic_1.IntegerType(),
20005
+ return: basic_1.IntegerType.get(),
20005
20006
  version: version_1.Version.v740sp02,
20006
20007
  },
20007
20008
  {
@@ -20009,7 +20010,7 @@ BuiltIn.methods = [
20009
20010
  mandatory: {
20010
20011
  "val": new basic_1.TableType(new basic_1.AnyType(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
20011
20012
  },
20012
- return: new basic_1.IntegerType(),
20013
+ return: basic_1.IntegerType.get(),
20013
20014
  },
20014
20015
  {
20015
20016
  name: "LOG",
@@ -20033,9 +20034,9 @@ BuiltIn.methods = [
20033
20034
  "case": new basic_1.CharacterType(1),
20034
20035
  "regex": new basic_1.CLikeType(),
20035
20036
  "pcre": new basic_1.CLikeType(),
20036
- "occ": new basic_1.IntegerType(),
20037
+ "occ": basic_1.IntegerType.get(),
20037
20038
  },
20038
- return: new basic_1.StringType(),
20039
+ return: basic_1.StringType.get(),
20039
20040
  version: version_1.Version.v702,
20040
20041
  },
20041
20042
  {
@@ -20047,8 +20048,8 @@ BuiltIn.methods = [
20047
20048
  "case": new basic_1.CharacterType(1),
20048
20049
  "regex": new basic_1.CLikeType(),
20049
20050
  "pcre": new basic_1.CLikeType(),
20050
- "off": new basic_1.IntegerType(),
20051
- "len": new basic_1.IntegerType(),
20051
+ "off": basic_1.IntegerType.get(),
20052
+ "len": basic_1.IntegerType.get(),
20052
20053
  },
20053
20054
  return: new basic_1.CharacterType(1),
20054
20055
  predicate: true,
@@ -20069,7 +20070,7 @@ BuiltIn.methods = [
20069
20070
  "val8": new basic_1.CLikeType(),
20070
20071
  "val9": new basic_1.CLikeType(),
20071
20072
  },
20072
- return: new basic_1.IntegerType(),
20073
+ return: basic_1.IntegerType.get(),
20073
20074
  version: version_1.Version.v702,
20074
20075
  },
20075
20076
  {
@@ -20087,7 +20088,7 @@ BuiltIn.methods = [
20087
20088
  "val8": new basic_1.CLikeType(),
20088
20089
  "val9": new basic_1.CLikeType(),
20089
20090
  },
20090
- return: new basic_1.IntegerType(),
20091
+ return: basic_1.IntegerType.get(),
20091
20092
  version: version_1.Version.v702,
20092
20093
  },
20093
20094
  {
@@ -20095,15 +20096,15 @@ BuiltIn.methods = [
20095
20096
  mandatory: {
20096
20097
  "val": new basic_1.CLikeType(),
20097
20098
  },
20098
- return: new basic_1.IntegerType(),
20099
+ return: basic_1.IntegerType.get(),
20099
20100
  },
20100
20101
  {
20101
20102
  name: "REPEAT",
20102
20103
  mandatory: {
20103
20104
  "val": new basic_1.CLikeType(),
20104
- "occ": new basic_1.IntegerType(),
20105
+ "occ": basic_1.IntegerType.get(),
20105
20106
  },
20106
- return: new basic_1.StringType(),
20107
+ return: basic_1.StringType.get(),
20107
20108
  version: version_1.Version.v702,
20108
20109
  },
20109
20110
  {
@@ -20117,11 +20118,11 @@ BuiltIn.methods = [
20117
20118
  "regex": new basic_1.CLikeType(),
20118
20119
  "pcre": new basic_1.CLikeType(),
20119
20120
  "case": new basic_1.CharacterType(1),
20120
- "off": new basic_1.IntegerType(),
20121
- "len": new basic_1.IntegerType(),
20122
- "occ": new basic_1.IntegerType(),
20121
+ "off": basic_1.IntegerType.get(),
20122
+ "len": basic_1.IntegerType.get(),
20123
+ "occ": basic_1.IntegerType.get(),
20123
20124
  },
20124
- return: new basic_1.StringType(),
20125
+ return: basic_1.StringType.get(),
20125
20126
  version: version_1.Version.v702,
20126
20127
  },
20127
20128
  {
@@ -20130,9 +20131,9 @@ BuiltIn.methods = [
20130
20131
  "val": new basic_1.FloatType(),
20131
20132
  },
20132
20133
  optional: {
20133
- "dec": new basic_1.IntegerType(),
20134
- "prec": new basic_1.IntegerType(),
20135
- "mode": new basic_1.IntegerType(),
20134
+ "dec": basic_1.IntegerType.get(),
20135
+ "prec": basic_1.IntegerType.get(),
20136
+ "mode": basic_1.IntegerType.get(),
20136
20137
  },
20137
20138
  return: new basic_1.FloatType(),
20138
20139
  version: version_1.Version.v702,
@@ -20142,7 +20143,7 @@ BuiltIn.methods = [
20142
20143
  mandatory: {
20143
20144
  "val": new basic_1.CLikeType(),
20144
20145
  },
20145
- return: new basic_1.StringType(),
20146
+ return: basic_1.StringType.get(),
20146
20147
  version: version_1.Version.v702,
20147
20148
  },
20148
20149
  {
@@ -20151,24 +20152,24 @@ BuiltIn.methods = [
20151
20152
  "val": new basic_1.FloatType(),
20152
20153
  },
20153
20154
  optional: {
20154
- "dec": new basic_1.IntegerType(),
20155
- "prec": new basic_1.IntegerType(),
20156
- "mode": new basic_1.IntegerType(),
20155
+ "dec": basic_1.IntegerType.get(),
20156
+ "prec": basic_1.IntegerType.get(),
20157
+ "mode": basic_1.IntegerType.get(),
20157
20158
  },
20158
- return: new basic_1.IntegerType(),
20159
+ return: basic_1.IntegerType.get(),
20159
20160
  version: version_1.Version.v702,
20160
20161
  },
20161
20162
  {
20162
20163
  name: "SEGMENT",
20163
20164
  mandatory: {
20164
20165
  "val": new basic_1.CLikeType(),
20165
- "index": new basic_1.IntegerType(),
20166
+ "index": basic_1.IntegerType.get(),
20166
20167
  },
20167
20168
  optional: {
20168
20169
  "sep": new basic_1.CLikeType(),
20169
20170
  "space": new basic_1.CLikeType(),
20170
20171
  },
20171
- return: new basic_1.StringType(),
20172
+ return: basic_1.StringType.get(),
20172
20173
  version: version_1.Version.v702,
20173
20174
  },
20174
20175
  {
@@ -20178,10 +20179,10 @@ BuiltIn.methods = [
20178
20179
  },
20179
20180
  optional: {
20180
20181
  "sub": new basic_1.CLikeType(),
20181
- "places": new basic_1.IntegerType(),
20182
- "circular": new basic_1.IntegerType(),
20182
+ "places": basic_1.IntegerType.get(),
20183
+ "circular": basic_1.IntegerType.get(),
20183
20184
  },
20184
- return: new basic_1.StringType(),
20185
+ return: basic_1.StringType.get(),
20185
20186
  version: version_1.Version.v702,
20186
20187
  },
20187
20188
  {
@@ -20191,10 +20192,10 @@ BuiltIn.methods = [
20191
20192
  },
20192
20193
  optional: {
20193
20194
  "sub": new basic_1.CLikeType(),
20194
- "places": new basic_1.IntegerType(),
20195
- "circular": new basic_1.IntegerType(),
20195
+ "places": basic_1.IntegerType.get(),
20196
+ "circular": basic_1.IntegerType.get(),
20196
20197
  },
20197
- return: new basic_1.StringType(),
20198
+ return: basic_1.StringType.get(),
20198
20199
  version: version_1.Version.v702,
20199
20200
  },
20200
20201
  {
@@ -20202,7 +20203,7 @@ BuiltIn.methods = [
20202
20203
  mandatory: {
20203
20204
  "val": new basic_1.FloatType(),
20204
20205
  },
20205
- return: new basic_1.IntegerType(),
20206
+ return: basic_1.IntegerType.get(),
20206
20207
  },
20207
20208
  {
20208
20209
  name: "SIN",
@@ -20230,7 +20231,7 @@ BuiltIn.methods = [
20230
20231
  mandatory: {
20231
20232
  "val": new basic_1.CLikeType(),
20232
20233
  },
20233
- return: new basic_1.IntegerType(),
20234
+ return: basic_1.IntegerType.get(),
20234
20235
  },
20235
20236
  {
20236
20237
  name: "SUBSTRING",
@@ -20238,10 +20239,10 @@ BuiltIn.methods = [
20238
20239
  "val": new basic_1.CLikeType(),
20239
20240
  },
20240
20241
  optional: {
20241
- "off": new basic_1.IntegerType(),
20242
- "len": new basic_1.IntegerType(),
20242
+ "off": basic_1.IntegerType.get(),
20243
+ "len": basic_1.IntegerType.get(),
20243
20244
  },
20244
- return: new basic_1.StringType(),
20245
+ return: basic_1.StringType.get(),
20245
20246
  version: version_1.Version.v702,
20246
20247
  },
20247
20248
  {
@@ -20254,10 +20255,10 @@ BuiltIn.methods = [
20254
20255
  "regex": new basic_1.CLikeType(),
20255
20256
  "pcre": new basic_1.CLikeType(),
20256
20257
  "case": new basic_1.CharacterType(1),
20257
- "len": new basic_1.IntegerType(),
20258
- "occ": new basic_1.IntegerType(),
20258
+ "len": basic_1.IntegerType.get(),
20259
+ "occ": basic_1.IntegerType.get(),
20259
20260
  },
20260
- return: new basic_1.StringType(),
20261
+ return: basic_1.StringType.get(),
20261
20262
  version: version_1.Version.v702,
20262
20263
  },
20263
20264
  {
@@ -20270,10 +20271,10 @@ BuiltIn.methods = [
20270
20271
  "regex": new basic_1.CLikeType(),
20271
20272
  "pcre": new basic_1.CLikeType(),
20272
20273
  "case": new basic_1.CharacterType(1),
20273
- "len": new basic_1.IntegerType(),
20274
- "occ": new basic_1.IntegerType(),
20274
+ "len": basic_1.IntegerType.get(),
20275
+ "occ": basic_1.IntegerType.get(),
20275
20276
  },
20276
- return: new basic_1.StringType(),
20277
+ return: basic_1.StringType.get(),
20277
20278
  version: version_1.Version.v702,
20278
20279
  },
20279
20280
  {
@@ -20286,10 +20287,10 @@ BuiltIn.methods = [
20286
20287
  "regex": new basic_1.CLikeType(),
20287
20288
  "pcre": new basic_1.CLikeType(),
20288
20289
  "case": new basic_1.CharacterType(1),
20289
- "len": new basic_1.IntegerType(),
20290
- "occ": new basic_1.IntegerType(),
20290
+ "len": basic_1.IntegerType.get(),
20291
+ "occ": basic_1.IntegerType.get(),
20291
20292
  },
20292
- return: new basic_1.StringType(),
20293
+ return: basic_1.StringType.get(),
20293
20294
  version: version_1.Version.v702,
20294
20295
  },
20295
20296
  {
@@ -20302,10 +20303,10 @@ BuiltIn.methods = [
20302
20303
  "regex": new basic_1.CLikeType(),
20303
20304
  "pcre": new basic_1.CLikeType(),
20304
20305
  "case": new basic_1.CharacterType(1),
20305
- "len": new basic_1.IntegerType(),
20306
- "occ": new basic_1.IntegerType(),
20306
+ "len": basic_1.IntegerType.get(),
20307
+ "occ": basic_1.IntegerType.get(),
20307
20308
  },
20308
- return: new basic_1.StringType(),
20309
+ return: basic_1.StringType.get(),
20309
20310
  version: version_1.Version.v702,
20310
20311
  },
20311
20312
  {
@@ -20327,7 +20328,7 @@ BuiltIn.methods = [
20327
20328
  mandatory: {
20328
20329
  "val": new basic_1.CLikeType(),
20329
20330
  },
20330
- return: new basic_1.StringType(),
20331
+ return: basic_1.StringType.get(),
20331
20332
  version: version_1.Version.v702,
20332
20333
  },
20333
20334
  {
@@ -20337,16 +20338,16 @@ BuiltIn.methods = [
20337
20338
  },
20338
20339
  optional: {
20339
20340
  "case": new basic_1.CharacterType(1),
20340
- "sep": new basic_1.IntegerType(),
20341
- "min": new basic_1.IntegerType(),
20341
+ "sep": basic_1.IntegerType.get(),
20342
+ "min": basic_1.IntegerType.get(),
20342
20343
  },
20343
- return: new basic_1.StringType(),
20344
+ return: basic_1.StringType.get(),
20344
20345
  version: version_1.Version.v702,
20345
20346
  },
20346
20347
  {
20347
20348
  name: "TO_UPPER",
20348
20349
  mandatory: { "val": new basic_1.CLikeType() },
20349
- return: new basic_1.StringType(),
20350
+ return: basic_1.StringType.get(),
20350
20351
  version: version_1.Version.v702,
20351
20352
  },
20352
20353
  {
@@ -20356,7 +20357,7 @@ BuiltIn.methods = [
20356
20357
  "from": new basic_1.CLikeType(),
20357
20358
  "to": new basic_1.CLikeType(),
20358
20359
  },
20359
- return: new basic_1.StringType(),
20360
+ return: basic_1.StringType.get(),
20360
20361
  version: version_1.Version.v702,
20361
20362
  },
20362
20363
  {
@@ -20364,7 +20365,7 @@ BuiltIn.methods = [
20364
20365
  mandatory: {
20365
20366
  "val": new basic_1.FloatType(),
20366
20367
  },
20367
- return: new basic_1.IntegerType(),
20368
+ return: basic_1.IntegerType.get(),
20368
20369
  },
20369
20370
  {
20370
20371
  name: "UTCLONG_ADD",
@@ -20372,9 +20373,9 @@ BuiltIn.methods = [
20372
20373
  "val": new basic_1.UTCLongType(),
20373
20374
  },
20374
20375
  optional: {
20375
- "days": new basic_1.IntegerType(),
20376
- "hour": new basic_1.IntegerType(),
20377
- "minutes": new basic_1.IntegerType(),
20376
+ "days": basic_1.IntegerType.get(),
20377
+ "hour": basic_1.IntegerType.get(),
20378
+ "minutes": basic_1.IntegerType.get(),
20378
20379
  "seconds": new basic_1.FloatType(),
20379
20380
  },
20380
20381
  return: new basic_1.UTCLongType(),
@@ -20407,7 +20408,7 @@ BuiltIn.methods = [
20407
20408
  mandatory: {
20408
20409
  "val": new basic_1.XSequenceType(),
20409
20410
  },
20410
- return: new basic_1.IntegerType(),
20411
+ return: basic_1.IntegerType.get(),
20411
20412
  },
20412
20413
  ];
20413
20414
  //# sourceMappingURL=_builtin.js.map
@@ -21667,7 +21668,7 @@ class TypeUtils {
21667
21668
  if (target instanceof basic_1.StructureType && this.structureContainsString(target)) {
21668
21669
  return false;
21669
21670
  }
21670
- else if (target instanceof basic_1.XSequenceType) {
21671
+ else if (target instanceof basic_1.XSequenceType || target instanceof basic_1.XStringType) {
21671
21672
  if (((_f = source.getAbstractTypeData()) === null || _f === void 0 ? void 0 : _f.derivedFromConstant) === true) {
21672
21673
  return true;
21673
21674
  }
@@ -23316,8 +23317,9 @@ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@ab
23316
23317
  const expressions_1 = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
23317
23318
  class Constant {
23318
23319
  runSyntax(node) {
23320
+ // todo: ConcatenatedConstant is not used?
23319
23321
  if (node.findDirectExpression(expressions_1.Integer)) {
23320
- return new basic_1.IntegerType({ qualifiedName: "I" });
23322
+ return basic_1.IntegerType.get();
23321
23323
  }
23322
23324
  else if (node.getFirstToken().getStr().startsWith("'")) {
23323
23325
  let len = node.getFirstToken().getStr().length - 2;
@@ -23327,10 +23329,10 @@ class Constant {
23327
23329
  return new basic_1.CharacterType(len, { derivedFromConstant: true });
23328
23330
  }
23329
23331
  else if (node.getFirstToken().getStr().startsWith("`")) {
23330
- return new basic_1.StringType({ qualifiedName: "STRING", derivedFromConstant: true });
23332
+ return basic_1.StringType.get({ derivedFromConstant: true });
23331
23333
  }
23332
23334
  else {
23333
- return new basic_1.StringType({ qualifiedName: "STRING" });
23335
+ return basic_1.StringType.get();
23334
23336
  }
23335
23337
  }
23336
23338
  }
@@ -24224,7 +24226,7 @@ class InlineLoopDefinition {
24224
24226
  }
24225
24227
  const index = node.findExpressionAfterToken("INTO");
24226
24228
  if (index && index.get() instanceof Expressions.TargetField) {
24227
- const identifier = new _typed_identifier_1.TypedIdentifier(index.getFirstToken(), filename, new basic_1.IntegerType(), ["inline" /* IdentifierMeta.InlineDefinition */]);
24229
+ const identifier = new _typed_identifier_1.TypedIdentifier(index.getFirstToken(), filename, basic_1.IntegerType.get(), ["inline" /* IdentifierMeta.InlineDefinition */]);
24228
24230
  scope.addReference(index.getFirstToken(), identifier, _reference_1.ReferenceType.DataWriteReference, filename);
24229
24231
  scope.addIdentifier(identifier);
24230
24232
  }
@@ -24589,7 +24591,7 @@ class MethodCallParam {
24589
24591
  else {
24590
24592
  targetType = method;
24591
24593
  }
24592
- let sourceType = new basic_1.StringType();
24594
+ let sourceType = basic_1.StringType.get();
24593
24595
  if (child.get() instanceof Expressions.Source) {
24594
24596
  sourceType = new source_1.Source().runSyntax(child, scope, filename, targetType);
24595
24597
  }
@@ -25516,7 +25518,7 @@ class Source {
25516
25518
  const method = new _builtin_1.BuiltIn().searchBuiltin(tok);
25517
25519
  scope.addReference(token, method, _reference_1.ReferenceType.BuiltinMethodReference, filename);
25518
25520
  new cond_1.Cond().runSyntax(node.findDirectExpression(Expressions.Cond), scope, filename);
25519
- return new basic_1.StringType();
25521
+ return basic_1.StringType.get();
25520
25522
  }
25521
25523
  case "XSDBOOL":
25522
25524
  {
@@ -25599,7 +25601,9 @@ class Source {
25599
25601
  case "CORRESPONDING":
25600
25602
  {
25601
25603
  const foundType = this.determineType(node, scope, filename, targetType);
25602
- return new corresponding_body_1.CorrespondingBody().runSyntax(node.findDirectExpression(Expressions.CorrespondingBody), scope, filename, foundType);
25604
+ new corresponding_body_1.CorrespondingBody().runSyntax(node.findDirectExpression(Expressions.CorrespondingBody), scope, filename, foundType);
25605
+ this.addIfInferred(node, scope, filename, foundType);
25606
+ return foundType;
25603
25607
  }
25604
25608
  case "EXACT":
25605
25609
  return this.determineType(node, scope, filename, targetType);
@@ -25657,7 +25661,7 @@ class Source {
25657
25661
  }
25658
25662
  }
25659
25663
  if (node.findDirectTokenByText("&&")) {
25660
- return new basic_1.StringType();
25664
+ return basic_1.StringType.get();
25661
25665
  }
25662
25666
  return context;
25663
25667
  }
@@ -25983,7 +25987,7 @@ class StringTemplate {
25983
25987
  const typeUtils = new _type_utils_1.TypeUtils(scope);
25984
25988
  for (const templateSource of node.findAllExpressions(Expressions.StringTemplateSource)) {
25985
25989
  const s = templateSource.findDirectExpression(Expressions.Source);
25986
- const type = new source_1.Source().runSyntax(s, scope, filename, new basic_1.StringType({ qualifiedName: "STRING" }));
25990
+ const type = new source_1.Source().runSyntax(s, scope, filename, basic_1.StringType.get());
25987
25991
  if (type === undefined) {
25988
25992
  throw new Error("No target type determined");
25989
25993
  }
@@ -26007,7 +26011,7 @@ class StringTemplate {
26007
26011
  throw new Error("Cannot apply ALPHA to this type");
26008
26012
  }
26009
26013
  }
26010
- return new basic_1.StringType({ qualifiedName: "STRING" });
26014
+ return basic_1.StringType.get();
26011
26015
  }
26012
26016
  }
26013
26017
  exports.StringTemplate = StringTemplate;
@@ -26370,6 +26374,7 @@ class ValueBody {
26370
26374
  }
26371
26375
  for (const l of foo.findDirectExpressions(Expressions.ValueBodyLines)) {
26372
26376
  for (const s of l.findDirectExpressions(Expressions.Source)) {
26377
+ // LINES OF ?? todo, pass type,
26373
26378
  new source_1.Source().runSyntax(s, scope, filename);
26374
26379
  }
26375
26380
  }
@@ -26377,7 +26382,7 @@ class ValueBody {
26377
26382
  new field_assignment_1.FieldAssignment().runSyntax(s, scope, filename, rowType);
26378
26383
  }
26379
26384
  for (const s of foo.findDirectExpressions(Expressions.Source)) {
26380
- new source_1.Source().runSyntax(s, scope, filename);
26385
+ new source_1.Source().runSyntax(s, scope, filename, rowType);
26381
26386
  }
26382
26387
  }
26383
26388
  if (letScoped === true) {
@@ -27695,19 +27700,41 @@ const source_1 = __webpack_require__(/*! ../expressions/source */ "./node_module
27695
27700
  const target_1 = __webpack_require__(/*! ../expressions/target */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/target.js");
27696
27701
  const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
27697
27702
  const inline_data_1 = __webpack_require__(/*! ../expressions/inline_data */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/inline_data.js");
27703
+ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
27698
27704
  class Concatenate {
27699
27705
  runSyntax(node, scope, filename) {
27706
+ const byteMode = node.findDirectTokenByText("BYTE") !== undefined;
27707
+ let linesMode = node.findDirectTokenByText("LINES") !== undefined;
27700
27708
  const target = node.findFirstExpression(Expressions.Target);
27701
27709
  const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
27702
27710
  if (inline) {
27703
- // todo, does this give XSTRING in BYTE MODE?
27704
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.StringType());
27711
+ if (byteMode) {
27712
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.XStringType());
27713
+ }
27714
+ else {
27715
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.StringType.get());
27716
+ }
27705
27717
  }
27706
27718
  else if (target) {
27707
- new target_1.Target().runSyntax(target, scope, filename);
27719
+ const type = new target_1.Target().runSyntax(target, scope, filename);
27720
+ const compatible = byteMode ? new _type_utils_1.TypeUtils(scope).isHexLike(type) : new _type_utils_1.TypeUtils(scope).isCharLike(type);
27721
+ if (compatible === false) {
27722
+ throw new Error("Target type not compatible");
27723
+ }
27708
27724
  }
27709
27725
  for (const s of node.findDirectExpressions(Expressions.Source)) {
27710
- new source_1.Source().runSyntax(s, scope, filename);
27726
+ const type = new source_1.Source().runSyntax(s, scope, filename);
27727
+ if (linesMode) {
27728
+ if (!(type instanceof basic_1.UnknownType) && !(type instanceof basic_1.VoidType) && !(type instanceof basic_1.TableType)) {
27729
+ throw new Error("Source must be an internal table");
27730
+ }
27731
+ linesMode = false;
27732
+ continue;
27733
+ }
27734
+ const compatible = byteMode ? new _type_utils_1.TypeUtils(scope).isHexLike(type) : new _type_utils_1.TypeUtils(scope).isCharLike(type);
27735
+ if (compatible === false) {
27736
+ throw new Error("Source type not compatible");
27737
+ }
27711
27738
  }
27712
27739
  }
27713
27740
  }
@@ -27800,17 +27827,17 @@ class Controls {
27800
27827
  if (node.findDirectTokenByText("TABLEVIEW") && token) {
27801
27828
  const cols = new basic_1.StructureType([
27802
27829
  { name: "SCREEN", type: new basic_1.CharacterType(1) },
27803
- { name: "INDEX", type: new basic_1.IntegerType() },
27830
+ { name: "INDEX", type: basic_1.IntegerType.get() },
27804
27831
  { name: "SELECTED", type: new basic_1.CharacterType(1) },
27805
- { name: "VISLENGTH", type: new basic_1.IntegerType() },
27832
+ { name: "VISLENGTH", type: basic_1.IntegerType.get() },
27806
27833
  { name: "INVISIBLE", type: new basic_1.CharacterType(1) },
27807
27834
  ]);
27808
27835
  const type = new basic_1.StructureType([
27809
27836
  { name: "FIXED_COLS", type: new basic_1.CharacterType(132) },
27810
- { name: "LINES", type: new basic_1.IntegerType() },
27811
- { name: "TOP_LINE", type: new basic_1.IntegerType() },
27812
- { name: "CURRENT_LINE", type: new basic_1.IntegerType() },
27813
- { name: "LEFT_COL", type: new basic_1.IntegerType() },
27837
+ { name: "LINES", type: basic_1.IntegerType.get() },
27838
+ { name: "TOP_LINE", type: basic_1.IntegerType.get() },
27839
+ { name: "CURRENT_LINE", type: basic_1.IntegerType.get() },
27840
+ { name: "LEFT_COL", type: basic_1.IntegerType.get() },
27814
27841
  { name: "LINE_SEL_MODE", type: new basic_1.CharacterType(1) },
27815
27842
  { name: "COL_SEL_MODE", type: new basic_1.CharacterType(1) },
27816
27843
  { name: "LINE_SELECTOR", type: new basic_1.CharacterType(1) },
@@ -28252,7 +28279,7 @@ class Describe {
28252
28279
  if ((linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.get()) instanceof Expressions.Target) {
28253
28280
  const inline = linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.findDirectExpression(Expressions.InlineData);
28254
28281
  if (inline) {
28255
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.IntegerType());
28282
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.IntegerType.get());
28256
28283
  }
28257
28284
  else {
28258
28285
  new target_1.Target().runSyntax(linesTarget, scope, filename);
@@ -28272,7 +28299,7 @@ class Describe {
28272
28299
  if ((lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.get()) instanceof Expressions.Target) {
28273
28300
  const inline = lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.findDirectExpression(Expressions.InlineData);
28274
28301
  if (inline) {
28275
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.IntegerType());
28302
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.IntegerType.get());
28276
28303
  }
28277
28304
  else {
28278
28305
  new target_1.Target().runSyntax(lengthTarget, scope, filename);
@@ -28282,7 +28309,7 @@ class Describe {
28282
28309
  if ((componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.get()) instanceof Expressions.Target) {
28283
28310
  const inline = componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.findDirectExpression(Expressions.InlineData);
28284
28311
  if (inline) {
28285
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.IntegerType());
28312
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.IntegerType.get());
28286
28313
  }
28287
28314
  else {
28288
28315
  new target_1.Target().runSyntax(componentsTarget, scope, filename);
@@ -28464,13 +28491,13 @@ class Find {
28464
28491
  const rfound = node.findExpressionAfterToken("RESULTS");
28465
28492
  if (rfound && rfound.get() instanceof Expressions.Target) {
28466
28493
  const sub = new basic_1.StructureType([
28467
- { name: "OFFSET", type: new basic_1.IntegerType() },
28468
- { name: "LENGTH", type: new basic_1.IntegerType() }
28494
+ { name: "OFFSET", type: basic_1.IntegerType.get() },
28495
+ { name: "LENGTH", type: basic_1.IntegerType.get() }
28469
28496
  ], "SUBMATCH_RESULT", "SUBMATCH_RESULT");
28470
28497
  const type = new basic_1.StructureType([
28471
- { name: "LINE", type: new basic_1.IntegerType() },
28472
- { name: "OFFSET", type: new basic_1.IntegerType() },
28473
- { name: "LENGTH", type: new basic_1.IntegerType() },
28498
+ { name: "LINE", type: basic_1.IntegerType.get() },
28499
+ { name: "OFFSET", type: basic_1.IntegerType.get() },
28500
+ { name: "LENGTH", type: basic_1.IntegerType.get() },
28474
28501
  { name: "SUBMATCHES", type: new basic_1.TableType(sub, { withHeader: false, keyType: basic_1.TableKeyType.default }) },
28475
28502
  ], "MATCH_RESULT", "MATCH_RESULT");
28476
28503
  if (node.concatTokens().toUpperCase().startsWith("FIND FIRST")) {
@@ -28483,20 +28510,20 @@ class Find {
28483
28510
  const ofound = node.findExpressionsAfterToken("OFFSET");
28484
28511
  for (const o of ofound) {
28485
28512
  if (o.get() instanceof Expressions.Target) {
28486
- this.inline(o, scope, filename, new basic_1.IntegerType());
28513
+ this.inline(o, scope, filename, basic_1.IntegerType.get());
28487
28514
  }
28488
28515
  }
28489
28516
  const lfound = node.findExpressionAfterToken("LINE");
28490
28517
  if (lfound && lfound.get() instanceof Expressions.Target) {
28491
- this.inline(lfound, scope, filename, new basic_1.IntegerType());
28518
+ this.inline(lfound, scope, filename, basic_1.IntegerType.get());
28492
28519
  }
28493
28520
  const cfound = node.findExpressionAfterToken("COUNT");
28494
28521
  if (cfound && cfound.get() instanceof Expressions.Target) {
28495
- this.inline(cfound, scope, filename, new basic_1.IntegerType());
28522
+ this.inline(cfound, scope, filename, basic_1.IntegerType.get());
28496
28523
  }
28497
28524
  const lnfound = node.findExpressionAfterToken("LENGTH");
28498
28525
  if (lnfound && lnfound.get() instanceof Expressions.Target) {
28499
- this.inline(lnfound, scope, filename, new basic_1.IntegerType());
28526
+ this.inline(lnfound, scope, filename, basic_1.IntegerType.get());
28500
28527
  }
28501
28528
  if (node.findDirectTokenByText("SUBMATCHES")) {
28502
28529
  for (const t of node.findDirectExpressions(Expressions.Target)) {
@@ -28508,7 +28535,7 @@ class Find {
28508
28535
  }
28509
28536
  const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
28510
28537
  if (inline) {
28511
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.StringType());
28538
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.StringType.get());
28512
28539
  }
28513
28540
  else {
28514
28541
  new target_1.Target().runSyntax(t, scope, filename);
@@ -28648,7 +28675,7 @@ class GetBit {
28648
28675
  for (const t of node.findDirectExpressions(Expressions.Target)) {
28649
28676
  const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
28650
28677
  if (inline) {
28651
- new inline_data_1.InlineData().runSyntax(t, scope, filename, new basic_1.IntegerType());
28678
+ new inline_data_1.InlineData().runSyntax(t, scope, filename, basic_1.IntegerType.get());
28652
28679
  }
28653
28680
  else {
28654
28681
  new target_1.Target().runSyntax(t, scope, filename);
@@ -28801,7 +28828,7 @@ class GetRunTime {
28801
28828
  const target = node.findDirectExpression(Expressions.Target);
28802
28829
  const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
28803
28830
  if (inline) {
28804
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.IntegerType());
28831
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.IntegerType.get());
28805
28832
  }
28806
28833
  else if (target) {
28807
28834
  new target_1.Target().runSyntax(target, scope, filename);
@@ -29121,9 +29148,9 @@ class InsertInternal {
29121
29148
  }
29122
29149
  }
29123
29150
  for (const s of node.findDirectExpressions(Expressions.Source)) {
29124
- new source_1.Source().runSyntax(s, scope, filename, targetType);
29125
- }
29126
- for (const s of node.findDirectExpressions(Expressions.SimpleSource4)) {
29151
+ if (s === source) {
29152
+ continue;
29153
+ }
29127
29154
  new source_1.Source().runSyntax(s, scope, filename, targetType);
29128
29155
  }
29129
29156
  }
@@ -29381,7 +29408,7 @@ class Message {
29381
29408
  const found = node.findExpressionAfterToken("INTO");
29382
29409
  const inline = found === null || found === void 0 ? void 0 : found.findDirectExpression(Expressions.InlineData);
29383
29410
  if (inline) {
29384
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.StringType());
29411
+ new inline_data_1.InlineData().runSyntax(inline, scope, filename, basic_1.StringType.get());
29385
29412
  }
29386
29413
  else if (found) {
29387
29414
  new target_1.Target().runSyntax(found, scope, filename);
@@ -30151,14 +30178,14 @@ class ReadTable {
30151
30178
  const indexSource = node.findExpressionAfterToken("INDEX");
30152
30179
  if (indexSource) {
30153
30180
  const indexType = new source_1.Source().runSyntax(indexSource, scope, filename);
30154
- if (new _type_utils_1.TypeUtils(scope).isAssignable(indexType, new basic_1.IntegerType()) === false) {
30181
+ if (new _type_utils_1.TypeUtils(scope).isAssignable(indexType, basic_1.IntegerType.get()) === false) {
30155
30182
  throw new Error("READ TABLE, INDEX must be simple");
30156
30183
  }
30157
30184
  }
30158
30185
  const fromSource = node.findExpressionAfterToken("FROM");
30159
30186
  if (fromSource) {
30160
30187
  const fromType = new source_1.Source().runSyntax(fromSource, scope, filename);
30161
- if (new _type_utils_1.TypeUtils(scope).isAssignable(fromType, new basic_1.IntegerType()) === false) {
30188
+ if (new _type_utils_1.TypeUtils(scope).isAssignable(fromType, basic_1.IntegerType.get()) === false) {
30162
30189
  throw new Error("READ TABLE, FROM must be simple");
30163
30190
  }
30164
30191
  }
@@ -30783,7 +30810,7 @@ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/
30783
30810
  class Split {
30784
30811
  runSyntax(node, scope, filename) {
30785
30812
  const intoTable = node.findTokenSequencePosition("INTO", "TABLE") !== undefined;
30786
- const type = intoTable ? new basic_1.TableType(new basic_1.StringType(), { withHeader: false, keyType: basic_1.TableKeyType.default }) : new basic_1.StringType();
30813
+ const type = intoTable ? new basic_1.TableType(basic_1.StringType.get(), { withHeader: false, keyType: basic_1.TableKeyType.default }) : basic_1.StringType.get();
30787
30814
  for (const target of node.findAllExpressions(Expressions.Target)) {
30788
30815
  const inline = target.findDirectExpression(Expressions.InlineData);
30789
30816
  if (inline) {
@@ -31816,7 +31843,7 @@ class TypeEnum {
31816
31843
  }
31817
31844
  const token = expr.getFirstToken();
31818
31845
  // integer is default if BASE TYPE is not specified
31819
- values.push(new _typed_identifier_1.TypedIdentifier(token, filename, new basic_1.IntegerType()));
31846
+ values.push(new _typed_identifier_1.TypedIdentifier(token, filename, basic_1.IntegerType.get()));
31820
31847
  }
31821
31848
  for (const type of node.findDirectStatements(Statements.TypeEnum)) {
31822
31849
  const expr = type.findFirstExpression(Expressions.NamespaceSimpleName);
@@ -31825,7 +31852,7 @@ class TypeEnum {
31825
31852
  }
31826
31853
  const token = expr.getFirstToken();
31827
31854
  // integer is default if BASE TYPE is not specified
31828
- values.push(new _typed_identifier_1.TypedIdentifier(token, filename, new basic_1.IntegerType()));
31855
+ values.push(new _typed_identifier_1.TypedIdentifier(token, filename, basic_1.IntegerType.get()));
31829
31856
  }
31830
31857
  const baseType = (_a = begin.findExpressionAfterToken("TYPE")) === null || _a === void 0 ? void 0 : _a.getFirstToken();
31831
31858
  const baseName = baseType === null || baseType === void 0 ? void 0 : baseType.getStr();
@@ -34811,6 +34838,24 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
34811
34838
  exports.IntegerType = void 0;
34812
34839
  const _abstract_type_1 = __webpack_require__(/*! ./_abstract_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/_abstract_type.js");
34813
34840
  class IntegerType extends _abstract_type_1.AbstractType {
34841
+ static get(input) {
34842
+ if (input === undefined) {
34843
+ return this.singleton;
34844
+ }
34845
+ return new IntegerType(input);
34846
+ }
34847
+ constructor(input) {
34848
+ super(input);
34849
+ }
34850
+ /** fully qualified symbolic name of the type */
34851
+ getQualifiedName() {
34852
+ var _a;
34853
+ const qual = (_a = this.data) === null || _a === void 0 ? void 0 : _a.qualifiedName;
34854
+ if (qual === undefined) {
34855
+ return "I";
34856
+ }
34857
+ return qual;
34858
+ }
34814
34859
  toText() {
34815
34860
  return "```i```";
34816
34861
  }
@@ -34828,6 +34873,7 @@ class IntegerType extends _abstract_type_1.AbstractType {
34828
34873
  }
34829
34874
  }
34830
34875
  exports.IntegerType = IntegerType;
34876
+ IntegerType.singleton = new IntegerType();
34831
34877
  //# sourceMappingURL=integer_type.js.map
34832
34878
 
34833
34879
  /***/ }),
@@ -35047,6 +35093,24 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
35047
35093
  exports.StringType = void 0;
35048
35094
  const _abstract_type_1 = __webpack_require__(/*! ./_abstract_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/_abstract_type.js");
35049
35095
  class StringType extends _abstract_type_1.AbstractType {
35096
+ static get(input) {
35097
+ if (input === undefined) {
35098
+ return this.singleton;
35099
+ }
35100
+ return new StringType(input);
35101
+ }
35102
+ constructor(input) {
35103
+ super(input);
35104
+ }
35105
+ /** fully qualified symbolic name of the type */
35106
+ getQualifiedName() {
35107
+ var _a;
35108
+ const qual = (_a = this.data) === null || _a === void 0 ? void 0 : _a.qualifiedName;
35109
+ if (qual === undefined) {
35110
+ return "STRING";
35111
+ }
35112
+ return qual;
35113
+ }
35050
35114
  toText() {
35051
35115
  return "```string```";
35052
35116
  }
@@ -35064,6 +35128,7 @@ class StringType extends _abstract_type_1.AbstractType {
35064
35128
  }
35065
35129
  }
35066
35130
  exports.StringType = StringType;
35131
+ StringType.singleton = new StringType();
35067
35132
  //# sourceMappingURL=string_type.js.map
35068
35133
 
35069
35134
  /***/ }),
@@ -38224,7 +38289,7 @@ class DDIC {
38224
38289
  lookupBuiltinType(name, length, decimals, qualifiedName) {
38225
38290
  switch (name) {
38226
38291
  case "STRING":
38227
- return new Types.StringType({ qualifiedName: qualifiedName || name });
38292
+ return Types.StringType.get({ qualifiedName: qualifiedName || name });
38228
38293
  case "XSTRING":
38229
38294
  return new Types.XStringType({ qualifiedName: qualifiedName || name });
38230
38295
  case "D":
@@ -38258,7 +38323,7 @@ class DDIC {
38258
38323
  case "CSEQUENCE":
38259
38324
  return new Types.CSequenceType({ qualifiedName: qualifiedName });
38260
38325
  case "I":
38261
- return new Types.IntegerType({ qualifiedName: qualifiedName || name });
38326
+ return Types.IntegerType.get({ qualifiedName: qualifiedName || name });
38262
38327
  case "INT8": // todo, take version into account
38263
38328
  return new Types.Integer8Type({ qualifiedName: qualifiedName || name });
38264
38329
  case "F":
@@ -38548,13 +38613,14 @@ class DDIC {
38548
38613
  case "INT1":
38549
38614
  case "INT2":
38550
38615
  case "INT4":
38616
+ return Types.IntegerType.get({ qualifiedName: qualifiedName });
38551
38617
  case "INT8":
38552
- return new Types.IntegerType({ qualifiedName: qualifiedName });
38618
+ return new Types.Integer8Type({ qualifiedName: qualifiedName });
38553
38619
  case "SSTR": // 1 <= len <= 1333
38554
38620
  case "SSTRING": // 1 <= len <= 1333
38555
38621
  case "STRG": // 256 <= len
38556
38622
  case "STRING": // 256 <= len
38557
- return new Types.StringType({ qualifiedName: qualifiedName || "STRING" });
38623
+ return Types.StringType.get({ qualifiedName: qualifiedName });
38558
38624
  case "RSTR": // 256 <= len
38559
38625
  case "RAWSTRING": // 256 <= len
38560
38626
  case "GEOM_EWKB":
@@ -48286,7 +48352,7 @@ class Registry {
48286
48352
  }
48287
48353
  static abaplintVersion() {
48288
48354
  // magic, see build script "version.sh"
48289
- return "2.101.13";
48355
+ return "2.101.15";
48290
48356
  }
48291
48357
  getDDICReferences() {
48292
48358
  return this.ddicReferences;
@@ -53534,6 +53600,10 @@ Make sure to test the downported code, it might not always be completely correct
53534
53600
  else if (fieldList.concatTokens().toUpperCase() === "COUNT( * )") {
53535
53601
  fieldDefinition = `DATA ${name} TYPE i.`;
53536
53602
  }
53603
+ else if (fieldList.concatTokens().toUpperCase() === "@ABAP_TRUE"
53604
+ || fieldList.concatTokens().toUpperCase() === "@ABAP_FALSE") {
53605
+ fieldDefinition = `DATA ${name} TYPE abap_bool.`;
53606
+ }
53537
53607
  else if (fieldList.getChildren().length === 1 && fieldList.getChildren()[0].get() instanceof Expressions.SQLAggregation) {
53538
53608
  const c = fieldList.getChildren()[0];
53539
53609
  if (c instanceof nodes_1.ExpressionNode) {
@@ -70915,7 +70985,7 @@ function isNotation(xmlData, i){
70915
70985
 
70916
70986
  //an entity name should not contains special characters that may be used in regex
70917
70987
  //Eg !?\\\/[]$%{}^&*()<>
70918
- const specialChar = "!?\\\/[]$%{}^&*()<>";
70988
+ const specialChar = "!?\\\/[]$%{}^&*()<>|+";
70919
70989
 
70920
70990
  function validateEntityName(name){
70921
70991
  for (let i = 0; i < specialChar.length; i++) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.101.13",
3
+ "version": "2.101.15",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.101.13",
41
+ "@abaplint/core": "^2.101.15",
42
42
  "@types/chai": "^4.3.5",
43
43
  "@types/glob": "^7.2.0",
44
44
  "@types/minimist": "^1.2.2",
@@ -55,7 +55,7 @@
55
55
  "mocha": "^10.2.0",
56
56
  "progress": "^2.0.3",
57
57
  "typescript": "^5.1.3",
58
- "webpack": "^5.85.0",
58
+ "webpack": "^5.85.1",
59
59
  "webpack-cli": "^5.1.3",
60
60
  "xml-js": "^1.6.11"
61
61
  },