arkanalyzer 1.0.88 → 1.0.89

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 (86) hide show
  1. package/config/arkanalyzer.json +11 -0
  2. package/lib/Config.d.ts +23 -1
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Config.js +48 -0
  5. package/lib/Scene.d.ts +5 -2
  6. package/lib/Scene.d.ts.map +1 -1
  7. package/lib/Scene.js +30 -62
  8. package/lib/callgraph/pointerAnalysis/context/Context.d.ts.map +1 -1
  9. package/lib/callgraph/pointerAnalysis/context/Context.js +10 -12
  10. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +1 -1
  11. package/lib/core/base/Type.d.ts.map +1 -1
  12. package/lib/core/base/Type.js +1 -2
  13. package/lib/core/common/ModelUtils.d.ts +6 -0
  14. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  15. package/lib/core/common/ModelUtils.js +30 -0
  16. package/lib/core/common/SdkUtils.js +1 -1
  17. package/lib/core/common/TypeInference.d.ts +13 -0
  18. package/lib/core/common/TypeInference.d.ts.map +1 -1
  19. package/lib/core/common/TypeInference.js +44 -0
  20. package/lib/core/common/ValueUtil.d.ts +1 -1
  21. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  22. package/lib/core/common/ValueUtil.js +28 -12
  23. package/lib/core/graph/Cfg.d.ts.map +1 -1
  24. package/lib/core/graph/Cfg.js +0 -2
  25. package/lib/core/graph/DominanceFinder.d.ts +3 -0
  26. package/lib/core/graph/DominanceFinder.d.ts.map +1 -1
  27. package/lib/core/graph/DominanceFinder.js +42 -36
  28. package/lib/core/graph/DominanceTree.d.ts.map +1 -1
  29. package/lib/core/graph/DominanceTree.js +0 -4
  30. package/lib/core/inference/ValueInference.d.ts.map +1 -1
  31. package/lib/core/inference/ValueInference.js +3 -2
  32. package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
  33. package/lib/core/inference/abc/AbcInference.js +2 -1
  34. package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
  35. package/lib/core/inference/arkts/ArkTsInference.js +3 -2
  36. package/lib/core/model/ArkClass.d.ts.map +1 -1
  37. package/lib/core/model/ArkClass.js +19 -4
  38. package/lib/core/model/ArkFile.d.ts.map +1 -1
  39. package/lib/core/model/ArkFile.js +0 -1
  40. package/lib/core/model/ArkMetadata.d.ts.map +1 -1
  41. package/lib/core/model/ArkMetadata.js +0 -1
  42. package/lib/core/model/builder/ArkMetadataBuilder.js +1 -1
  43. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  44. package/lib/core/model/builder/ArkMethodBuilder.js +0 -2
  45. package/lib/frontend/FrontendBuilder.d.ts +26 -0
  46. package/lib/frontend/FrontendBuilder.d.ts.map +1 -0
  47. package/lib/frontend/FrontendBuilder.js +108 -0
  48. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +16 -0
  49. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -0
  50. package/lib/frontend/arktsFrontend/ArktsFrontend.js +52 -0
  51. package/lib/frontend/cppFrontend/CppFrontend.d.ts +13 -0
  52. package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -0
  53. package/lib/frontend/cppFrontend/CppFrontend.js +85 -0
  54. package/lib/frontend/cppFrontend/ast/index.d.ts +4 -4
  55. package/lib/frontend/cppFrontend/ast/index.d.ts.map +1 -1
  56. package/lib/frontend/cppFrontend/ast/index.js +4 -4
  57. package/lib/frontend/cppFrontend/ast/ts/ArkCxxAstNode.d.ts.map +1 -0
  58. package/lib/frontend/cppFrontend/ast/ts/astParser.d.ts.map +1 -0
  59. package/lib/frontend/cppFrontend/ast/{astParser.js → ts/astParser.js} +2 -2
  60. package/lib/frontend/cppFrontend/ast/ts/astUtils.d.ts.map +1 -0
  61. package/lib/frontend/cppFrontend/ast/ts/const.d.ts.map +1 -0
  62. package/lib/frontend/cppFrontend/ast/ts/napi/napiApi.d.ts.map +1 -0
  63. package/lib/frontend/cppFrontend/ast/{astJsonNapi → ts/napi}/napiApi.js +1 -1
  64. package/lib/frontend/cppFrontend/ast/ts/napi/napiRunner.d.ts.map +1 -0
  65. package/lib/frontend/cppFrontend/ast/{astJsonNapi → ts/napi}/napiRunner.js +2 -5
  66. package/lib/index.d.ts +4 -1
  67. package/lib/index.d.ts.map +1 -1
  68. package/lib/index.js +8 -1
  69. package/lib/pass/Dispatcher.d.ts.map +1 -1
  70. package/lib/pass/Dispatcher.js +0 -4
  71. package/package.json +7 -5
  72. package/lib/frontend/cppFrontend/ast/ArkCxxAstNode.d.ts.map +0 -1
  73. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiApi.d.ts.map +0 -1
  74. package/lib/frontend/cppFrontend/ast/astJsonNapi/napiRunner.d.ts.map +0 -1
  75. package/lib/frontend/cppFrontend/ast/astParser.d.ts.map +0 -1
  76. package/lib/frontend/cppFrontend/ast/astUtils.d.ts.map +0 -1
  77. package/lib/frontend/cppFrontend/ast/const.d.ts.map +0 -1
  78. /package/lib/frontend/cppFrontend/ast/{ArkCxxAstNode.d.ts → ts/ArkCxxAstNode.d.ts} +0 -0
  79. /package/lib/frontend/cppFrontend/ast/{ArkCxxAstNode.js → ts/ArkCxxAstNode.js} +0 -0
  80. /package/lib/frontend/cppFrontend/ast/{astParser.d.ts → ts/astParser.d.ts} +0 -0
  81. /package/lib/frontend/cppFrontend/ast/{astUtils.d.ts → ts/astUtils.d.ts} +0 -0
  82. /package/lib/frontend/cppFrontend/ast/{astUtils.js → ts/astUtils.js} +0 -0
  83. /package/lib/frontend/cppFrontend/ast/{const.d.ts → ts/const.d.ts} +0 -0
  84. /package/lib/frontend/cppFrontend/ast/{const.js → ts/const.js} +0 -0
  85. /package/lib/frontend/cppFrontend/ast/{astJsonNapi → ts/napi}/napiApi.d.ts +0 -0
  86. /package/lib/frontend/cppFrontend/ast/{astJsonNapi → ts/napi}/napiRunner.d.ts +0 -0
