@abaplint/transpiler-cli 2.11.25 → 2.11.27

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 +160 -24
  2. package/package.json +3 -3
package/build/bundle.js CHANGED
@@ -3173,7 +3173,7 @@ class Cast extends combi_1.Expression {
3173
3173
  getRunnable() {
3174
3174
  const rparen = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.WParenRight));
3175
3175
  const cast = (0, combi_1.seq)("CAST", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.optPrio)(let_1.Let), _1.Source, rparen);
3176
- return (0, combi_1.ver)(version_1.Version.v740sp02, cast);
3176
+ return (0, combi_1.ver)(version_1.Version.v740sp02, cast, version_1.Version.OpenABAP);
3177
3177
  }
3178
3178
  }
3179
3179
  exports.Cast = Cast;
@@ -3749,16 +3749,14 @@ exports.ConvBody = ConvBody;
3749
3749
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3750
3750
  exports.CorrespondingBody = void 0;
3751
3751
  const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
3752
- const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
3753
3752
  const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
3754
3753
  const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
3755
3754
  const component_chain_1 = __webpack_require__(/*! ./component_chain */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_chain.js");
3756
3755
  class CorrespondingBody extends combi_1.Expression {
3757
3756
  getRunnable() {
3758
3757
  const mapping = (0, combi_1.seq)("MAPPING", (0, combi_1.plus)((0, combi_1.seq)(_1.ComponentName, "=", component_chain_1.ComponentChain)));
3759
- const baseParen = (0, combi_1.seq)("BASE", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
3760
3758
  const discarding = (0, combi_1.ver)(version_1.Version.v751, "DISCARDING DUPLICATES");
3761
- return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(baseParen), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)((0, combi_1.seq)("MAPPING FROM ENTITY", (0, combi_1.optPrio)("USING CONTROL"))), // todo, version something?
3759
+ return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(_1.CorrespondingBodyBase), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)((0, combi_1.seq)("MAPPING FROM ENTITY", (0, combi_1.optPrio)("USING CONTROL"))), // todo, version something?
3762
3760
  (0, combi_1.optPrio)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
3763
3761
  }
3764
3762
  }
@@ -3767,6 +3765,29 @@ exports.CorrespondingBody = CorrespondingBody;
3767
3765
 
3768
3766
  /***/ }),
3769
3767
 
