arkanalyzer 1.0.27 → 1.0.29

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 (49) hide show
  1. package/config/arkanalyzer.json +1 -0
  2. package/lib/Config.d.ts.map +1 -1
  3. package/lib/Config.js +9 -1
  4. package/lib/VFG/DVFG.d.ts +43 -0
  5. package/lib/VFG/DVFG.d.ts.map +1 -0
  6. package/lib/VFG/DVFG.js +109 -0
  7. package/lib/VFG/builder/DVFGBuilder.d.ts +17 -0
  8. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -0
  9. package/lib/VFG/builder/DVFGBuilder.js +111 -0
  10. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  11. package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -0
  12. package/lib/callgraph/model/CallGraph.d.ts +5 -1
  13. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  14. package/lib/callgraph/model/CallGraph.js +35 -2
  15. package/lib/callgraph/pointerAnalysis/Pag.js +3 -3
  16. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +11 -3
  17. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  18. package/lib/callgraph/pointerAnalysis/PagBuilder.js +151 -62
  19. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -0
  20. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  21. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +33 -7
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +7 -2
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  24. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +10 -4
  25. package/lib/core/base/Expr.d.ts.map +1 -1
  26. package/lib/core/base/Expr.js +6 -4
  27. package/lib/core/base/Ref.d.ts +0 -1
  28. package/lib/core/base/Ref.d.ts.map +1 -1
  29. package/lib/core/base/Ref.js +0 -11
  30. package/lib/core/base/Type.d.ts.map +1 -1
  31. package/lib/core/common/IRInference.d.ts +3 -0
  32. package/lib/core/common/IRInference.d.ts.map +1 -1
  33. package/lib/core/common/IRInference.js +62 -23
  34. package/lib/core/common/SdkUtils.js +1 -1
  35. package/lib/core/common/TypeInference.d.ts +5 -3
  36. package/lib/core/common/TypeInference.d.ts.map +1 -1
  37. package/lib/core/common/TypeInference.js +93 -60
  38. package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
  39. package/lib/core/dataflow/ReachingDef.js +1 -0
  40. package/lib/core/graph/BaseImplicitGraph.d.ts +1 -0
  41. package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
  42. package/lib/core/graph/BaseImplicitGraph.js +6 -0
  43. package/lib/index.d.ts +2 -0
  44. package/lib/index.d.ts.map +1 -1
  45. package/lib/index.js +6 -2
  46. package/lib/utils/pathTransfer.d.ts +1 -0
  47. package/lib/utils/pathTransfer.d.ts.map +1 -1
  48. package/lib/utils/pathTransfer.js +10 -1
  49. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export declare class IRInference {
23
23
  */
24
24
  private static processExtendFunc;
25
25
  static inferFieldRef(ref: ArkInstanceFieldRef, arkMethod: ArkMethod): AbstractRef;
26
+ private static inferBase;
27
+ static inferThisLocal(arkMethod: ArkMethod): Local | null;
26
28
  private static inferArgs;
27
29
  private static inferArg;
28
30
  static inferRightWithSdkType(leftType: Type, rightType: Type, ackClass: ArkClass): void;
@@ -37,6 +39,7 @@ export declare class IRInference {
37
39
  static inferLocal(base: Local, arkMethod: ArkMethod): void;
38
40
  private static generateNewFieldSignature;
39
41
  static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set<string>): void;
42
+ private static assignAnonMethod;
40
43
  private static assignAnonField;
41
44
  static inferAliasTypeExpr(expr: AliasTypeExpr, arkMethod: ArkMethod): AbstractExpr;
42
45
  static inferTypeQueryExpr(expr: TypeQueryExpr, arkMethod: ArkMethod): void;
@@ -1 +1 @@
1
- {"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRInference.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAKH,SAAS,EAKT,IAAI,EAKP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EAErB,mBAAmB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAGH,cAAc,EAEd,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EACnB,eAAe,EAElB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKlF,qBAAa,WAAW;IAEpB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAMjB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAwB9B,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAqCxG,OAAO,CAAC,MAAM,CAAC,iCAAiC;WAuClC,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IA8B5G;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAgBlB,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;IAiBxF,OAAO,CAAC,MAAM,CAAC,SAAS;IAoBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;WA4BT,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAehF,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI;IAiBxF,OAAO,CAAC,MAAM,CAAC,eAAe;IAoC9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAiBvC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAiB1C,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAqD/C,OAAO,CAAC,MAAM,CAAC,YAAY;WAYb,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,eAAe;IAcvG,OAAO,CAAC,MAAM,CAAC,cAAc;WAsBf,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA2BjE,OAAO,CAAC,MAAM,CAAC,yBAAyB;WA4C1B,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,IAAI;IA+B/H,OAAO,CAAC,MAAM,CAAC,eAAe;WAiChB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY;WAiC3E,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WA2CnE,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WAcnE,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;CAmB3F"}
1
+ {"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRInference.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAKH,SAAS,EAKT,IAAI,EAKP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EAErB,mBAAmB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAGH,cAAc,EAEd,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EACnB,eAAe,EAElB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKlF,qBAAa,WAAW;IAEpB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAMjB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAwB9B,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAsCxG,OAAO,CAAC,MAAM,CAAC,iCAAiC;WAuClC,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IA8B5G;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAgBlB,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;IAiBxF,OAAO,CAAC,MAAM,CAAC,SAAS;WAYV,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI;IAyBhE,OAAO,CAAC,MAAM,CAAC,SAAS;IAmBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;WA4BT,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAehF,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI;IAiBxF,OAAO,CAAC,MAAM,CAAC,eAAe;IAoC9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAiBvC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAiB1C,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAqD/C,OAAO,CAAC,MAAM,CAAC,YAAY;WAYb,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,eAAe;IAcvG,OAAO,CAAC,MAAM,CAAC,cAAc;WAsBf,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgBjE,OAAO,CAAC,MAAM,CAAC,yBAAyB;WAiD1B,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,IAAI;IAkC/H,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B,OAAO,CAAC,MAAM,CAAC,eAAe;WAiChB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY;WAiC3E,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WA2CnE,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WAcnE,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;CAmB3F"}
@@ -114,6 +114,7 @@ class IRInference {
114
114
  }
115
115
  return expr;
116
116
  }
