@abaplint/transpiler-cli 2.11.94 → 2.11.96

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/bundle.js +29 -13
  2. package/package.json +6 -6
package/build/bundle.js CHANGED
@@ -22736,7 +22736,7 @@ class TypeUtils {
22736
22736
  if (!(sourceRowType instanceof basic_1.StructureType)) {
22737
22737
  return false;
22738
22738
  }
22739
- else if (!(this.structureContainsString(sourceRowType))
22739
+ else if (!this.structureContainsString(sourceRowType)
22740
22740
  && this.structureContainsVoid(sourceRowType) === false) {
22741
22741
  return false;
22742
22742
  }
@@ -22746,7 +22746,7 @@ class TypeUtils {
22746
22746
  if (!(targetRowType instanceof basic_1.StructureType)) {
22747
22747
  return false;
22748
22748
  }
22749
- else if (!(this.structureContainsString(targetRowType))
22749
+ else if (!this.structureContainsString(targetRowType)
22750
22750
  && this.structureContainsVoid(targetRowType) === false) {
22751
22751
  return false;
22752
22752
  }
@@ -24544,7 +24544,7 @@ class CorrespondingBody {
24544
24544
  }
24545
24545
  const base = (_a = node.findDirectExpression(Expressions.CorrespondingBodyBase)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(Expressions.Source);
24546
24546
  if (base) {
24547
- source_1.Source.runSyntax(base, input);
24547
+ source_1.Source.runSyntax(base, input, targetType);
24548
24548
  }
24549
24549
  let type = undefined;
24550
24550
  for (const s of node.findDirectExpressions(Expressions.Source)) {
@@ -53450,7 +53450,7 @@ class Registry {
53450
53450
  }
53451
53451
  static abaplintVersion() {
53452
53452
  // magic, see build script "version.sh"
53453
- return "2.113.217";
53453
+ return "2.113.218";
53454
53454
  }
53455
53455
  getDDICReferences() {
53456
53456
  return this.ddicReferences;
@@ -59488,7 +59488,6 @@ ${indentation}${uniqueName} = ${source.concatTokens()}.\n${indentation}`);
59488
59488
  const source = high.findExpressionAfterToken("MESSAGE");
59489
59489
  if ((source === null || source === void 0 ? void 0 : source.get()) instanceof Expressions.MessageSourceSource
59490
59490
  && ((_a = source.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Source) {
59491
- ;
59492
59491
  const uniqueName = this.uniqueName(high.getFirstToken().getStart(), lowFile.getFilename(), highSyntax);
59493
59492
  const indentation = " ".repeat(high.getFirstToken().getStart().getCol() - 1);
59494
59493
  const firstToken = high.getFirstToken();
@@ -62920,7 +62919,7 @@ class FullyTypeConstants extends _abap_rule_1.ABAPRule {
62920
62919
  for (const stat of file.getStatements()) {
62921
62920
  if ((stat.get() instanceof Statements.Constant
62922
62921
  || (this.conf.checkData === true && stat.get() instanceof Statements.Data))
62923
- && (!this.isTyped(stat))) {
62922
+ && !this.isTyped(stat)) {
62924
62923
  const type = stat.get() instanceof Statements.Constant ? "constant definition" : "data definition";
62925
62924
  let token = (_a = stat.findFirstExpression(expressions_1.NamespaceSimpleName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
62926
62925
  if (token === undefined) {
@@ -62935,7 +62934,7 @@ class FullyTypeConstants extends _abap_rule_1.ABAPRule {
62935
62934
  return issues;
62936
62935
  }
62937
62936
  isTyped(stat) {
62938
- return (stat.findFirstExpression(expressions_1.Type) || stat.findFirstExpression(expressions_1.TypeTable));
62937
+ return stat.findFirstExpression(expressions_1.Type) || stat.findFirstExpression(expressions_1.TypeTable);
62939
62938
  }
62940
62939
  }
62941
62940
  exports.FullyTypeConstants = FullyTypeConstants;
@@ -64148,7 +64147,7 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
64148
64147
  return [idef];
64149
64148
  }
64150
64149
  for (const m of this.findInterfaceMethods(idef)) {
64151
- if (interfaceInfo.abstractMethods.includes(m.method.name.toUpperCase())) {
64150
+ if (this.isAbstract(m, interfaceInfo, def)) {
64152
64151
  continue;
64153
64152
  }
64154
64153
  if (this.isImplemented(m, def, impl) === false) {
@@ -64167,6 +64166,23 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
64167
64166
  }
64168
64167
  return ret;
64169
64168
  }
64169
+ isAbstract(m, interfaceInfo, def) {
64170
+ if (interfaceInfo.abstractMethods.includes(m.method.name.toUpperCase())) {
64171
+ return true;
64172
+ }
64173
+ if (!def.superClassName) {
64174
+ return false;
64175
+ }
64176
+ // look up in superclass if method is abstract there
64177
+ const superClass = this.findClass(def.superClassName);
64178
+ const superInterface = superClass === null || superClass === void 0 ? void 0 : superClass.def.interfaces.find(iface => iface.name.toUpperCase() === m.objectName.toUpperCase());
64179
+ if (superClass && superInterface) {
64180
+ return this.isAbstract(m, superInterface, superClass.def);
64181
+ }
64182
+ else {
64183
+ return false;
64184
+ }
64185
+ }
64170
64186
  isImplemented(m, def, impl) {
64171
64187
  if (impl === undefined) {
64172
64188
  return false;
@@ -74529,9 +74545,9 @@ ENDFORM.`,
74529
74545
  for (let i = 0; i < statements.length; i++) {
74530
74546
  const node = statements[i];
74531
74547
  const nodeType = node.get();
74532
- if ((nodeType instanceof Statements.MethodImplementation
74548
+ if (nodeType instanceof Statements.MethodImplementation
74533
74549
  || nodeType instanceof Statements.Form
74534
- || nodeType instanceof Statements.FunctionModule)) {
74550
+ || nodeType instanceof Statements.FunctionModule) {
74535
74551
  statementCounter = 0;
74536
74552
  continue;
74537
74553
  }
@@ -77653,8 +77669,8 @@ class PopulateTables {
77653
77669
  if (!this.hasT000) {
77654
77670
  return "";
77655
77671
  }
77656
- // todo, this should take the client number from the settings
77657
- return `INSERT INTO t000 ('mandt', 'cccategory', 'ccnocliind') VALUES ('123', '', '');`;
77672
+ // todo, this should take the client number from the json abap_transpile.json settings
77673
+ return `INSERT INTO t000 ("mandt", "cccategory", "ccnocliind") VALUES ('123', '', '');`;
77658
77674
  }
77659
77675
  escape(value) {
77660
77676
  let ret = value.replace(/\'/g, "''");
@@ -77828,7 +77844,7 @@ class SnowflakeDatabaseSchema {
77828
77844
  this.reg = reg;
77829
77845
  }
77830
77846
  buildVIEW(_view) {
77831
- throw new Error("buildView, todo snowflake");
77847
+ return "Error: buildView, todo snowflake";
77832
77848
  }
77833
77849
  buildTABL(tabl) {
77834
77850
  const type = tabl.parseType(this.reg);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.94",
3
+ "version": "2.11.96",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -27,17 +27,17 @@
27
27
  "author": "abaplint",
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
- "@abaplint/core": "^2.113.217",
31
- "@abaplint/transpiler": "^2.11.94",
30
+ "@abaplint/core": "^2.113.218",
31
+ "@abaplint/transpiler": "^2.11.96",
32
32
  "@types/glob": "^8.1.0",
33
- "@types/node": "^24.5.2",
33
+ "@types/node": "^24.6.1",
34
34
  "@types/progress": "^2.0.7",
35
35
  "glob": "=7.2.0",
36
36
  "progress": "^2.0.3",
37
37
  "ts-json-schema-generator": "^2.4.0",
38
- "typescript": "^5.9.2",
38
+ "typescript": "^5.9.3",
39
39
  "p-limit": "^3.1.0",
40
40
  "webpack-cli": "^6.0.1",
41
- "webpack": "^5.101.3"
41
+ "webpack": "^5.102.0"
42
42
  }
43
43
  }