@@ -8,6 +8,7 @@ import { ArkField } from '../model/ArkField';
8
8
  import { Value } from '../base/Value';
9
9
  import { MethodSignature, MethodSubSignature } from '../model/ArkSignature';
10
10
  import { MethodParameter } from '../model/builder/ArkMethodBuilder';
11
+ import { Scene } from '../../Scene';
11
12
  export declare class TypeInference {
12
13
  static inferTypeInArkField(arkField: ArkField): void;
13
14
  /**
@@ -119,5 +120,17 @@ export declare class TypeInference {
119
120
  static isTypeCanBeOverride(type: Type): boolean;
120
121
  static union(type1: Type, type2: Type): Type;
121
122
  static isSameType(type1: Type, type2: Type): boolean;
123
+ /**
124
+ * Infers the refined type for a value based on its initializer.
125
+ * If the value has an enum type, returns the enum type directly.
126
+ * If the value's declared type is AnyType, returns the initializer type.
127
+ * If the initializer type is a subtype or the same type as the declared type, returns the initializer type.
128
+ * Otherwise, returns the declared type.
129
+ */
130
+ static inferRefinedValueType(value: Value, scene: Scene): Type;
131
+ /**
132
+ * Checks if the child type is a subtype of the parent type or the same type.
133
+ */
134
+ static isSubType(child: Type, parent: Type, scene: Scene): boolean;
122
135
  }
123
136
  //# sourceMappingURL=TypeInference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
@@ -1090,5 +1090,49 @@ class TypeInference {
1090
1090
  }
1091
1091
  return type1.constructor === type2.constructor;
1092
1092
  }
1093
+ /**
1094
+ * Infers the refined type for a value based on its initializer.
1095
+ * If the value has an enum type, returns the enum type directly.
1096
+ * If the value's declared type is AnyType, returns the initializer type.
1097
+ * If the initializer type is a subtype or the same type as the declared type, returns the initializer type.
1098
+ * Otherwise, returns the declared type.
1099
+ */
1100
+ static inferRefinedValueType(value, scene) {
1101
+ const rightType = ModelUtils_1.ModelUtils.findRefInitValue(value, scene).getType();
1102
+ if (rightType instanceof Type_1.EnumValueType) {
1103
+ return rightType;
1104
+ }
1105
+ let leftType = value.getType();
1106
+ if (rightType && this.checkType(leftType, t => t instanceof Type_1.AnyType)) {
1107
+ return rightType;
1108
+ }
1109
+ if (!rightType || this.isAnonType(rightType, scene.getProjectName())) {
1110
+ return leftType;
1111
+ }
1112
+ if (this.isSubType(rightType, leftType, scene)) {
1113
+ return rightType;
1114
+ }
1115
+ return leftType;
1116
+ }
1117
+ /**
1118
+ * Checks if the child type is a subtype of the parent type or the same type.
1119
+ */
1120
+ static isSubType(child, parent, scene) {
1121
+ const real = child instanceof Type_1.AliasType ? this.replaceAliasType(child) : child;
1122
+ const declare = parent instanceof Type_1.AliasType ? this.replaceAliasType(parent) : parent;
1123
+ if (!(declare instanceof Type_1.ClassType) || !(real instanceof Type_1.ClassType)) {
1124
+ return false;
1125
+ }
1126
+ const fatherClass = scene.getClass(declare.getClassSignature());
1127
+ let childClass = scene.getClass(real.getClassSignature());
1128
+ while (childClass) {
1129
+ if (childClass === fatherClass) {
1130
+ return true;
1131
+ }
1132
+ childClass = childClass === null || childClass === void 0 ? void 0 : childClass.getSuperClass();
1133
+ }
1134
+ const objectClass = scene.getSdkGlobal(Builtin_1.Builtin.OBJECT);
1135
+ return fatherClass === objectClass;
1136
+ }
1093
1137
  }
1094
1138
  exports.TypeInference = TypeInference;
@@ -1,11 +1,11 @@
1
1
  import { BigIntConstant, Constant, StringConstant } from '../base/Constant';
2
2
  export declare const EMPTY_STRING = "";