3768
+ /***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/corresponding_body_base.js":
3769
+ /*!********************************************************************************************************!*\
3770
+ !*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/corresponding_body_base.js ***!
3771
+ \********************************************************************************************************/
3772
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3773
+
3774
+ "use strict";
3775
+
3776
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3777
+ exports.CorrespondingBodyBase = void 0;
3778
+ const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
3779
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
3780
+ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
3781
+ class CorrespondingBodyBase extends combi_1.Expression {
3782
+ getRunnable() {
3783
+ return (0, combi_1.seq)("BASE", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
3784
+ }
3785
+ }
3786
+ exports.CorrespondingBodyBase = CorrespondingBodyBase;
3787
+ //# sourceMappingURL=corresponding_body_base.js.map
3788
+
3789
+ /***/ }),
3790
+
3770
3791
  /***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/data_definition.js":
3771
3792
  /*!************************************************************************************************!*\
3772
3793
  !*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/data_definition.js ***!
@@ -4750,6 +4771,7 @@ __exportStar(__webpack_require__(/*! ./component_chain */ "./node_modules/@abapl
4750
4771
  __exportStar(__webpack_require__(/*! ./component_compare_simple */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_compare_simple.js"), exports);
4751
4772
  __exportStar(__webpack_require__(/*! ./value_base */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/value_base.js"), exports);
4752
4773
  __exportStar(__webpack_require__(/*! ./component_compare_single */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_compare_single.js"), exports);
4774
+ __exportStar(__webpack_require__(/*! ./corresponding_body_base */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/corresponding_body_base.js"), exports);
4753
4775
  __exportStar(__webpack_require__(/*! ./component_compare */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_compare.js"), exports);
4754
4776
  __exportStar(__webpack_require__(/*! ./component_cond_sub */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_cond_sub.js"), exports);
4755
4777
  __exportStar(__webpack_require__(/*! ./component_cond */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/component_cond.js"), exports);
@@ -6789,7 +6811,7 @@ class Source extends combi_1.Expression {
6789
6811
  const bool = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v702, (0, combi_1.regex)(/^BOOLC$/i), version_1.Version.OpenABAP), (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.regex)(/^XSDBOOL$/i), version_1.Version.OpenABAP)), (0, combi_1.tok)(tokens_1.ParenLeftW), _1.Cond, ")");
6790
6812
  const prefix = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WPlus), "BIT-NOT");
6791
6813
  const old = (0, combi_1.seq)((0, combi_1.optPrio)(prefix), (0, combi_1.altPrio)(_1.Constant, _1.StringTemplate, text_element_1.TextElement, bool, method, (0, combi_1.seq)(_1.FieldChain, deref), paren), (0, combi_1.optPrio)(after));
6792
- const corr = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("CORRESPONDING", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.CorrespondingBody, rparen, (0, combi_1.optPrio)(after)));
6814
+ const corr = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("CORRESPONDING", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.CorrespondingBody, rparen, (0, combi_1.optPrio)(after)), version_1.Version.OpenABAP);
6793
6815
  const conv = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("CONV", _1.TypeNameOrInfer, lparenNoSpace, _1.ConvBody, rparenNoSpace, (0, combi_1.optPrio)(after)), version_1.Version.OpenABAP);
6794
6816
  const swit = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("SWITCH", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.SwitchBody, rparenNoSpace, (0, combi_1.optPrio)(after)));
6795
6817
  const value = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("VALUE", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.ValueBody, rparenNoSpace, (0, combi_1.optPrio)(after)), version_1.Version.OpenABAP);
@@ -26389,9 +26411,11 @@ class NewObject {
26389
26411
  if (ret === undefined) {
26390
26412
  const objDefinition = input.scope.findObjectDefinition(typeName);
26391
26413
  if (objDefinition) {
26414
+ const objref = new basic_1.ObjectReferenceType(objDefinition);
26415
+ const tid = new _typed_identifier_1.TypedIdentifier(typeToken, input.filename, objref);
26416
+ input.scope.addReference(typeToken, tid, _reference_1.ReferenceType.InferredType, input.filename);
26392
26417
  input.scope.addReference(typeToken, objDefinition, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
26393
26418
  input.scope.addReference(typeToken, objDefinition, _reference_1.ReferenceType.ConstructorReference, input.filename, { ooName: objDefinition.getName() });
26394
- const objref = new basic_1.ObjectReferenceType(objDefinition);
26395
26419
  const clas = input.scope.findClassDefinition(objref.getIdentifierName());
26396
26420
  if ((clas === null || clas === void 0 ? void 0 : clas.isAbstract()) === true) {
26397
26421
  const message = clas.getName() + " is abstract, cannot be instantiated";
@@ -27242,12 +27266,12 @@ class Source {
27242
27266
  const basic = new basic_types_1.BasicTypes(input);
27243
27267
  const typeExpression = node.findDirectExpression(Expressions.TypeNameOrInfer);
27244
27268
  const typeToken = typeExpression === null || typeExpression === void 0 ? void 0 : typeExpression.getFirstToken();
27245
- const typeName = typeToken === null || typeToken === void 0 ? void 0 : typeToken.getStr();
27269
+ // const typeName = typeToken?.getStr();
27246
27270
  /*
27247
27271
  console.dir(inferredType);
27248
27272
  console.dir(typeToken);
27249
27273
  */
27250
- if (typeName === "#" && inferredType && typeToken) {
27274
+ if (inferredType && typeToken) {
27251
27275
  const found = basic.lookupQualifiedName(inferredType.getQualifiedName());
27252
27276
  if (found) {
27253
27277
  const tid = new _typed_identifier_1.TypedIdentifier(typeToken, input.filename, inferredType);
@@ -53718,7 +53742,7 @@ class Registry {
53718
53742
  }
53719
53743
  static abaplintVersion() {
53720
53744
  // magic, see build script "version.sh"
53721
- return "2.113.171";
53745
+ return "2.113.173";
53722
53746
  }
53723
53747
  getDDICReferences() {
53724
53748
  return this.ddicReferences;
@@ -60118,7 +60142,7 @@ ${indentation}${uniqueName2}->if_t100_message~t100key = ${uniqueName1}.\n`;
60118
60142
  return issue_1.Issue.atToken(lowFile, high.getFirstToken(), "Downport, call function parameter", this.getMetadata().key, this.conf.severity, fix);
60119
60143
  }
60120
60144
  downportCorrespondingSimple(high, lowFile) {
60121
- var _a, _b;
60145
+ var _a;
60122
60146
  if (!(high.get() instanceof Statements.Move)
60123
60147
  || high.getChildren().length !== 4
60124
60148
  || high.getChildren()[2].getFirstToken().getStr().toUpperCase() !== "CORRESPONDING") {
@@ -60136,9 +60160,10 @@ ${indentation}${uniqueName2}->if_t100_message~t100key = ${uniqueName1}.\n`;
60136
60160
  const fix = edit_helper_1.EditHelper.replaceRange(lowFile, start, end, code);
60137
60161
  return issue_1.Issue.atToken(lowFile, high.getFirstToken(), "Downport, simple CORRESPONDING move", this.getMetadata().key, this.conf.severity, fix);
60138
60162
  }
60139
- else if ((sourceRef === null || sourceRef === void 0 ? void 0 : sourceRef.getChildren().length) === 5 && ((_b = sourceRef.getFirstChild()) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase()) === "BASE") {
60140
- let code = `${target.concatTokens()} = ${sourceRef.getChildren()[2].concatTokens()}.\n`;
60141
- code += `MOVE-CORRESPONDING ${sourceRef.getChildren()[4].concatTokens()} TO ${target.concatTokens()}`;
60163
+ else if ((sourceRef === null || sourceRef === void 0 ? void 0 : sourceRef.getChildren().length) === 2 && sourceRef.findDirectExpression(Expressions.CorrespondingBodyBase) !== undefined) {
60164
+ const base = sourceRef.findDirectExpression(Expressions.CorrespondingBodyBase);
60165
+ let code = `${target.concatTokens()} = ${base.getChildren()[2].concatTokens()}.\n`;
60166
+ code += `MOVE-CORRESPONDING ${sourceRef.getChildren()[1].concatTokens()} TO ${target.concatTokens()}`;
60142
60167
  const start = high.getFirstToken().getStart();
60143
60168
  const end = high.getLastToken().getStart();
60144
60169
  const fix = edit_helper_1.EditHelper.replaceRange(lowFile, start, end, code);
@@ -78240,6 +78265,50 @@ exports.CallTransformationParametersTranspiler = CallTransformationParametersTra
78240
78265
 
78241
78266
  /***/ }),
78242
78267
 
78268
+ /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/cast.js":
78269
+ /*!*************************************************************************!*\
78270
+ !*** ./node_modules/@abaplint/transpiler/build/src/expressions/cast.js ***!
78271
+ \*************************************************************************/
78272
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
78273
+
78274
+ "use strict";
78275
+
78276
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
78277
+ exports.CastTranspiler = void 0;
78278
+ const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
78279
+ const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
78280
+ const type_name_or_infer_1 = __webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js");
78281
+ const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
78282
+ class CastTranspiler {
78283
+ transpile(node, traversal) {
78284
+ const ret = new chunk_1.Chunk();
78285
+ const source = node.findDirectExpression(core_1.Expressions.Source);
78286
+ if (source === undefined) {
78287
+ throw new Error("CastTranspiler, Source not found");
78288
+ }
78289
+ const tni = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
78290
+ if (tni === undefined) {
78291
+ throw new Error("CastTranspiler, TypeNameOrInfer not found");
78292
+ }
78293
+ const type = new type_name_or_infer_1.TypeNameOrInfer().findType(tni, traversal);
78294
+ const target = transpile_types_1.TranspileTypes.toType(type);
78295
+ const lett = node.findDirectExpression(core_1.Expressions.Let);
78296
+ if (lett !== undefined) {
78297
+ throw new Error("CastTranspiler, Let todo");
78298
+ }
78299
+ ret.appendString("await abap.statements.cast(")
78300
+ .appendString(target)
78301
+ .appendString(", ")
78302
+ .appendChunk(traversal.traverse(source))
78303
+ .append(")", node.getLastToken(), traversal);
78304
+ return ret;
78305
+ }
78306
+ }
78307
+ exports.CastTranspiler = CastTranspiler;
78308
+ //# sourceMappingURL=cast.js.map
78309
+
78310
+ /***/ }),
78311
+
78243
78312
  /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/compare.js":
78244
78313
  /*!****************************************************************************!*\
78245
78314
  !*** ./node_modules/@abaplint/transpiler/build/src/expressions/compare.js ***!
@@ -78894,6 +78963,51 @@ exports.ConstantTranspiler = ConstantTranspiler;
78894
78963
 
78895
78964
  /***/ }),
78896
78965
 
78966
+ /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/corresponding_body.js":
78967
+ /*!***************************************************************************************!*\
78968
+ !*** ./node_modules/@abaplint/transpiler/build/src/expressions/corresponding_body.js ***!
78969
+ \***************************************************************************************/
78970
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
78971
+
78972
+ "use strict";
78973
+
78974
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
78975
+ exports.CorrespondingBodyTranspiler = void 0;
78976
+ const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
78977
+ const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
78978
+ const type_name_or_infer_1 = __webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js");
78979
+ const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
78980
+ class CorrespondingBodyTranspiler {
78981
+ transpile(typ, body, traversal) {
78982
+ if (!(typ.get() instanceof core_1.Expressions.TypeNameOrInfer)) {
78983
+ throw new Error("CorrespondingBodyTranspiler, Expected TypeNameOrInfer");
78984
+ }
78985
+ const type = new type_name_or_infer_1.TypeNameOrInfer().findType(typ, traversal);
78986
+ let target = transpile_types_1.TranspileTypes.toType(type);
78987
+ let source;
78988
+ for (const child of body.getChildren()) {
78989
+ const c = child.get();
78990
+ if (c instanceof core_1.Expressions.Source && child instanceof core_1.Nodes.ExpressionNode) {
78991
+ source = traversal.traverse(child);
78992
+ }
78993
+ else if (c instanceof core_1.Expressions.CorrespondingBodyBase && child instanceof core_1.Nodes.ExpressionNode) {
78994
+ source = traversal.traverse(child?.findDirectExpression(core_1.Expressions.Source));
78995
+ target = `abap.statements.moveCorresponding(${source.getCode()}, ${target})`;
78996
+ }
78997
+ else {
78998
+ throw new Error("CorrespondingBodyTranspiler, todo, " + c.constructor.name);
78999
+ }
79000
+ }
79001
+ const ret = new chunk_1.Chunk();
79002
+ ret.appendString(`abap.statements.moveCorresponding(${source.getCode()}, ${target})`);
79003
+ return ret;
79004
+ }
79005
+ }
79006
+ exports.CorrespondingBodyTranspiler = CorrespondingBodyTranspiler;
79007
+ //# sourceMappingURL=corresponding_body.js.map
79008
+
79009
+ /***/ }),
79010
+
78897
79011
  /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/database_table.js":
78898
79012
  /*!***********************************************************************************!*\
78899
79013
  !*** ./node_modules/@abaplint/transpiler/build/src/expressions/database_table.js ***!
@@ -79315,6 +79429,7 @@ __exportStar(__webpack_require__(/*! ./component_cond */ "./node_modules/@abapli
79315
79429
  __exportStar(__webpack_require__(/*! ./cond_sub */ "./node_modules/@abaplint/transpiler/build/src/expressions/cond_sub.js"), exports);
79316
79430
  __exportStar(__webpack_require__(/*! ./cond */ "./node_modules/@abaplint/transpiler/build/src/expressions/cond.js"), exports);
79317
79431
  __exportStar(__webpack_require__(/*! ./constant */ "./node_modules/@abaplint/transpiler/build/src/expressions/constant.js"), exports);
79432
+ __exportStar(__webpack_require__(/*! ./cast */ "./node_modules/@abaplint/transpiler/build/src/expressions/cast.js"), exports);
79318
79433
  __exportStar(__webpack_require__(/*! ./database_table */ "./node_modules/@abaplint/transpiler/build/src/expressions/database_table.js"), exports);
79319
79434
  __exportStar(__webpack_require__(/*! ./field_chain */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_chain.js"), exports);
79320
79435
  __exportStar(__webpack_require__(/*! ./field_length */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_length.js"), exports);
@@ -79561,8 +79676,11 @@ class MethodCallChainTranspiler {
79561
79676
  else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.ComponentName) {
79562
79677
  ret.append("." + c.concatTokens().toLowerCase(), c, traversal);
79563
79678
  }
79679
+ else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.Cast) {
79680
+ ret.appendChunk(traversal.traverse(c));
79681
+ }
79564
79682
  else {
79565
- ret.append("MethodCallChainTranspilerTodo-" + c.get().constructor.name, c, traversal);
79683
+ ret.append("MethodCallChainTranspilerTodo$" + c.get().constructor.name, c, traversal);
79566
79684
  }
79567
79685
  }
79568
79686
  const code = ret.getCode();
@@ -80138,6 +80256,7 @@ const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abapli
80138
80256
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
80139
80257
  const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
80140
80258
  const value_body_1 = __webpack_require__(/*! ./value_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/value_body.js");
80259
+ const corresponding_body_1 = __webpack_require__(/*! ./corresponding_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/corresponding_body.js");
80141
80260
  class SourceTranspiler {
80142
80261
  addGet;
80143
80262
  constructor(addGet = false) {
@@ -80219,8 +80338,11 @@ class SourceTranspiler {
80219
80338
  else if (c.get() instanceof core_1.Expressions.ValueBody) {
80220
80339
  continue;
80221
80340
  }
80341
+ else if (c.get() instanceof core_1.Expressions.CorrespondingBody) {
80342
+ continue;
80343
+ }
80222
80344
  else {
80223
- ret.appendString("SourceUnknown-" + c.get().constructor.name);
80345
+ ret.appendString("SourceUnknown$" + c.get().constructor.name);
80224
80346
  }
80225
80347
  }
80226
80348
  else if (c instanceof core_1.Nodes.TokenNode && (c.getFirstToken().getStr() === "&&" || c.getFirstToken().getStr() === "&")) {
@@ -80252,6 +80374,17 @@ class SourceTranspiler {
80252
80374
  ret.appendString(transpile_types_1.TranspileTypes.toType(context));
80253
80375
  }
80254
80376
  }
80377
+ else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "CORRESPONDING") {
80378
+ const typ = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
80379
+ if (typ === undefined) {
80380
+ throw new Error("TypeNameOrInfer not found in CorrespondingBody");
80381
+ }
80382
+ const correspondingBody = node.findDirectExpression(core_1.Expressions.CorrespondingBody);
80383
+ if (correspondingBody === undefined) {
80384
+ throw new Error("CorrespondingBody not found");
80385
+ }
80386
+ ret.appendChunk(new corresponding_body_1.CorrespondingBodyTranspiler().transpile(typ, correspondingBody, traversal));
80387
+ }
80255
80388
  else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "REF") {
80256
80389
  const infer = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
80257
80390
  if (infer?.concatTokens() !== "#") {
@@ -81265,14 +81398,15 @@ const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/tr
81265
81398
  const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
81266
81399
  class TypeNameOrInfer {
81267
81400
  findType(node, traversal) {
81268
- let type;
81401
+ // let type: AbstractType | undefined;
81269
81402
  const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
81270
- if (node.concatTokens() === "#") {
81271
- type = traversal.lookupInferred(node, scope);
81272
- }
81273
- else {
81274
- type = traversal.lookupType(node.getFirstChild(), scope);
81275
- }
81403
+ // if (node.concatTokens() === "#") {
81404
+ const type = traversal.lookupInferred(node, scope);
81405
+ /*
81406
+ } else {
81407
+ type = traversal.lookupType(node.getFirstChild() as Nodes.ExpressionNode, scope);
81408
+ }
81409
+ */
81276
81410
  if (type === undefined) {
81277
81411
  throw new Error("TypeNameOrInfer, type not found: " + node.concatTokens());
81278
81412
  }
@@ -90725,6 +90859,7 @@ this.INTERNAL_ID = abap.internalIdCounter++;\n`;
90725
90859
  }
90726
90860
  return ret;
90727
90861
  }
90862
+ // todo: delete this method?
90728
90863
  lookupType(node, scope) {
90729
90864
  if (scope === undefined) {
90730
90865
  return undefined;
@@ -90794,9 +90929,10 @@ this.INTERNAL_ID = abap.internalIdCounter++;\n`;
90794
90929
  lookupInferred(node, scope) {
90795
90930
  if (scope === undefined) {
90796
90931
  return undefined;
90797
- }
90798
- else if (node.concatTokens() !== "#") {
90932
+ /*
90933
+ } else if (node.concatTokens() !== "#") {
90799
90934
  throw new Error("lookupInferred, unexpected, " + node.get());
90935
+ */
90800
90936
  }
90801
90937
  return this.findInferredTypeReference(node.getFirstToken());
90802
90938
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.25",
3
+ "version": "2.11.27",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -27,8 +27,8 @@
27
27
  "author": "abaplint",
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
- "@abaplint/core": "^2.113.171",
31
- "@abaplint/transpiler": "^2.11.25",
30
+ "@abaplint/core": "^2.113.173",
31
+ "@abaplint/transpiler": "^2.11.27",
32
32
  "@types/glob": "^8.1.0",
33
33
  "@types/node": "^24.2.1",
34
34
  "@types/progress": "^2.0.7",