@abaplint/transpiler 2.7.105 → 2.7.106

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.
@@ -40,22 +40,25 @@ class MethodImplementationTranspiler {
40
40
  if (unique === "") {
41
41
  unique = "INPUT";
42
42
  }
43
- after = after + new transpile_types_1.TranspileTypes().declare(identifier) + "\n";
44
- const type = identifier.getType();
45
- // todo, type X is also generic in method definitions, the real fix will be in abaplint
46
- const charGeneric = type instanceof abaplint.BasicTypes.CharacterType
47
- && type.getLength() === 1
48
- && type.getDDICName() === undefined
49
- && type.getQualifiedName() === undefined;
50
- if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
51
- && type.isGeneric() === false
52
- && charGeneric === false) {
43
+ const parameterDefault = methodDef === null || methodDef === void 0 ? void 0 : methodDef.getParameterDefault(varName);
44
+ if (identifier.getMeta().includes("pass_by_value" /* abaplint.IdentifierMeta.PassByValue */)
45
+ && identifier.getType().isGeneric() === false) {
46
+ after += "let " + varName + " = " + new transpile_types_1.TranspileTypes().toType(identifier.getType()) + ";\n";
53
47
  after += "if (" + unique + " && " + unique + "." + varName + ") {" + varName + ".set(" + unique + "." + varName + ");}\n";
54
48
  }
55
49
  else {
56
- after += "if (" + unique + " && " + unique + "." + varName + ") {" + varName + " = " + unique + "." + varName + ";}\n";
50
+ after += "let " + varName + " = " + unique + "?." + varName + ";\n";
57
51
  }
58
- const parameterDefault = methodDef === null || methodDef === void 0 ? void 0 : methodDef.getParameterDefault(varName);
52
+ /*
53
+ after = after + new TranspileTypes().declare(identifier) + "\n";
54
+ const type = identifier.getType();
55
+ if (identifier.getMeta().includes(abaplint.IdentifierMeta.MethodImporting)
56
+ && type.isGeneric() === false) {
57
+ after += "if (" + unique + " && " + unique + "." + varName + ") {" + varName + ".set(" + unique + "." + varName + ");}\n";
58
+ } else {
59
+ after += "if (" + unique + " && " + unique + "." + varName + ") {" + varName + " = " + unique + "." + varName + ";}\n";
60
+ }
61
+ */
59
62
  if (parameterDefault) {
60
63
  let val = "";
61
64
  if (parameterDefault.get() instanceof abaplint.Expressions.Constant) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TranspileTypes = void 0;
4
4
  const abaplint = require("@abaplint/core");
5
+ // todo: change this class to static for performance?
5
6
  class TranspileTypes {
6
7
  declare(t) {
7
8
  const type = t.getType();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.7.105",
3
+ "version": "2.7.106",
4
4
  "description": "Transpiler",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/src/index.d.ts",
@@ -29,11 +29,11 @@
29
29
  "author": "abaplint",
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@abaplint/core": "^2.102.56",
32
+ "@abaplint/core": "^2.102.58",
33
33
  "source-map": "^0.7.4"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/chai": "^4.3.7",
36
+ "@types/chai": "^4.3.8",
37
37
  "@types/mocha": "^10.0.2",
38
38
  "chai": "^4.3.10",
39
39
  "mocha": "^10.2.0",