@abaplint/transpiler-cli 2.11.30 → 2.11.32

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 +31 -19
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -78407,10 +78407,12 @@ class CompareTranspiler {
78407
78407
  }
78408
78408
  const chain = node.findDirectExpression(core_1.Expressions.MethodCallChain);
78409
78409
  if (chain) {
78410
+ const negated = concat.startsWith("NOT ");
78410
78411
  const name = chain.getFirstToken().getStr();
78411
78412
  if (core_1.BuiltIn.isPredicate(name)) {
78412
78413
  // todo, this is not completely correct if there is a method shadowing the name
78413
- return new chunk_1.Chunk().appendString(`abap.compare.eq(` + traversal.traverse(chain).getCode() + `, abap.builtin.abap_true)`);
78414
+ const operator = negated ? 'ne' : 'eq';
78415
+ return new chunk_1.Chunk().appendString(`abap.compare.${operator}(` + traversal.traverse(chain).getCode() + `, abap.builtin.abap_true)`);
78414
78416
  }
78415
78417
  else {
78416
78418
  return new chunk_1.Chunk().appendString(pre + `abap.compare.initial(${traversal.traverse(chain).getCode()}) === false`);
@@ -79530,33 +79532,43 @@ const method_call_param_1 = __webpack_require__(/*! ./method_call_param */ "./no
79530
79532
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
79531
79533
  class MethodCallTranspiler {
79532
79534
  transpile(node, traversal) {
79535
+ let post = "";
79533
79536
  const nameToken = node.findDirectExpression(core_1.Expressions.MethodName)?.getFirstToken();
79534
79537
  if (nameToken === undefined) {
79535
79538
  throw new Error("MethodCallTranspiler, name not found");
79536
79539
  }
79540
+ const scope = traversal.findCurrentScopeByToken(nameToken);
79541
+ const m = traversal.findMethodReference(nameToken, scope);
79537
79542
  let name = nameToken.getStr().toLowerCase();
79538
79543
  if (traversal.isBuiltinMethod(nameToken)) {
79539
- name = "abap.builtin." + name;
79544
+ // todo: this is not correct, the method name might be shadowed
79545
+ name = "abap.builtin." + name + "(";
79546
+ if (name === "abap.builtin.line_exists(" || name === "abap.builtin.line_index(") {
79547
+ name += "() => {";
79548
+ post = "}";
79549
+ }
79540
79550
  }
79541
- const scope = traversal.findCurrentScopeByToken(nameToken);
79542
- // it might be aliased?
79543
- const m = traversal.findMethodReference(nameToken, scope);
79544
- if (m?.name && traversal.isBuiltinMethod(nameToken) === false) {
79551
+ else if (m?.name) {
79545
79552
  name = m.name.toLowerCase();
79546
- }
79547
- name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79548
- if (m?.def.getVisibility() === core_1.Visibility.Private
79549
- && m.def.isStatic() === false) {
79550
- const id = scope?.getParent()?.getParent()?.getIdentifier();
79551
- if (id?.stype === core_1.ScopeType.ClassImplementation
79552
- && m.def.getClassName().toUpperCase() === id.sname.toUpperCase()) {
79553
- name = "#" + name;
79554
- }
79555
- else {
79556
- name = `FRIENDS_ACCESS_INSTANCE["${name}"]`;
79553
+ name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79554
+ if (m?.def.getVisibility() === core_1.Visibility.Private
79555
+ && m.def.isStatic() === false) {
79556
+ const id = scope?.getParent()?.getParent()?.getIdentifier();
79557
+ if (id?.stype === core_1.ScopeType.ClassImplementation
79558
+ && m.def.getClassName().toUpperCase() === id.sname.toUpperCase()) {
79559
+ name = "#" + name;
79560
+ }
79561
+ else {
79562
+ name = `FRIENDS_ACCESS_INSTANCE["${name}"]`;
79563
+ }
79557
79564
  }
79565
+ name = name + "(";
79566
+ }
79567
+ else {
79568
+ // todo: this should never happen?
79569
+ name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79570
+ name = name + "(";
79558
79571
  }
79559
- name = name + "(";
79560
79572
  const step = node.findDirectExpression(core_1.Expressions.MethodCallParam);
79561
79573
  if (step === undefined) {
79562
79574
  throw new Error("MethodCallTranspiler, unexpected node");
@@ -79564,7 +79576,7 @@ class MethodCallTranspiler {
79564
79576
  const ret = new chunk_1.Chunk();
79565
79577
  ret.append(name, nameToken, traversal);
79566
79578
  ret.appendChunk(new method_call_param_1.MethodCallParamTranspiler(m?.def).transpile(step, traversal));
79567
- ret.appendString(")");
79579
+ ret.appendString(post + ")");
79568
79580
  return ret;
79569
79581
  }
79570
79582
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.30",
3
+ "version": "2.11.32",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
30
  "@abaplint/core": "^2.113.174",
31
- "@abaplint/transpiler": "^2.11.30",
31
+ "@abaplint/transpiler": "^2.11.32",
32
32
  "@types/glob": "^8.1.0",
33
33
  "@types/node": "^24.2.1",
34
34
  "@types/progress": "^2.0.7",