@abaplint/transpiler-cli 2.13.5 → 2.13.7

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 +13 -4
  2. package/package.json +3 -3
package/build/bundle.js CHANGED
@@ -30744,7 +30744,7 @@ class CreateObject {
30744
30744
  this.validateParameters(cdef, node, input);
30745
30745
  }
30746
30746
  static checkInstantiationAllowed(cdef, input) {
30747
- var _a, _b;
30747
+ var _a, _b, _c, _d;
30748
30748
  const createVis = cdef.getCreateVisibility();
30749
30749
  if (createVis === visibility_1.Visibility.Public) {
30750
30750
  return undefined;
@@ -30761,14 +30761,23 @@ class CreateObject {
30761
30761
  input.scope.isLocalFriend(cdef.getName(), enclosingClass)) {
30762
30762
  return undefined;
30763
30763
  }
30764
+ // subclasses of friends also have friendship
30765
+ let enclosingSup = (_a = input.scope.findClassDefinition(enclosingClass)) === null || _a === void 0 ? void 0 : _a.getSuperClass();
30766
+ while (enclosingSup !== undefined) {
30767
+ if (cdef.getFriends().some(f => f.toUpperCase() === enclosingSup.toUpperCase()) ||
30768
+ input.scope.isLocalFriend(cdef.getName(), enclosingSup)) {
30769
+ return undefined;
30770
+ }
30771
+ enclosingSup = (_b = input.scope.findClassDefinition(enclosingSup)) === null || _b === void 0 ? void 0 : _b.getSuperClass();
30772
+ }
30764
30773
  if (createVis === visibility_1.Visibility.Protected) {
30765
30774
  // subclasses are also allowed
30766
- let sup = (_a = input.scope.findClassDefinition(enclosingClass)) === null || _a === void 0 ? void 0 : _a.getSuperClass();
30775
+ let sup = (_c = input.scope.findClassDefinition(enclosingClass)) === null || _c === void 0 ? void 0 : _c.getSuperClass();
30767
30776
  while (sup !== undefined) {
30768
30777
  if (sup.toUpperCase() === cdef.getName().toUpperCase()) {
30769
30778
  return undefined;
30770
30779
  }
30771
- sup = (_b = input.scope.findClassDefinition(sup)) === null || _b === void 0 ? void 0 : _b.getSuperClass();
30780
+ sup = (_d = input.scope.findClassDefinition(sup)) === null || _d === void 0 ? void 0 : _d.getSuperClass();
30772
30781
  }
30773
30782
  }
30774
30783
  return cdef.getName() + " cannot be instantiated, class is defined as " +
@@ -54949,7 +54958,7 @@ class Registry {
54949
54958
  }
54950
54959
  static abaplintVersion() {
54951
54960
  // magic, see build script "version.sh"
54952
- return "2.118.8";
54961
+ return "2.118.9";
54953
54962
  }
54954
54963
  getDDICReferences() {
54955
54964
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.13.5",
3
+ "version": "2.13.7",
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.118.8",
31
- "@abaplint/transpiler": "^2.13.5",
30
+ "@abaplint/core": "^2.118.9",
31
+ "@abaplint/transpiler": "^2.13.7",
32
32
  "@types/glob": "^8.1.0",
33
33
  "@types/node": "^24.12.0",
34
34
  "@types/progress": "^2.0.7",