@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.
- package/build/bundle.js +31 -19
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
79548
|
-
|
|
79549
|
-
|
|
79550
|
-
|
|
79551
|
-
|
|
79552
|
-
|
|
79553
|
-
|
|
79554
|
-
|
|
79555
|
-
|
|
79556
|
-
|
|
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.
|
|
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.
|
|
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",
|