3
3
  export declare class ValueUtil {
4
- private static readonly NumberConstantCache;
5
4
  static readonly EMPTY_STRING_CONSTANT: StringConstant;
6
5
  static dispose(): void;
7
6
  static getOrCreateNumberConst(n: number | string): Constant;
8
7
  static createBigIntConst(bigInt: bigint): BigIntConstant;
8
+ private static getOrCreateStringConst;
9
9
  static createStringConst(str: string): Constant;
10
10
  static createConst(str: string): Constant;
11
11
  static getUndefinedConst(): Constant;
@@ -1 +1 @@
1
- {"version":3,"file":"ValueUtil.d.ts","sourceRoot":"","sources":["../../../src/core/common/ValueUtil.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAmB,QAAQ,EAAgC,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AAE9I,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IAC/E,gBAAuB,qBAAqB,iBAAoC;WAMlE,OAAO,IAAI,IAAI;WAQf,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ;WAepD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;WAIjD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAOxC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAQlC,iBAAiB,IAAI,QAAQ;WAI7B,eAAe,IAAI,QAAQ;WAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;CAG7D"}
1
+ {"version":3,"file":"ValueUtil.d.ts","sourceRoot":"","sources":["../../../src/core/common/ValueUtil.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAmB,QAAQ,EAAgC,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AAG9I,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,qBAAa,SAAS;IAClB,gBAAuB,qBAAqB,iBAAoC;WAOlE,OAAO,IAAI,IAAI;WAUf,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ;WAUpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAK/D,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAIvB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAUxC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAQlC,iBAAiB,IAAI,QAAQ;WAI7B,eAAe,IAAI,QAAQ;WAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;CAG7D"}
@@ -13,17 +13,27 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
17
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
21
+ };
16
22
  Object.defineProperty(exports, "__esModule", { value: true });
17
23
  exports.ValueUtil = exports.EMPTY_STRING = void 0;
18
24
  const Constant_1 = require("../base/Constant");
25
+ const LRUCacheDecorator_1 = require("../../utils/LRUCacheDecorator");
19
26
  exports.EMPTY_STRING = '';
27
+ const STRING_CACHE_MAX_LENGTH = 32;
20
28
  class ValueUtil {
21
29
  /*
22
- * Set static field to be null, then all related objects could be freed by GC.
23
- * Class SdkUtils is only internally used by ArkAnalyzer, the dispose method should be called by users themselves before drop Scene.
30
+ * Clear LRU caches for number and string constants.
31
+ * These caches are used during IR construction and should be cleared after
32
+ * inferTypes() is complete to allow GC to reclaim memory.
24
33
  */
25
34
  static dispose() {
26
- this.NumberConstantCache.clear();
35
+ (0, LRUCacheDecorator_1.clearLRUCache)(ValueUtil, 'getOrCreateNumberConst');
36
+ (0, LRUCacheDecorator_1.clearLRUCache)(ValueUtil, 'getOrCreateStringConst');
27
37
  }
28
38
  /*
29
39
  * Get the number constant instance according to its value, and create a new one if didn't find.
@@ -37,20 +47,21 @@ class ValueUtil {
37
47
  else {
38
48
  nStr = n;
39
49
  }
40
- let constant = this.NumberConstantCache.get(nStr);
41
- if (constant === undefined) {
42
- constant = new Constant_1.NumberConstant(nStr);
43
- this.NumberConstantCache.set(nStr, constant);
44
- }
45
- return constant;
50
+ return new Constant_1.NumberConstant(nStr);
46
51
  }
47
52
  static createBigIntConst(bigInt) {
48
53
  return new Constant_1.BigIntConstant(bigInt);
49
54
  }
55
+ static getOrCreateStringConst(str) {
56
+ return new Constant_1.StringConstant(str);
57
+ }
50
58
  static createStringConst(str) {
51
59
  if (str === exports.EMPTY_STRING) {
52
60
  return this.EMPTY_STRING_CONSTANT;
53
61
  }
62
+ if (str.length < STRING_CACHE_MAX_LENGTH) {
63
+ return this.getOrCreateStringConst(str);
64
+ }
54
65
  return new Constant_1.StringConstant(str);
55
66
  }
56
67
  static createConst(str) {
@@ -58,7 +69,7 @@ class ValueUtil {
58
69
  if (!isNaN(n)) {
59
70
  return this.getOrCreateNumberConst(str);
60
71
  }
61
- return new Constant_1.StringConstant(str);
72
+ return this.createStringConst(str);
62
73
  }
63
74
  static getUndefinedConst() {
64
75
  return Constant_1.UndefinedConstant.getInstance();
@@ -70,6 +81,11 @@ class ValueUtil {
70
81
  return Constant_1.BooleanConstant.getInstance(value);
71
82
  }
72
83
  }
73
- exports.ValueUtil = ValueUtil;
74
- ValueUtil.NumberConstantCache = new Map();
75
84
  ValueUtil.EMPTY_STRING_CONSTANT = new Constant_1.StringConstant(exports.EMPTY_STRING);
85
+ __decorate([
86
+ (0, LRUCacheDecorator_1.LRUCache)(128)
87
+ ], ValueUtil, "getOrCreateNumberConst", null);
88
+ __decorate([
89
+ (0, LRUCacheDecorator_1.LRUCache)(4096)
90
+ ], ValueUtil, "getOrCreateStringConst", null);
91
+ exports.ValueUtil = ValueUtil;
@@ -1 +1 @@
1
- {"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAI1D;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAA8B;;IAI9C,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;IAIvC,QAAQ,IAAI,IAAI,EAAE;IAQzB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/B;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAerE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAE,OAAc,GAAG,IAAI;IAYjF;;;OAGG;IACI,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;IAI5B,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAM1C,eAAe,IAAI,IAAI;IAIvB,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI;IAI5C,kBAAkB,IAAI,SAAS;IAI/B,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,WAAW,EAAE;IAKhC,QAAQ,IAAI,MAAM;IAKlB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAmBlF,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,oBAAoB;IAgDrB,gBAAgB,IAAI,IAAI;IAWxB,oBAAoB,IAAI,GAAG,CAAC,UAAU,CAAC;IAevC,QAAQ,IAAI,QAAQ;IA0B3B,OAAO,CAAC,YAAY;CAWvB"}
1
+ {"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAI1D;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAa;;IAI7B,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;IAIvC,QAAQ,IAAI,IAAI,EAAE;IAQzB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/B;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAerE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAE,OAAc,GAAG,IAAI;IAYjF;;;OAGG;IACI,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;IAI5B,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAM1C,eAAe,IAAI,IAAI;IAIvB,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI;IAI5C,kBAAkB,IAAI,SAAS;IAI/B,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,WAAW,EAAE;IAKhC,QAAQ,IAAI,MAAM;IAKlB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAmBlF,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,oBAAoB;IAgDrB,gBAAgB,IAAI,IAAI;IAWxB,oBAAoB,IAAI,GAAG,CAAC,UAAU,CAAC;IAevC,QAAQ,IAAI,QAAQ;IA0B3B,OAAO,CAAC,YAAY;CAWvB"}
@@ -42,7 +42,6 @@ const DefUseChain_1 = require("../base/DefUseChain");
42
42
  const Local_1 = require("../base/Local");
43
43
  const Stmt_1 = require("../base/Stmt");
44
44
  const ArkError_1 = require("../common/ArkError");
45
- const ArkMethod_1 = require("../model/ArkMethod");
46
45
  const logger_1 = __importStar(require("../../utils/logger"));
47
46
  const Expr_1 = require("../base/Expr");
48
47
  const ValueAsserts_1 = require("../../utils/ValueAsserts");
@@ -56,7 +55,6 @@ class Cfg {
56
55
  this.blocks = new Set();
57
56
  this.stmtToBlock = new Map();
58
57
  this.defUseChains = [];
59
- this.declaringMethod = new ArkMethod_1.ArkMethod();
60
58
  }
61
59
  getStmtToBlock() {
62
60
  return this.stmtToBlock;
@@ -6,6 +6,9 @@ export declare class DominanceFinder {
6
6
  private idoms;
7
7
  private domFrontiers;
8
8
  constructor(cfg: Cfg);
9
+ private buildBlockIndex;
10
+ private computeImmediateDominators;
11
+ private computeDominanceFrontiers;
9
12
  getDominanceFrontiers(block: BasicBlock): Set<BasicBlock>;
10
13
  getBlocks(): BasicBlock[];
11
14
  getBlockToIdx(): Map<BasicBlock, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"DominanceFinder.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceFinder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,GAAG,EAAE,GAAG;IA2Db,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAazD,SAAS,IAAI,UAAU,EAAE;IAIzB,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;IAIxC,sBAAsB,IAAI,MAAM,EAAE;IAIzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,SAAS;CAUpB"}
1
+ {"version":3,"file":"DominanceFinder.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceFinder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,YAAY,CAAa;gBAErB,GAAG,EAAE,GAAG;IAOpB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,0BAA0B;IAoClC,OAAO,CAAC,yBAAyB;IAuB1B,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAYzD,SAAS,IAAI,UAAU,EAAE;IAIzB,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;IAIxC,sBAAsB,IAAI,MAAM,EAAE;IAIzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,SAAS;CAUpB"}
@@ -17,22 +17,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.DominanceFinder = void 0;
18
18
  class DominanceFinder {
19
19
  constructor(cfg) {
20
- this.blocks = [];
21
- this.blockToIdx = new Map();
22
- this.idoms = [];
23
- this.domFrontiers = [];
24
20
  this.blocks = Array.from(cfg.getBlocks());
21
+ this.blockToIdx = this.buildBlockIndex();
22
+ this.idoms = this.computeImmediateDominators(cfg.getStartingBlock());
23
+ this.domFrontiers = this.computeDominanceFrontiers();
24
+ }
25
+ buildBlockIndex() {
26
+ const blockToIdx = new Map();
25
27
  for (let i = 0; i < this.blocks.length; i++) {
26
- let block = this.blocks[i];
27
- this.blockToIdx.set(block, i);
28
+ blockToIdx.set(this.blocks[i], i);
28
29
  }
29
- const startingBlock = cfg.getStartingBlock();
30
- // calculate immediate dominator for each block
31
- this.idoms = new Array(this.blocks.length);
32
- this.idoms[0] = 0;
33
- for (let i = 1; i < this.idoms.length; i++) {
34
- this.idoms[i] = -1;
30
+ return blockToIdx;
31
+ }
32
+ computeImmediateDominators(startingBlock) {
33
+ const idoms = new Array(this.blocks.length).fill(-1);
34
+ if (idoms.length === 0) {
35
+ return idoms;
35
36
  }
37
+ idoms[0] = 0;
36
38
  let isChanged = true;
37
39
  while (isChanged) {
38
40
  isChanged = false;
@@ -40,50 +42,54 @@ class DominanceFinder {
40
42
  if (block === startingBlock) {
41
43
  continue;
42
44
  }
43
- let blockIdx = this.blockToIdx.get(block);
44
- let preds = Array.from(block.getPredecessors());
45
- let newIdom = this.getFirstDefinedBlockPredIdx(preds);
45
+ const blockIdx = this.blockToIdx.get(block);
46
+ const preds = Array.from(block.getPredecessors());
47
+ let newIdom = this.getFirstDefinedBlockPredIdx(preds, idoms);
46
48
  if (preds.length <= 0 || newIdom === -1) {
47
49
  continue;
48
50
  }
49
51
  for (const pred of preds) {
50
- let predIdx = this.blockToIdx.get(pred);
51
- this.idoms[predIdx] !== -1 ? (newIdom = this.intersect(newIdom, predIdx)) : null;
52
+ const predIdx = this.blockToIdx.get(pred);
53
+ if (idoms[predIdx] !== -1) {
54
+ newIdom = this.intersect(newIdom, predIdx, idoms);
55
+ }
52
56
  }
53
- if (this.idoms[blockIdx] !== newIdom) {
54
- this.idoms[blockIdx] = newIdom;
57
+ if (idoms[blockIdx] !== newIdom) {
58
+ idoms[blockIdx] = newIdom;
55
59
  isChanged = true;
56
60
  }
57
61
  }
58
62
  }
59
- // calculate dominance frontiers for each block
60
- this.domFrontiers = new Array(this.blocks.length);
61
- for (let i = 0; i < this.domFrontiers.length; i++) {
62
- this.domFrontiers[i] = new Array();
63
+ return idoms;
64
+ }
65
+ computeDominanceFrontiers() {
66
+ const domFrontiers = new Array(this.blocks.length);
67
+ for (let i = 0; i < domFrontiers.length; i++) {
68
+ domFrontiers[i] = [];
63
69
  }
64
70
  for (const block of this.blocks) {
65
- let preds = Array.from(block.getPredecessors());
71
+ const preds = Array.from(block.getPredecessors());
66
72
  if (preds.length <= 1) {
67
73
  continue;
68
74
  }
69
- let blockIdx = this.blockToIdx.get(block);
75
+ const blockIdx = this.blockToIdx.get(block);
70
76
  for (const pred of preds) {
71
77
  let predIdx = this.blockToIdx.get(pred);
72
78
  while (predIdx !== this.idoms[blockIdx]) {
73
- this.domFrontiers[predIdx].push(blockIdx);
79
+ domFrontiers[predIdx].push(blockIdx);
74
80
  predIdx = this.idoms[predIdx];
75
81
  }
76
82
  }
77
83
  }
84
+ return domFrontiers;
78
85
  }
79
86
  getDominanceFrontiers(block) {
80
87
  if (!this.blockToIdx.has(block)) {
81
88
  throw new Error('The given block: ' + block + ' is not in Cfg!');
82
89
  }
83
- let idx = this.blockToIdx.get(block);
84
- let dfs = new Set();
85
- let dfsIdx = this.domFrontiers[idx];
86
- for (const dfIdx of dfsIdx) {
90
+ const idx = this.blockToIdx.get(block);
91
+ const dfs = new Set();
92
+ for (const dfIdx of this.domFrontiers[idx]) {
87
93
  dfs.add(this.blocks[dfIdx]);
88
94
  }
89
95
  return dfs;
@@ -97,22 +103,22 @@ class DominanceFinder {
97
103
  getImmediateDominators() {
98
104
  return this.idoms;
99
105
  }
100
- getFirstDefinedBlockPredIdx(preds) {
106
+ getFirstDefinedBlockPredIdx(preds, idoms) {
101
107
  for (const block of preds) {
102
- let idx = this.blockToIdx.get(block);
103
- if (this.idoms[idx] !== -1) {
108
+ const idx = this.blockToIdx.get(block);
109
+ if (idoms[idx] !== -1) {
104
110
  return idx;
105
111
  }
106
112
  }
107
113
  return -1;
108
114
  }
109
- intersect(a, b) {
115
+ intersect(a, b, idoms) {
110
116
  while (a !== b) {
111
117
  if (a > b) {
112
- a = this.idoms[a];
118
+ a = idoms[a];
113
119
  }
114
120
  else {
115
- b = this.idoms[b];
121
+ b = idoms[b];
116
122
  }
117
123
  }
118
124
  return a;
@@ -1 +1 @@
1
- {"version":3,"file":"DominanceTree.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceTree.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,eAAe,EAAE,eAAe;IAqBrC,cAAc,IAAI,UAAU,EAAE;IAiB9B,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAS5C,OAAO,IAAI,UAAU;CAG/B"}
1
+ {"version":3,"file":"DominanceTree.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceTree.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAW;gBAEd,eAAe,EAAE,eAAe;IAqBrC,cAAc,IAAI,UAAU,EAAE;IAiB9B,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAS5C,OAAO,IAAI,UAAU;CAG/B"}
@@ -17,10 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.DominanceTree = void 0;
18
18
  class DominanceTree {
19
19
  constructor(dominanceFinder) {
20
- this.blocks = [];
21
- this.blockToIdx = new Map();
22
- this.children = [];
23
- this.parents = [];
24
20
  this.blocks = dominanceFinder.getBlocks();
25
21
  this.blockToIdx = dominanceFinder.getBlockToIdx();
26
22
  let idoms = dominanceFinder.getImmediateDominators();
@@ -1 +1 @@
1
- {"version":3,"file":"ValueInference.d.ts","sourceRoot":"","sources":["../../../src/core/inference/ValueInference.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAWH,IAAI,EAKP,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EACH,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EAItB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAWtC,oBAAY,aAAa;IACrB,OAAO,KAAK;IACZ,MAAM,IAAI;IACV,SAAS,IAAI;IACb,SAAS,IAAI;IACb,WAAW,IAAI;IACf,GAAG,KAAK;IACR,GAAG,KAAK;CACX;AAED,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAsC,CAAC;AAE3F,wBAAgB,IAAI,CAAC,IAAI,GAAE,aAAoC,GAAG,QAAQ,CAMzE;AAED;;;GAGG;AACH,8BAAsB,cAAc,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,SAAS,EAAE,aAAa;IACrF;;;OAGG;aACa,YAAY,IAAI,MAAM;IAEtC;;;;;OAKG;aACa,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO;IAExD;;;;;OAKG;aACa,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IAE/D;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI;IAc3C;;;;;;OAMG;IACI,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI;CASlE;AAED;;;GAGG;AACH,qBACa,qBAAsB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC/D,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAKhD;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAItE;AAED;;;GAGG;AACH,qBACa,wBAAyB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAClE,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAKhD;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,SAAS;CAU1D;AAED,qBACa,iBAAkB,SAAQ,cAAc,CAAC,mBAAmB,CAAC;IAC/D,YAAY,IAAI,MAAM;IAI7B;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO;IAKjE;;;;;;;OAOG;IACI,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAS1E;AAED,qBACa,uBAAwB,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACnE,YAAY,IAAI,MAAM;IAI7B;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO;IAK/D;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAWxE;AAED,qBACa,2BAA4B,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IAE3E,YAAY,IAAI,MAAM;IAI7B;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO;IAK9E;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IAMzE;;;;;;OAMG;IACI,SAAS,CAAC,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAW1E,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;WAI9D,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB,GAAG,IAAI;CAiC3H;AAED,qBACa,yBAA0B,SAAQ,2BAA2B;IAE/D,YAAY,IAAI,MAAM;IAItB,KAAK,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IA6BtE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;CAOtF;AAED,qBACa,yBAA0B,SAAQ,yBAAyB;IAC7D,YAAY,IAAI,MAAM;IAItB,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CA2BtE;AAID,qBACa,mBAAoB,SAAQ,cAAc,CAAC,UAAU,CAAC;IACxD,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIpC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAqBjE;AAED,qBACa,wBAAyB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAClE,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAIzC,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAOtE;AAGD,qBACa,2BAA4B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACxE,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO;IAI5C,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,GAAG,SAAS;CAI7D;AAED,qBACa,yBAA0B,SAAQ,2BAA2B;IAC/D,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAI1C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,GAAG,SAAS;IAgCxD,OAAO,CAAC,+BAA+B;IAevC,OAAO,CAAC,6BAA6B;CAkBxC;AAID,qBACa,0BAA2B,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACtE,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAI3C,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAOxE;AAED,qBACa,oBAAqB,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC1D,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAIrC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAWlE;AAGD,qBACa,cAAe,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC9C,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAI/B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAmB5D"}
1
+ {"version":3,"file":"ValueInference.d.ts","sourceRoot":"","sources":["../../../src/core/inference/ValueInference.ts"],"names":[],"mappings":"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"}
@@ -225,8 +225,8 @@ let FieldRefInference = class FieldRefInference extends ValueInference {
225
225
  * or undefined for regular instance fields
226
226
  */
227
227
  infer(value, stmt) {
228
- const baseType = value.getBase().getType();
229
228
  const arkMethod = stmt.getCfg().getDeclaringMethod();
229
+ const baseType = TypeInference_1.TypeInference.inferRefinedValueType(value.getBase(), arkMethod.getDeclaringArkFile().getScene());
230
230
  // Generate updated field signature based on current context
231
231
  const result = IRInference_1.IRInference.inferInstanceMember(baseType, value, arkMethod, IRInference_1.IRInference.updateRefSignature);
232
232
  return !result || result === value ? undefined : result;
@@ -298,7 +298,8 @@ let InstanceInvokeExprInference = InstanceInvokeExprInference_1 = class Instance
298
298
  */
299
299
  infer(value, stmt) {
300
300
  const arkMethod = stmt.getCfg().getDeclaringMethod();
301
- const result = IRInference_1.IRInference.inferInstanceMember(value.getBase().getType(), value, arkMethod, InstanceInvokeExprInference_1.inferInvokeExpr);
301
+ const baseType = TypeInference_1.TypeInference.inferRefinedValueType(value.getBase(), arkMethod.getDeclaringArkFile().getScene());
302
+ const result = IRInference_1.IRInference.inferInstanceMember(baseType, value, arkMethod, InstanceInvokeExprInference_1.inferInvokeExpr);
302
303
  return !result || result === value ? undefined : result;
303
304
  }
304
305
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AbcInference.d.ts","sourceRoot":"","sources":["../../../../src/core/inference/abc/AbcInference.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAQ,iBAAiB,EAAiB,2BAA2B,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAEH,qBAAqB,EACrB,mBAAmB,EAGtB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAsB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA+B5E,qBAAa,kBAAmB,SAAQ,eAAe;IAE5C,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAQ3C,OAAO,CAAC,kCAAkC;CA8B7C;AA6ED,qBAAa,mBAAoB,SAAQ,gBAAgB;IAE9C,wBAAwB,IAAI,mBAAmB;IAI/C,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAK7C;AAED,qBACa,oBAAqB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAgBzD,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAmB1E;AAED,qBACa,8BAA+B,SAAQ,2BAA2B;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAa;IAE5C;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IAQzE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAc5B;AAED,qBACa,wBAAyB,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IAC/E,OAAO,CAAC,MAAM,CAAC,UAAU,CAA0B;IAE5C,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAI3D,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAa5E"}
1
+ {"version":3,"file":"AbcInference.d.ts","sourceRoot":"","sources":["../../../../src/core/inference/abc/AbcInference.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAQ,iBAAiB,EAAiB,2BAA2B,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAEH,qBAAqB,EACrB,mBAAmB,EAGtB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAsB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA+B5E,qBAAa,kBAAmB,SAAQ,eAAe;IAE5C,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAQ3C,OAAO,CAAC,kCAAkC;CA8B7C;AA6ED,qBAAa,mBAAoB,SAAQ,gBAAgB;IAE9C,wBAAwB,IAAI,mBAAmB;IAI/C,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAK7C;AAED,qBACa,oBAAqB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAgBzD,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAmB1E;AAED,qBACa,8BAA+B,SAAQ,2BAA2B;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAa;IAE5C;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IASzE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAc5B;AAED,qBACa,wBAAyB,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IAC/E,OAAO,CAAC,MAAM,CAAC,UAAU,CAA0B;IAE5C,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAI3D,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAa5E"}
@@ -247,7 +247,8 @@ let AbcInstanceInvokeExprInference = AbcInstanceInvokeExprInference_1 = class Ab
247
247
  infer(value, stmt) {
248
248
  var _a;
249
249
  const arkMethod = stmt.getCfg().getDeclaringMethod();
250
- const result = (_a = IRInference_1.IRInference.inferInstanceMember(value.getBase().getType(), value, arkMethod, ValueInference_1.InstanceInvokeExprInference.inferInvokeExpr)) !== null && _a !== void 0 ? _a : this.processExtendFunc(value, arkMethod);
250
+ const baseType = TypeInference_1.TypeInference.inferRefinedValueType(value.getBase(), arkMethod.getDeclaringArkFile().getScene());
251
+ const result = (_a = IRInference_1.IRInference.inferInstanceMember(baseType, value, arkMethod, ValueInference_1.InstanceInvokeExprInference.inferInvokeExpr)) !== null && _a !== void 0 ? _a : this.processExtendFunc(value, arkMethod);
251
252
  return !result || result === value ? undefined : result;
252
253
  }
253
254
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ArkTsInference.d.ts","sourceRoot":"","sources":["../../../../src/core/inference/arkts/ArkTsInference.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKxG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAEH,iBAAiB,EAEjB,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA0B,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAiD,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAoB,mBAAmB,EAA8B,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,EAAsB,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA+C3F,qBAAa,kBAAmB,SAAQ,aAAa;gBAErC,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE;IAI7C,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAUpD,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS;WAclF,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS;WAiBpF,eAAe,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,SAAS;CActF;AAGD,qBAAa,qBAAsB,SAAQ,gBAAgB;IAEhD,wBAAwB,IAAI,mBAAmB;IAI/C,mBAAmB,IAAI,cAAc;IAIrC,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAK7C;AAED,qBAAa,sBAAuB,SAAQ,qBAAqB;CAEhE;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAE7C,wBAAwB,IAAI,mBAAmB;IAI/C,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAI7C;AAGD,qBACa,sBAAuB,SAAQ,iBAAiB;IAClD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAOhE;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAO7B;AAGD,qBACa,gCAAiC,SAAQ,2BAA2B;IAC7E;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IASzE;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAS5B;AAGD,qBACa,sBAAuB,SAAQ,cAAc,CAAC,aAAa,CAAC;IAC9D,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIvC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAwCpE;AAGD,qBACa,mBAAoB,SAAQ,cAAc;IAC5C,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAW/B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IA0BzD,OAAO,CAAC,YAAY;CASvB"}
1
+ {"version":3,"file":"ArkTsInference.d.ts","sourceRoot":"","sources":["../../../../src/core/inference/arkts/ArkTsInference.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKxG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAEH,iBAAiB,EAEjB,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA0B,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAiD,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAoB,mBAAmB,EAA8B,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,EAAsB,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA+C3F,qBAAa,kBAAmB,SAAQ,aAAa;gBAErC,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE;IAI7C,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAUpD,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS;WAclF,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS;WAiBpF,eAAe,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,SAAS;CActF;AAGD,qBAAa,qBAAsB,SAAQ,gBAAgB;IAEhD,wBAAwB,IAAI,mBAAmB;IAI/C,mBAAmB,IAAI,cAAc;IAIrC,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAK7C;AAED,qBAAa,sBAAuB,SAAQ,qBAAqB;CAEhE;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAE7C,wBAAwB,IAAI,mBAAmB;IAI/C,oBAAoB,IAAI,eAAe;IAIvC,kBAAkB,IAAI,aAAa;CAI7C;AAGD,qBACa,sBAAuB,SAAQ,iBAAiB;IAClD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAOhE;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAO7B;AAGD,qBACa,gCAAiC,SAAQ,2BAA2B;IAC7E;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IAUzE;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAS5B;AAGD,qBACa,sBAAuB,SAAQ,cAAc,CAAC,aAAa,CAAC;IAC9D,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIvC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;CAwCpE;AAGD,qBACa,mBAAoB,SAAQ,cAAc;IAC5C,YAAY,IAAI,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAW/B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS;IA0BzD,OAAO,CAAC,YAAY;CASvB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2026 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2026 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -208,7 +208,8 @@ let ArkTsInstanceInvokeExprInference = class ArkTsInstanceInvokeExprInference ex
208
208
  var _a;
209
209
  const arkMethod = stmt.getCfg().getDeclaringMethod();
210
210
  TypeInference_1.TypeInference.inferRealGenericTypes(value.getRealGenericTypes(), arkMethod.getDeclaringArkClass());
211
- const result = (_a = IRInference_1.IRInference.inferInstanceMember(value.getBase().getType(), value, arkMethod, ValueInference_1.InstanceInvokeExprInference.inferInvokeExpr)) !== null && _a !== void 0 ? _a : this.processExtendFunc(value, arkMethod, super.getMethodName(value, arkMethod));
211
+ const baseType = TypeInference_1.TypeInference.inferRefinedValueType(value.getBase(), arkMethod.getDeclaringArkFile().getScene());
212
+ const result = (_a = IRInference_1.IRInference.inferInstanceMember(baseType, value, arkMethod, ValueInference_1.InstanceInvokeExprInference.inferInvokeExpr)) !== null && _a !== void 0 ? _a : this.processExtendFunc(value, arkMethod, super.getMethodName(value, arkMethod));
212
213
  return !result || result === value ? undefined : result;
213
214
  }
214
215
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAM9C,oBAAY,aAAa;IACrB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,SAAS,IAAI;IACb,IAAI,IAAI;IACR,YAAY,IAAI;IAChB,MAAM,IAAI;IAEV,KAAK,IAAI;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAa,YAAW,SAAS;IAC3D,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAkB;IACxC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAwG;IAE/H,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;IAG/C,OAAO,CAAC,OAAO,CAA4D;IAC3E,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,aAAa,CAA4D;IACjF,OAAO,CAAC,YAAY,CAAsD;IAE1E,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,oBAAoB,CAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAG5B,OAAO,CAAC,aAAa,CAA4D;IAEjF,OAAO,CAAC,qBAAqB,CAAC,CAAiB;;IAM/C;;OAEG;IACI,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACI,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACI,SAAS,IAAI,MAAM;IAInB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD;;;;;;;;;OASG;IACI,mBAAmB,IAAI,OAAO;IAI9B,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAI3D;;;OAGG;IACI,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,wBAAwB,CAAC,qBAAqB,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/E,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,OAAO;IAI3B,cAAc,IAAI,OAAO;IAKhC;;;;OAIG;IACI,YAAY,IAAI,cAAc;IAI9B,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI5C,iBAAiB,IAAI,MAAM;IAI3B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7C,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAK9F;;;;;OAKG;IACI,aAAa,IAAI,QAAQ,GAAG,IAAI;IAahC,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IA8B5D,qBAAqB,IAAI,QAAQ,EAAE;IAiBnC,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAI3C,gBAAgB,CAAC,aAAa,EAAE,QAAQ,GAAG,IAAI;IAI/C,4BAA4B,IAAI,MAAM,EAAE;IAOxC,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIvD,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAQtE;;;;;OAKG;IACI,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI;IASzD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIpD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIjE;;;OAGG;IACI,SAAS,IAAI,QAAQ,EAAE;IAMvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ/B,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;IAMnC,YAAY,IAAI,IAAI,EAAE,GAAG,SAAS;IAIlC,gBAAgB,IAAI,WAAW,EAAE,GAAG,SAAS;IAI7C,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAO/C;;;;;;;;;;;;;;;OAeG;IACI,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE;IAO5C,SAAS,CAAC,eAAe,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI;IAepE;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAgBnB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAYvD,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAYpE;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAY9D;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;;;OAKG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAI1D;;;;;OAKG;IACI,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAIhE;;;;;OAKG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAKtD,mBAAmB,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI;IAKnD,mBAAmB,IAAI,SAAS,GAAG,IAAI;IAIvC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5C;;;;;;;;;;;;;;;OAeG;IACI,WAAW,IAAI,QAAQ,GAAG,SAAS;IAI1C;;;;;;;;;;;;;;;;OAgBG;IACI,WAAW,IAAI,OAAO;IAItB,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE;IAI1F,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE;IAOvF,wBAAwB,IAAI,MAAM;IAIlC,uBAAuB,IAAI,MAAM;IAIxC,aAAa,IAAI,UAAU;IAIpB,qBAAqB,IAAI,SAAS;IAIlC,mBAAmB,IAAI,SAAS;IAIhC,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIjD,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI/C,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAOrC,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAWxC,QAAQ,IAAI,QAAQ;IAIpB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAIrE,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAI5C,mBAAmB,IAAI,cAAc,GAAG,SAAS;IAIjD,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAG7D"}
1
+ {"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"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"}
@@ -348,10 +348,25 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
348
348
  ```
349
349
  */
350
350
  getMethods(generated) {
351
- const flattenReducer = (acc, val) => acc.concat(val);
352
- const allMethods = Array.from(this.methods.values()).reduce(flattenReducer, []).filter(f => (!generated && !f.isGenerated()) || generated);
353
- allMethods.push(...[...this.staticMethods.values()].reduce(flattenReducer, []));
354
- return [...new Set(allMethods)];
351
+ const seen = new WeakSet();
352
+ const result = [];
353
+ const addIfNeeded = (m) => {
354
+ if (!seen.has(m) && (generated || !m.isGenerated())) {
355
+ seen.add(m);
356
+ result.push(m);
357
+ }
358
+ };
359
+ for (const methods of this.methods.values()) {
360
+ for (const m of methods) {
361
+ addIfNeeded(m);
362
+ }
363
+ }
364
+ for (const methods of this.staticMethods.values()) {
365
+ for (const m of methods) {
366
+ addIfNeeded(m);
367
+ }
368
+ }
369
+ return result;
355
370
  }
356
371
  getMethod(methodSignature) {
357
372
  const methodName = methodSignature.getMethodSubSignature().getMethodName();
@@ -1 +1 @@
1
- {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,6 @@ class ArkFile {
62
62
  this.importInfoMap = new Map();
63
63
  this.exportInfoMap = new Map();
64
64
  this.fileSignature = ArkSignature_1.FileSignature.DEFAULT;
65
- this.ohPackageJson5Path = [];
66
65
  this.anonymousClassNumber = 0;
67
66
  this.anonymousNamespaceNumber = 0;
68
67
  this.ast = null;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMetadata.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,oBAAY,eAAe;IACvB,gBAAgB,IAAA;IAChB,iBAAiB,IAAA;IACjB,KAAK,IAAA;IACL,mBAAmB,IAAA;CACtB;AAED,MAAM,WAAW,eAAe;CAAI;AAEpC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAI/D,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAM1E;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,qBAAa,gBAAiB,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,QAAQ,EAAE,WAAW,EAAE;IAI5B,WAAW,IAAI,WAAW,EAAE;CAGtC;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,aAAc,YAAW,eAAe;IACjD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAmB;gBAG7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,GAAE,YAAY,EAAO,EACzB,OAAO,GAAE,eAAe,EAAO,EAC/B,MAAM,GAAE,cAAc,EAAO;IAS1B,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,cAAc,EAAE;IAI7B,OAAO,IAAI,YAAY,EAAE;IAIzB,UAAU,IAAI,eAAe,EAAE;IAI/B,SAAS,IAAI,cAAc,EAAE;CAGvC;AAED,qBAAa,wBAAyB,YAAW,eAAe;IAC5D,OAAO,CAAC,cAAc,CAAU;gBAEpB,cAAc,EAAE,OAAO;IAI5B,aAAa,IAAI,OAAO;CAGlC"}
1
+ {"version":3,"file":"ArkMetadata.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,oBAAY,eAAe;IACvB,gBAAgB,IAAA;IAChB,iBAAiB,IAAA;IACjB,KAAK,IAAA;IACL,mBAAmB,IAAA;CACtB;AAED,MAAM,WAAW,eAAe;CAAI;AAEpC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAI/D,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAM1E;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,qBAAa,gBAAiB,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,QAAQ,EAAE,WAAW,EAAE;IAI5B,WAAW,IAAI,WAAW,EAAE;CAGtC;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,aAAc,YAAW,eAAe;IACjD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAmB;gBAG7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,GAAE,YAAY,EAAO,EACzB,OAAO,GAAE,eAAe,EAAO,EAC/B,MAAM,GAAE,cAAc,EAAO;IAS1B,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,cAAc,EAAE;IAI7B,OAAO,IAAI,YAAY,EAAE;IAIzB,UAAU,IAAI,eAAe,EAAE;IAI/B,SAAS,IAAI,cAAc,EAAE;CAGvC;AAED,qBAAa,wBAAyB,YAAW,eAAe;IAC5D,OAAO,CAAC,cAAc,CAAU;gBAEpB,cAAc,EAAE,OAAO;IAI5B,aAAa,IAAI,OAAO;CAGlC"}
@@ -47,7 +47,6 @@ class ArkMetadata {
47
47
  exports.ArkMetadata = ArkMetadata;
48
48
  class CommentsMetadata {
49
49
  constructor(comments) {
50
- this.comments = [];
51
50
  this.comments = comments;
52
51
  }
53
52
  getComments() {
@@ -75,7 +75,7 @@ class ArkMetadataBuilder {
75
75
  static parseJSDocContent(content) {
76
76
  const normalizedLines = content
77
77
  .split('\n')
78
- .map(line => line.replace(/^\s*\/\*\*?/, '').replace(/\*\/\s*$/, '').replace(/^\s*\*\s?/, '').trim());
78
+ .map(line => line.replace(/^\s*\/\*\*?|\*\/\s*$|^\s*\*\s?(?!\/)/g, '').trim());
79
79
  const descriptionLines = [];
80
80
  const params = [];
81
81
  const tags = [];