@abaplint/transpiler-cli 2.7.39 → 2.7.40

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 +21 -3
  2. package/package.json +4 -4
package/build/bundle.js CHANGED
@@ -20258,6 +20258,7 @@ const _typed_identifier_1 = __webpack_require__(/*! ../types/_typed_identifier *
20258
20258
  const basic_1 = __webpack_require__(/*! ../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
20259
20259
  const ddic_1 = __webpack_require__(/*! ../../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
20260
20260
  const _object_oriented_1 = __webpack_require__(/*! ./_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
20261
+ const _reference_1 = __webpack_require__(/*! ./_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
20261
20262
  class Procedural {
20262
20263
  constructor(reg, scope) {
20263
20264
  this.scope = scope;
@@ -20331,7 +20332,19 @@ class Procedural {
20331
20332
  if (param.type === undefined || param.type === "") {
20332
20333
  found = new basic_1.AnyType();
20333
20334
  }
20334
- else {
20335
+ else if (param.type.includes("=>")) {
20336
+ // then its a type from global INTF or CLAS
20337
+ const [clas, name] = param.type.split("=>");
20338
+ const def = this.scope.findObjectDefinition(clas);
20339
+ if (def) {
20340
+ const type = def.getTypeDefinitions().getByName(name);
20341
+ if (type) {
20342
+ this.scope.addReference(nameToken, type, _reference_1.ReferenceType.TypeReference, filename);
20343
+ found = type.getType();
20344
+ }
20345
+ }
20346
+ }
20347
+ if (found === undefined) {
20335
20348
  found = ddic.lookup(param.type).type;
20336
20349
  }
20337
20350
  if (param.direction === types_1.FunctionModuleParameterDirection.tables) {
@@ -23942,10 +23955,12 @@ class MethodParameters {
23942
23955
  }
23943
23956
  for (const item of items) {
23944
23957
  const parameter = allImporting.find(p => p.getName().toUpperCase() === item.name);
23958
+ const calculated = item.source.findFirstExpression(Expressions.MethodCallChain) !== undefined
23959
+ || item.source.findFirstExpression(Expressions.ArithOperator) !== undefined;
23945
23960
  if (parameter === undefined) {
23946
23961
  throw new Error("Method importing parameter \"" + item.name + "\" does not exist");
23947
23962
  }
23948
- else if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(item.sourceType, parameter.getType()) === false) {
23963
+ else if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(item.sourceType, parameter.getType(), calculated) === false) {
23949
23964
  throw new Error("Method parameter type not compatible, " + item.name);
23950
23965
  }
23951
23966
  this.requiredParameters.delete(item.name);
@@ -47525,7 +47540,7 @@ class Registry {
47525
47540
  }
47526
47541
  static abaplintVersion() {
47527
47542
  // magic, see build script "version.sh"
47528
- return "2.102.2";
47543
+ return "2.102.3";
47529
47544
  }
47530
47545
  getDDICReferences() {
47531
47546
  return this.ddicReferences;
@@ -62897,6 +62912,8 @@ class PreferPragmas extends _abap_rule_1.ABAPRule {
62897
62912
  shortDescription: `prefer pragmas over pseudo comments `,
62898
62913
  extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#prefer-pragmas-to-pseudo-comments`,
62899
62914
  tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide],
62915
+ badExample: `DATA foo1 TYPE i. "#EC NEEDED`,
62916
+ goodExample: `DATA foo2 TYPE i ##NEEDED.`,
62900
62917
  };
62901
62918
  }
62902
62919
  getConfig() {
@@ -82856,6 +82873,7 @@ const parseXml = function(xmlData) {
82856
82873
  if(tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1){
82857
82874
  if(tagName[tagName.length - 1] === "/"){ //remove trailing '/'
82858
82875
  tagName = tagName.substr(0, tagName.length - 1);
82876
+ jPath = jPath.substr(0, jPath.length - 1);
82859
82877
  tagExp = tagName;
82860
82878
  }else{
82861
82879
  tagExp = tagExp.substr(0, tagExp.length - 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.7.39",
3
+ "version": "2.7.40",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -26,14 +26,14 @@
26
26
  "author": "abaplint",
27
27
  "license": "MIT",
28
28
  "devDependencies": {
29
- "@abaplint/transpiler": "^2.7.39",
29
+ "@abaplint/transpiler": "^2.7.40",
30
30
  "@types/glob": "^7.2.0",
31
31
  "glob": "=7.2.0",
32
32
  "@types/progress": "^2.0.5",
33
33
  "@types/node": "^20.4.2",
34
- "@abaplint/core": "^2.102.2",
34
+ "@abaplint/core": "^2.102.3",
35
35
  "progress": "^2.0.3",
36
- "webpack": "^5.88.1",
36
+ "webpack": "^5.88.2",
37
37
  "webpack-cli": "^5.1.4",
38
38
  "typescript": "^5.1.6"
39
39
  }