117
+ expr.getArgs().forEach(arg => TypeInference_1.TypeInference.inferValueType(arg, arkMethod));
117
118
  if (methodName === TSConst_1.SUPER_NAME) {
118
119
  const superClass = arkClass.getSuperClass();
119
120
  if (superClass !== null) {
@@ -180,7 +181,7 @@ class IRInference {
180
181
  var _a, _b, _c;
181
182
  const arkClass = arkMethod.getDeclaringArkClass();
182
183
  TypeInference_1.TypeInference.inferRealGenericTypes(expr.getRealGenericTypes(), arkClass);
183
- this.inferLocal(expr.getBase(), arkMethod);
184
+ this.inferBase(expr, arkMethod);
184
185
  const baseType = TypeInference_1.TypeInference.replaceAliasType(expr.getBase().getType());
185
186
  let methodName = expr.getMethodSignature().getMethodSubSignature().getMethodName();
186
187
  if (methodName.startsWith(Const_1.NAME_PREFIX)) {
@@ -195,6 +196,7 @@ class IRInference {
195
196
  this.processForEach(expr.getArg(0), baseType, scene);
196
197
  return expr;
197
198
  }
199
+ expr.getArgs().forEach(arg => TypeInference_1.TypeInference.inferValueType(arg, arkMethod));
198
200
  let result = (_c = this.inferInvokeExpr(expr, baseType, methodName, scene)) !== null && _c !== void 0 ? _c : this.processExtendFunc(expr, arkMethod, methodName);
199
201
  if (result) {
200
202
  this.inferArgs(result, arkMethod);
@@ -226,13 +228,12 @@ class IRInference {
226
228
  return null;
227
229
  }
228
230
  static inferFieldRef(ref, arkMethod) {
229
- this.inferLocal(ref.getBase(), arkMethod);
231
+ this.inferBase(ref, arkMethod);
230
232
  const baseType = TypeInference_1.TypeInference.replaceAliasType(ref.getBase().getType());
231
233
  if (baseType instanceof Type_1.ArrayType && ref.getFieldName() !== 'length') {
232
234
  return new Ref_1.ArkArrayRef(ref.getBase(), ValueUtil_1.ValueUtil.createConst(ref.getFieldName()));
233
235
  }
234
- const arkClass = arkMethod.getDeclaringArkClass();
235
- let newFieldSignature = this.generateNewFieldSignature(ref, arkClass, baseType);
236
+ let newFieldSignature = this.generateNewFieldSignature(ref, arkMethod.getDeclaringArkClass(), baseType);
236
237
  if (newFieldSignature) {
237
238
  if (newFieldSignature.isStatic()) {
238
239
  return new Ref_1.ArkStaticFieldRef(newFieldSignature);
@@ -241,6 +242,43 @@ class IRInference {
241
242
  }
242
243
  return ref;
243
244
  }
245
+ static inferBase(instance, arkMethod) {
246
+ const base = instance.getBase();
247
+ if (base.getName() === TSConst_1.THIS_NAME) {
248
+ let newBase = this.inferThisLocal(arkMethod);
249
+ if (newBase) {
250
+ instance.setBase(newBase);
251
+ }
252
+ }
253
+ else {
254
+ this.inferLocal(instance.getBase(), arkMethod);
255
+ }
256
+ }
257
+ static inferThisLocal(arkMethod) {
258
+ var _a, _b, _c, _d;
259
+ const arkClass = arkMethod.getDeclaringArkClass();
260
+ if (!arkClass.isAnonymousClass()) {
261
+ return null;
262
+ }
263
+ const value = (_b = (_a = arkMethod.getBody()) === null || _a === void 0 ? void 0 : _a.getUsedGlobals()) === null || _b === void 0 ? void 0 : _b.get(TSConst_1.THIS_NAME);
264
+ if (value instanceof Local_1.Local) {
265
+ return value;
266
+ }
267
+ else {
268
+ const thisType = TypeInference_1.TypeInference.inferBaseType(arkClass.getSignature().getDeclaringClassName(), arkClass);
269
+ if (thisType instanceof Type_1.ClassType) {
270
+ const newBase = new Local_1.Local(TSConst_1.THIS_NAME, thisType);
271
+ let usedGlobals = (_c = arkMethod.getBody()) === null || _c === void 0 ? void 0 : _c.getUsedGlobals();
272
+ if (!usedGlobals) {
273
+ usedGlobals = new Map();
274
+ (_d = arkMethod.getBody()) === null || _d === void 0 ? void 0 : _d.setUsedGlobals(usedGlobals);
275
+ }
276
+ usedGlobals.set(TSConst_1.THIS_NAME, newBase);
277
+ return newBase;
278
+ }
279
+ }
280
+ return null;
281
+ }
244
282
  static inferArgs(expr, arkMethod) {
245
283
  const scene = arkMethod.getDeclaringArkFile().getScene();
246
284
  const parameters = expr.getMethodSignature().getMethodSubSignature().getParameters();
@@ -248,7 +286,6 @@ class IRInference {
248
286
  const len = expr.getArgs().length;
249
287
  for (let index = 0; index < len; index++) {
250
288
  const arg = expr.getArg(index);
251
- TypeInference_1.TypeInference.inferValueType(arg, arkMethod);
252
289
  if (index >= parameters.length) {
253
290
  break;
254
291
  }
@@ -503,18 +540,6 @@ class IRInference {
503
540
  static inferLocal(base, arkMethod) {
504
541
  var _a, _b, _c;
505
542
  const arkClass = arkMethod.getDeclaringArkClass();
506
- if (base.getName() === TSConst_1.THIS_NAME) {
507
- if (arkClass.isAnonymousClass()) {
508
- const thisType = TypeInference_1.TypeInference.inferBaseType(arkClass.getSignature().getDeclaringClassName(), arkClass);
509
- if (thisType instanceof Type_1.ClassType) {
510
- base.setType(thisType);
511
- }
512
- }
513
- else {
514
- base.setType(new Type_1.ClassType(arkClass.getSignature(), arkClass.getGenericsTypes()));
515
- }
516
- return;
517
- }
518
543
  let baseType = base.getType();
519
544
  if (baseType instanceof Type_1.UnclearReferenceType) {
520
545
  baseType = TypeInference_1.TypeInference.inferUnclearRefName(baseType.getName(), arkClass);
@@ -548,7 +573,13 @@ class IRInference {
548
573
  const fieldName = ref.getFieldName().replace(/[\"|\']/g, '');
549
574
  const propertyAndType = TypeInference_1.TypeInference.inferFieldType(baseType, fieldName, arkClass);
550
575
  let propertyType = propertyAndType === null || propertyAndType === void 0 ? void 0 : propertyAndType[1];
551
- if (propertyType && TypeInference_1.TypeInference.isUnclearType(propertyType)) {
576
+ if (!propertyType) {
577
+ const newType = TypeInference_1.TypeInference.inferUnclearRefName(fieldName, arkClass);
578
+ if (newType) {
579
+ propertyType = newType;
580
+ }
581
+ }
582
+ else if (TypeInference_1.TypeInference.isUnclearType(propertyType)) {
552
583
  const newType = TypeInference_1.TypeInference.inferUnclearedType(propertyType, arkClass);
553
584
  if (newType) {
554
585
  propertyType = newType;
@@ -575,7 +606,6 @@ class IRInference {
575
606
  return new ArkSignature_1.FieldSignature(fieldName, signature, propertyType !== null && propertyType !== void 0 ? propertyType : ref.getType(), staticFlag);
576
607
  }
577
608
  static inferAnonymousClass(anon, declaredSignature, set = new Set()) {
578
- var _a;
579
609
  if (!anon) {
580
610
  return;
581
611
  }
@@ -596,12 +626,21 @@ class IRInference {
596
626
  if (property instanceof ArkField_1.ArkField) {
597
627
  this.assignAnonField(property, anonField, scene, set);
598
628
  }
629
+ else if (property instanceof ArkMethod_1.ArkMethod) {
630
+ const type = anonField.getType();
631
+ if (type instanceof Type_1.FunctionType) {
632
+ this.assignAnonMethod(scene.getMethod(type.getMethodSignature()), property);
633
+ }
634
+ anonField.setSignature(new ArkSignature_1.FieldSignature(anonField.getName(), property.getDeclaringArkClass().getSignature(), new Type_1.FunctionType(property.getSignature())));
635
+ }
599
636
  }
600
637
  for (const anonMethod of anon.getMethods()) {
601
- const methodSignature = (_a = declaredClass.getMethodWithName(anonMethod.getName())) === null || _a === void 0 ? void 0 : _a.matchMethodSignature(anonMethod.getSubSignature().getParameters());
602
- if (methodSignature) {
603
- anonMethod.setImplementationSignature(methodSignature);
604
- }
638
+ this.assignAnonMethod(anonMethod, declaredClass.getMethodWithName(anonMethod.getName()));
639
+ }
640
+ }
641
+ static assignAnonMethod(anonMethod, declaredMethod) {
642
+ if (declaredMethod && anonMethod) {
643
+ anonMethod.setImplementationSignature(declaredMethod.matchMethodSignature(anonMethod.getSubSignature().getParameters()));
605
644
  }
606
645
  }
607
646
  static assignAnonField(property, anonField, scene, set) {
@@ -86,7 +86,7 @@ class SdkUtils {
86
86
  const instance = globalMap.get(name + 'Interface');
87
87
  const attr = globalMap.get(name + EtsConst_1.COMPONENT_ATTRIBUTE);
88
88
  if (attr instanceof ArkClass_1.ArkClass && instance instanceof ArkClass_1.ArkClass) {
89
- instance.getMethods().filter(m => !instance.getMethodWithName(m.getName())).forEach(m => attr.addMethod(m));
89
+ instance.getMethods().filter(m => !attr.getMethodWithName(m.getName())).forEach(m => attr.addMethod(m));
90
90
  globalMap.set(name, attr);
91
91
  return;
92
92
  }
@@ -15,10 +15,10 @@ export declare class TypeInference {
15
15
  * The original type is null if failed to infer the type.
16
16
  * @param leftOpType
17
17
  * @param declaringArkClass
18
- * @param [rightType]
18
+ * @param visited
19
19
  * @returns
20
20
  */
21
- static inferUnclearedType(leftOpType: Type, declaringArkClass: ArkClass, rightType?: Type): Type | null | undefined;
21
+ static inferUnclearedType(leftOpType: Type, declaringArkClass: ArkClass, visited?: Set<Type>): Type | null | undefined;
22
22
  static inferTypeInMethod(arkMethod: ArkMethod): void;
23
23
  private static resolveStmt;
24
24
  /**
@@ -87,6 +87,7 @@ export declare class TypeInference {
87
87
  * @returns
88
88
  */
89
89
  static inferFieldType(baseType: Type, fieldName: string, declareClass: ArkClass): [any, Type] | null;
90
+ private static inferClassFieldType;
90
91
  /**
91
92
  * Find out the original object and type for a given base name.
92
93
  * It returns original type.
@@ -98,7 +99,8 @@ export declare class TypeInference {
98
99
  static inferBaseType(baseName: string, arkClass: ArkClass): Type | null;
99
100
  static inferRealGenericTypes(realTypes: Type[] | undefined, arkClass: ArkClass): void;
100
101
  static inferDynamicImportType(from: string, arkClass: ArkClass): Type | null;
101
- static replaceTypeWithReal(type: Type, realTypes?: Type[]): Type;
102
+ static replaceTypeWithReal(type: Type, realTypes?: Type[], visited?: Set<Type>): Type;
103
+ static replaceRecursiveType(type: Type, visited: Set<Type>, realTypes?: Type[]): Type;
102
104
  static replaceAliasType(type: Type): Type;
103
105
  static inferFunctionType(argType: FunctionType, paramSubSignature: MethodSubSignature | undefined, realTypes: Type[] | undefined): void;
104
106
  private static resolveArkReturnStmt;
@@ -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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"}
@@ -81,13 +81,13 @@ class TypeInference {
81
81
  const lastStmt = stmts[stmts.length - 1];
82
82
  if (lastStmt instanceof Stmt_1.ArkAssignStmt) {
83
83
  rightType = lastStmt.getRightOp().getType();
84
- if (lastStmt.getLeftOp() instanceof Ref_1.AbstractFieldRef) {
84
+ if (lastStmt.getLeftOp() instanceof Ref_1.ArkInstanceFieldRef) {
85
85
  fieldRef = lastStmt.getLeftOp();
86
86
  }
87
87
  }
88
88
  let fieldType;
89
89
  if (beforeType) {
90
- fieldType = this.inferUnclearedType(beforeType, arkClass, rightType);
90
+ fieldType = this.inferUnclearedType(beforeType, arkClass);
91
91
  }
92
92
  if (fieldType) {
93
93
  arkField.getSignature().setType(fieldType);
@@ -105,10 +105,16 @@ class TypeInference {
105
105
  * The original type is null if failed to infer the type.
106
106
  * @param leftOpType
107
107
  * @param declaringArkClass
108
- * @param [rightType]
108
+ * @param visited
109
109
  * @returns
110
110
  */
111
- static inferUnclearedType(leftOpType, declaringArkClass, rightType) {
111
+ static inferUnclearedType(leftOpType, declaringArkClass, visited = new Set()) {
112
+ if (visited.has(leftOpType)) {
113
+ return leftOpType;
114
+ }
115
+ else {
116
+ visited.add(leftOpType);
117
+ }
112
118
  let type;
113
119
  if (leftOpType instanceof Type_1.ClassType &&
114
120
  leftOpType.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME) {
@@ -117,7 +123,7 @@ class TypeInference {
117
123
  else if (leftOpType instanceof Type_1.UnionType || leftOpType instanceof Type_1.IntersectionType || leftOpType instanceof Type_1.TupleType) {
118
124
  let types = leftOpType.getTypes();
119
125
  for (let i = 0; i < types.length; i++) {
120
- let newType = this.inferUnclearedType(types[i], declaringArkClass);
126
+ let newType = this.inferUnclearedType(types[i], declaringArkClass, visited);
121
127
  if (newType) {
122
128
  types[i] = newType;
123
129
  }
@@ -125,14 +131,14 @@ class TypeInference {
125
131
  type = leftOpType;
126
132
  }
127
133
  else if (leftOpType instanceof Type_1.ArrayType) {
128
- let baseType = this.inferUnclearedType(leftOpType.getBaseType(), declaringArkClass);
134
+ let baseType = this.inferUnclearedType(leftOpType.getBaseType(), declaringArkClass, visited);
129
135
  if (baseType) {
130
136
  leftOpType.setBaseType(baseType);
131
137
  type = leftOpType;
132
138
  }
133
139
  }
134
140
  else if (leftOpType instanceof Type_1.AliasType) {
135
- let baseType = this.inferUnclearedType(leftOpType.getOriginalType(), declaringArkClass);
141
+ let baseType = this.inferUnclearedType(leftOpType.getOriginalType(), declaringArkClass, visited);
136
142
  if (baseType) {
137
143
  leftOpType.setOriginalType(baseType);
138
144
  type = leftOpType;
@@ -238,6 +244,10 @@ class TypeInference {
238
244
  }
239
245
  const stmtDef = stmt.getDef();
240
246
  if (stmtDef && stmtDef instanceof Ref_1.AbstractRef) {
247
+ if (arkMethod.getName() === Const_1.INSTANCE_INIT_METHOD_NAME && stmtDef instanceof Ref_1.ArkInstanceFieldRef &&
248
+ stmtDef.getBase().getName() === TSConst_1.THIS_NAME && arkMethod.getDeclaringArkClass().isAnonymousClass()) {
249
+ return;
250
+ }
241
251
  const fieldRef = stmtDef.inferType(arkMethod);
242
252
  stmt.replaceDef(stmtDef, fieldRef);
243
253
  }
@@ -322,7 +332,13 @@ class TypeInference {
322
332
  }
323
333
  }
324
334
  else if (leftOp instanceof Local_1.Local && leftOp.getName() === TSConst_1.THIS_NAME) {
325
- leftType = rightType;
335
+ const thisLocal = IRInference_1.IRInference.inferThisLocal(arkMethod);
336
+ if (thisLocal) {
337
+ stmt.setLeftOp(thisLocal);
338
+ }
339
+ else {
340
+ leftType = rightType;
341
+ }
326
342
  }
327
343
  if (leftType && !this.isUnclearType(leftType)) {
328
344
  this.setValueType(leftOp, leftType);
@@ -368,7 +384,7 @@ class TypeInference {
368
384
  }
369
385
  else if (type instanceof Type_1.ArrayType) {
370
386
  const baseType = type.getBaseType();
371
- return this.hasUnclearReferenceType(baseType) || baseType instanceof Type_1.AnyType || baseType instanceof Type_1.GenericType;
387
+ return this.hasUnclearReferenceType(baseType) || baseType instanceof Type_1.GenericType;
372
388
  }
373
389
  else if (type instanceof Type_1.AliasType) {
374
390
  return this.isUnclearType(type.getOriginalType());
@@ -381,25 +397,31 @@ class TypeInference {
381
397
  }
382
398
  return false;
383
399
  }
384
- // This is the temporally function to check unclearReferenceType recursively and can be removed after typeInfer supports multiple candidate types.
385
- static hasUnclearReferenceType(type) {
400
+ // This is the temporal function to check unclearReferenceType recursively and can be removed after typeInfer supports multiple candidate types.
401
+ static hasUnclearReferenceType(type, visited = new Set()) {
402
+ if (visited.has(type)) {
403
+ return false;
404
+ }
405
+ else {
406
+ visited.add(type);
407
+ }
386
408
  if (type instanceof Type_1.UnclearReferenceType) {
387
409
  return true;
388
410
  }
389
411
  else if (type instanceof Type_1.UnionType || type instanceof Type_1.IntersectionType || type instanceof Type_1.TupleType) {
390
- return !!type.getTypes().find(t => this.hasUnclearReferenceType(t));
412
+ return !!type.getTypes().find(t => this.hasUnclearReferenceType(t, visited));
391
413
  }
392
414
  else if (type instanceof Type_1.ArrayType) {
393
- return this.hasUnclearReferenceType(type.getBaseType());
415
+ return this.hasUnclearReferenceType(type.getBaseType(), visited);
394
416
  }
395
417
  else if (type instanceof Type_1.AliasType) {
396
- return this.hasUnclearReferenceType(type.getOriginalType());
418
+ return this.hasUnclearReferenceType(type.getOriginalType(), visited);
397
419
  }
398
420
  else if (type instanceof TypeExpr_1.KeyofTypeExpr) {
399
- return this.hasUnclearReferenceType(type.getOpType());
421
+ return this.hasUnclearReferenceType(type.getOpType(), visited);
400
422
  }
401
423
  else if (type instanceof TypeExpr_1.TypeQueryExpr) {
402
- return this.hasUnclearReferenceType(type.getType());
424
+ return this.hasUnclearReferenceType(type.getType(), visited);
403
425
  }
404
426
  return false;
405
427
  }
@@ -624,32 +646,15 @@ class TypeInference {
624
646
  }
625
647
  let propertyAndType = null;
626
648
  if (baseType instanceof Type_1.ClassType) {
627
- const arkClass = declareClass.getDeclaringArkFile().getScene().getClass(baseType.getClassSignature());
628
- if (!arkClass && fieldName === Builtin_1.Builtin.ITERATOR_RESULT_VALUE && baseType.getClassSignature()
649
+ if (fieldName === Builtin_1.Builtin.ITERATOR_RESULT_VALUE && baseType.getClassSignature()
629
650
  .getDeclaringFileSignature().getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
630
651
  const types = baseType.getRealGenericTypes();
631
652
  if (types && types.length > 0) {
632
- propertyAndType = [null, types[0]];
653
+ return [null, types[0]];
633
654
  }
655
+ return null;
634
656
  }
635
- if (!arkClass) {
636
- return propertyAndType;
637
- }
638
- const property = ModelUtils_1.ModelUtils.findPropertyInClass(fieldName, arkClass);
639
- let propertyType = null;
640
- if (property instanceof ArkField_1.ArkField) {
641
- propertyType = property.getType();
642
- }
643
- else if (property) {
644
- propertyType = this.parseArkExport2Type(property);
645
- }
646
- if (propertyType) {
647
- propertyAndType = [property, propertyType];
648
- }
649
- else if (arkClass.isAnonymousClass()) {
650
- const fieldType = this.inferUnclearRefName(fieldName, arkClass);
651
- propertyAndType = fieldType ? [null, fieldType] : null;
652
- }
657
+ propertyAndType = this.inferClassFieldType(declareClass, baseType, fieldName);
653
658
  }
654
659
  else if (baseType instanceof Type_1.AnnotationNamespaceType) {
655
660
  const namespace = declareClass.getDeclaringArkFile().getScene().getNamespace(baseType.getNamespaceSignature());
@@ -666,6 +671,28 @@ class TypeInference {
666
671
  }
667
672
  return propertyAndType;
668
673
  }
674
+ static inferClassFieldType(declareClass, baseType, fieldName) {
675
+ const arkClass = declareClass.getDeclaringArkFile().getScene().getClass(baseType.getClassSignature());
676
+ if (!arkClass) {
677
+ return null;
678
+ }
679
+ const property = ModelUtils_1.ModelUtils.findPropertyInClass(fieldName, arkClass);
680
+ let propertyType = null;
681
+ if (property instanceof ArkField_1.ArkField) {
682
+ propertyType = property.getType();
683
+ }
684
+ else if (property) {
685
+ propertyType = this.parseArkExport2Type(property);
686
+ }
687
+ if (propertyType) {
688
+ return [property, propertyType];
689
+ }
690
+ else if (arkClass.isAnonymousClass()) {
691
+ const fieldType = this.inferUnclearRefName(fieldName, arkClass);
692
+ return fieldType ? [null, fieldType] : null;
693
+ }
694
+ return null;
695
+ }
669
696
  /**
670
697
  * Find out the original object and type for a given base name.
671
698
  * It returns original type.
@@ -712,19 +739,37 @@ class TypeInference {
712
739
  importInfo.setDeclaringArkFile(arkClass.getDeclaringArkFile());
713
740
  return TypeInference.parseArkExport2Type((_a = importInfo.getLazyExportInfo()) === null || _a === void 0 ? void 0 : _a.getArkExport());
714
741
  }
715
- static replaceTypeWithReal(type, realTypes) {
716
- var _a, _b, _c, _d, _e, _f, _g, _h;
742
+ static replaceTypeWithReal(type, realTypes, visited = new Set()) {
743
+ var _a, _b;
744
+ if (visited.has(type)) {
745
+ return type;
746
+ }
747
+ else {
748
+ visited.add(type);
749
+ }
750
+ if (type instanceof Type_1.GenericType) {
751
+ const realType = (_b = (_a = realTypes === null || realTypes === void 0 ? void 0 : realTypes[type.getIndex()]) !== null && _a !== void 0 ? _a : type.getDefaultType()) !== null && _b !== void 0 ? _b : type.getConstraint();
752
+ return realType !== null && realType !== void 0 ? realType : type;
753
+ }
754
+ else if (type instanceof Type_1.AnyType) {
755
+ const realType = realTypes === null || realTypes === void 0 ? void 0 : realTypes[0];
756
+ return realType !== null && realType !== void 0 ? realType : type;
757
+ }
758
+ return this.replaceRecursiveType(type, visited, realTypes);
759
+ }
760
+ static replaceRecursiveType(type, visited, realTypes) {
761
+ var _a, _b, _c, _d, _e, _f;
717
762
  if (type instanceof Type_1.ClassType) {
718
- const replacedTypes = (_b = (_a = type.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.map(g => this.replaceTypeWithReal(g, realTypes))) !== null && _b !== void 0 ? _b : realTypes;
763
+ const replacedTypes = (_b = (_a = type.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.map(g => this.replaceTypeWithReal(g, realTypes, visited))) !== null && _b !== void 0 ? _b : realTypes;
719
764
  return replacedTypes && replacedTypes.length > 0 ? new Type_1.ClassType(type.getClassSignature(), replacedTypes) : type;
720
765
  }
721
766
  else if (type instanceof Type_1.FunctionType) {
722
- const replacedTypes = (_d = (_c = type.getRealGenericTypes()) === null || _c === void 0 ? void 0 : _c.map(g => this.replaceTypeWithReal(g, realTypes))) !== null && _d !== void 0 ? _d : realTypes;
767
+ const replacedTypes = (_d = (_c = type.getRealGenericTypes()) === null || _c === void 0 ? void 0 : _c.map(g => this.replaceTypeWithReal(g, realTypes, visited))) !== null && _d !== void 0 ? _d : realTypes;
723
768
  return replacedTypes && replacedTypes.length > 0 ? new Type_1.FunctionType(type.getMethodSignature(), replacedTypes) : type;
724
769
  }
725
770
  else if (type instanceof Type_1.AliasType && realTypes) {
726
- const newObjectType = this.replaceTypeWithReal(type.getOriginalType(), realTypes);
727
- const replacedTypes = (_f = (_e = type.getRealGenericTypes()) === null || _e === void 0 ? void 0 : _e.map(g => this.replaceTypeWithReal(g, realTypes))) !== null && _f !== void 0 ? _f : realTypes;
771
+ const newObjectType = this.replaceTypeWithReal(type.getOriginalType(), realTypes, visited);
772
+ const replacedTypes = (_f = (_e = type.getRealGenericTypes()) === null || _e === void 0 ? void 0 : _e.map(g => this.replaceTypeWithReal(g, realTypes, visited))) !== null && _f !== void 0 ? _f : realTypes;
728
773
  if (replacedTypes.length > 0) {
729
774
  const newAliasType = new Type_1.AliasType(type.getName(), newObjectType, type.getSignature(), type.getGenericTypes());
730
775
  newAliasType.setRealGenericTypes(replacedTypes);
@@ -733,35 +778,23 @@ class TypeInference {
733
778
  }
734
779
  else if (type instanceof Type_1.UnionType && realTypes) {
735
780
  const types = [];
736
- type.flatType().forEach(t => types.push(this.replaceTypeWithReal(t, realTypes)));
737
- return new Type_1.UnionType(types, this.replaceTypeWithReal(type.getCurrType(), realTypes));
781
+ type.flatType().forEach(t => types.push(this.replaceTypeWithReal(t, realTypes, visited)));
782
+ return new Type_1.UnionType(types, this.replaceTypeWithReal(type.getCurrType(), realTypes, visited));
738
783
  }
739
784
  else if (type instanceof Type_1.IntersectionType && realTypes) {
740
785
  const types = [];
741
- type.getTypes().forEach(t => types.push(this.replaceTypeWithReal(t, realTypes)));
786
+ type.getTypes().forEach(t => types.push(this.replaceTypeWithReal(t, realTypes, visited)));
742
787
  return new Type_1.IntersectionType(types);
743
788
  }
744
789
  else if (type instanceof Type_1.ArrayType && realTypes) {
745
- const replacedBaseType = this.replaceTypeWithReal(type.getBaseType(), realTypes);
790
+ const replacedBaseType = this.replaceTypeWithReal(type.getBaseType(), realTypes, visited);
746
791
  return new Type_1.ArrayType(replacedBaseType, type.getDimension());
747
792
  }
748
793
  else if (type instanceof Type_1.TupleType && realTypes) {
749
794
  let replacedTypes = [];
750
- type.getTypes().forEach(t => replacedTypes.push(this.replaceTypeWithReal(t, realTypes)));
795
+ type.getTypes().forEach(t => replacedTypes.push(this.replaceTypeWithReal(t, realTypes, visited)));
751
796
  return new Type_1.TupleType(replacedTypes);
752
797
  }
753
- else if (type instanceof Type_1.GenericType) {
754
- const realType = (_h = (_g = realTypes === null || realTypes === void 0 ? void 0 : realTypes[type.getIndex()]) !== null && _g !== void 0 ? _g : type.getDefaultType()) !== null && _h !== void 0 ? _h : type.getConstraint();
755
- if (realType) {
756
- return realType;
757
- }
758
- }
759
- else if (type instanceof Type_1.AnyType) {
760
- const realType = realTypes === null || realTypes === void 0 ? void 0 : realTypes[0];
761
- if (realType) {
762
- return realType;
763
- }
764
- }
765
798
  return type;
766
799
  }
767
800
  static replaceAliasType(type) {
@@ -1 +1 @@
1
- {"version":3,"file":"ReachingDef.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/ReachingDef.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,KAAK,MAAM,GAAG,IAAI,CAAC;AACnB,KAAK,gBAAgB,GAAG,eAAe,CAAC;AAIxC,qBAAa,kBAAmB,YAAW,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAChF,SAAS,EAAE,oBAAoB,CAAC;IAChC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,CAAC;IACrE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAuB;gBAElC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,OAAc;CAYzD;AAED;;;;GAIG;AACH,cAAM,oBAAqB,SAAQ,iBAAiB,CAAC,MAAM,CAAE,YAAW,SAAS,CAAC,MAAM,CAAC;IACrF,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBAEf,MAAM,EAAE,SAAS;IAc7B,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,YAAY;CAyCvB;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAC1F,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAExB,SAAS,EAAE,oBAAoB;IAM3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,gBAAgB;IAevD,OAAO,CAAC,WAAW;CAsBtB"}
1
+ {"version":3,"file":"ReachingDef.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/ReachingDef.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,KAAK,MAAM,GAAG,IAAI,CAAC;AACnB,KAAK,gBAAgB,GAAG,eAAe,CAAC;AAIxC,qBAAa,kBAAmB,YAAW,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAChF,SAAS,EAAE,oBAAoB,CAAC;IAChC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,CAAC;IACrE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAuB;gBAElC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,OAAc;CAYzD;AAED;;;;GAIG;AACH,cAAM,oBAAqB,SAAQ,iBAAiB,CAAC,MAAM,CAAE,YAAW,SAAS,CAAC,MAAM,CAAC;IACrF,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBAEf,MAAM,EAAE,SAAS;IAe7B,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,YAAY;CAyCvB;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAC1F,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAExB,SAAS,EAAE,oBAAoB;IAM3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,gBAAgB;IAevD,OAAO,CAAC,WAAW;CAsBtB"}
@@ -72,6 +72,7 @@ class ReachingDefFlowGraph extends BaseImplicitGraph_1.BaseImplicitGraph {
72
72
  }
73
73
  const nodes = cfg.getStmts();
74
74
  this.nodeToIdMap = new Map(nodes.map((x, i) => [x, i]));
75
+ this.idToNodeMap = new Map(nodes.map((x, i) => [i, x]));
75
76
  this.nodesInPostOrder = nodes.map((_, i) => i);
76
77
  this.initSuccPred(nodes, cfg);
77
78
  }
@@ -44,6 +44,7 @@ export declare abstract class BaseImplicitGraph<Node> implements GraphTraits<Nod
44
44
  * @throws Throws an error if idToNodeMap is not initialized or if the node is not found.
45
45
  */
46
46
  getNode(id: NodeID): Node;
47
+ getNodeID(s: Node): NodeID;
47
48
  /**
48
49
  * Checks whether the graph contains a specific node ID.
49
50
  * @param id The node ID.
@@ -1 +1 @@
1
- {"version":3,"file":"BaseImplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseImplicitGraph.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;;;GAIG;AACH,8BAAsB,iBAAiB,CAAC,IAAI,CAAE,YAAW,WAAW,CAAC,IAAI,CAAC;IACtE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhC;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;IAIhC;;;OAGG;IACI,UAAU,IAAI,MAAM;IAI3B;;;OAGG;IACI,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYhC;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQnC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;OAGG;IACI,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IAI1C;;;;OAIG;aACa,YAAY,IAAI,MAAM;CACzC"}
1
+ {"version":3,"file":"BaseImplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseImplicitGraph.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;;;GAIG;AACH,8BAAsB,iBAAiB,CAAC,IAAI,CAAE,YAAW,WAAW,CAAC,IAAI,CAAC;IACtE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhC;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;IAIhC;;;OAGG;IACI,UAAU,IAAI,MAAM;IAI3B;;;OAGG;IACI,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYzB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM;IASjC;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQnC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;OAGG;IACI,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IAI1C;;;;OAIG;aACa,YAAY,IAAI,MAAM;CACzC"}
@@ -37,6 +37,12 @@ class BaseImplicitGraph {
37
37
  }
38
38
  return this.idToNodeMap.get(id);
39
39
  }
40
+ getNodeID(s) {
41
+ if (!this.nodeToIdMap.has(s)) {
42
+ throw new Error(`Can find Node # ${s}`);
43
+ }
44
+ return this.nodeToIdMap.get(s);
45
+ }
40
46
  /**
41
47
  * Checks whether the graph contains a specific node ID.
42
48
  * @param id The node ID.
package/lib/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export { CSFuncID, PagBuilder } from './callgraph/pointerAnalysis/PagBuilder';
11
11
  export { PointerAnalysis } from './callgraph/pointerAnalysis/PointerAnalysis';
12
12
  export { PointerAnalysisConfig } from './callgraph/pointerAnalysis/PointerAnalysisConfig';
13
13
  export { PtsSet, DiffPTData } from './callgraph/pointerAnalysis/PtsDS';
14
+ export { DVFG } from './VFG/DVFG';
15
+ export { DVFGBuilder } from './VFG/builder/DVFGBuilder';
14
16
  export { Constant } from './core/base/Constant';
15
17
  export { Decorator } from './core/base/Decorator';
16
18
  export { DefUseChain } from './core/base/DefUseChain';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}