arkanalyzer 1.0.7 → 1.0.9
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.
- package/config/arkanalyzer.json +8 -0
- package/lib/Config.d.ts +9 -1
- package/lib/Config.d.ts.map +1 -1
- package/lib/Config.js +24 -11
- package/lib/Scene.d.ts +49 -42
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +124 -93
- package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
- package/lib/callgraph/common/Statistics.js +1 -1
- package/lib/callgraph/model/CallGraph.d.ts +3 -2
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +15 -5
- package/lib/callgraph/model/builder/CallGraphBuilder.js +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +35 -8
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +89 -8
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +32 -5
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +378 -83
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +3 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +71 -18
- package/lib/core/base/Constant.d.ts +25 -5
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +46 -8
- package/lib/core/base/Expr.d.ts +45 -40
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +236 -150
- package/lib/core/base/Local.d.ts +2 -2
- package/lib/core/base/Local.d.ts.map +1 -1
- package/lib/core/base/Local.js +2 -2
- package/lib/core/base/Ref.d.ts +38 -37
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +102 -70
- package/lib/core/base/Stmt.d.ts +4 -0
- package/lib/core/base/Stmt.d.ts.map +1 -1
- package/lib/core/base/Stmt.js +12 -1
- package/lib/core/base/Type.d.ts +4 -0
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +41 -17
- package/lib/core/common/ArkError.d.ts +15 -0
- package/lib/core/common/ArkError.d.ts.map +1 -0
- package/lib/core/common/ArkError.js +28 -0
- package/lib/core/common/ArkIRTransformer.d.ts +1 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +24 -8
- package/lib/core/common/CfgBuilder.d.ts.map +1 -1
- package/lib/core/common/CfgBuilder.js +5 -0
- package/lib/core/common/Const.d.ts +15 -10
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +18 -11
- package/lib/core/common/DummyMainCreater.d.ts +2 -1
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +28 -15
- package/lib/core/common/EtsConst.d.ts +1 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -1
- package/lib/core/common/EtsConst.js +2 -1
- package/lib/core/common/IRUtils.d.ts +6 -0
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +29 -2
- package/lib/core/common/ModelUtils.d.ts +1 -0
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +32 -32
- package/lib/core/common/TSConst.d.ts +10 -3
- package/lib/core/common/TSConst.d.ts.map +1 -1
- package/lib/core/common/TSConst.js +11 -4
- package/lib/core/common/TypeInference.d.ts +8 -2
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +218 -87
- package/lib/core/common/ValueUtil.d.ts +0 -4
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/common/ValueUtil.js +8 -25
- package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
- package/lib/core/dataflow/DataflowSolver.js +2 -4
- package/lib/core/dataflow/TiantAnalysis.js +2 -1
- package/lib/core/dataflow/Util.d.ts +1 -1
- package/lib/core/dataflow/Util.d.ts.map +1 -1
- package/lib/core/dataflow/Util.js +8 -7
- package/lib/core/graph/BasicBlock.d.ts +41 -0
- package/lib/core/graph/BasicBlock.d.ts.map +1 -1
- package/lib/core/graph/BasicBlock.js +132 -1
- package/lib/core/graph/Cfg.d.ts +30 -1
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +129 -6
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +3 -2
- package/lib/core/model/ArkBaseModel.d.ts +8 -0
- package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
- package/lib/core/model/ArkBaseModel.js +55 -3
- package/lib/core/model/ArkClass.d.ts +36 -30
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +78 -39
- package/lib/core/model/ArkExport.d.ts +3 -0
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +10 -0
- package/lib/core/model/ArkField.d.ts +2 -0
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +3 -0
- package/lib/core/model/ArkFile.d.ts +4 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +20 -0
- package/lib/core/model/ArkImport.d.ts +2 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +3 -0
- package/lib/core/model/ArkMetadata.d.ts +20 -0
- package/lib/core/model/ArkMetadata.d.ts.map +1 -0
- package/lib/core/model/ArkMetadata.js +44 -0
- package/lib/core/model/ArkMethod.d.ts +156 -53
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +309 -54
- package/lib/core/model/ArkNamespace.d.ts +4 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +13 -0
- package/lib/core/model/ArkSignature.d.ts +11 -5
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +38 -18
- package/lib/core/model/builder/ArkClassBuilder.d.ts +0 -1
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +9 -34
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkExportBuilder.js +6 -1
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.js +3 -0
- package/lib/core/model/builder/ArkFileBuilder.js +1 -1
- package/lib/core/model/builder/ArkImportBuilder.d.ts +2 -1
- package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkImportBuilder.js +12 -5
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +87 -47
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +25 -2
- package/lib/save/source/SourceClass.d.ts.map +1 -1
- package/lib/save/source/SourceClass.js +4 -0
- package/lib/save/source/SourceField.d.ts.map +1 -1
- package/lib/save/source/SourceField.js +4 -0
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +7 -0
- package/lib/save/source/SourceModule.d.ts.map +1 -1
- package/lib/save/source/SourceModule.js +14 -9
- package/lib/save/source/SourceNamespace.d.ts.map +1 -1
- package/lib/save/source/SourceNamespace.js +4 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +15 -3
- package/lib/save/source/SourceTransformer.d.ts +6 -0
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +72 -41
- package/lib/save/source/SourceUtils.d.ts.map +1 -1
- package/lib/save/source/SourceUtils.js +3 -2
- package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
- package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
- package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
- package/lib/utils/CfgStructualAnalysis.js +41 -7
- package/lib/utils/callGraphUtils.d.ts.map +1 -1
- package/lib/utils/callGraphUtils.js +7 -10
- package/lib/utils/crypto_utils.d.ts +6 -0
- package/lib/utils/crypto_utils.d.ts.map +1 -0
- package/lib/utils/crypto_utils.js +57 -0
- package/lib/utils/getAllFiles.d.ts +1 -1
- package/lib/utils/getAllFiles.d.ts.map +1 -1
- package/lib/utils/getAllFiles.js +4 -5
- package/package.json +3 -2
package/lib/core/base/Ref.d.ts
CHANGED
|
@@ -2,29 +2,29 @@ import { FieldSignature } from '../model/ArkSignature';
|
|
|
2
2
|
import { Local } from './Local';
|
|
3
3
|
import { ClassType, Type } from './Type';
|
|
4
4
|
import { Value } from './Value';
|
|
5
|
-
import {
|
|
5
|
+
import { ArkMethod } from '../model/ArkMethod';
|
|
6
6
|
/**
|
|
7
7
|
* @category core/base/ref
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class AbstractRef implements Value {
|
|
10
10
|
abstract getUses(): Value[];
|
|
11
11
|
abstract getType(): Type;
|
|
12
|
-
inferType(
|
|
12
|
+
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
13
13
|
}
|
|
14
14
|
export declare class ArkArrayRef extends AbstractRef {
|
|
15
15
|
private base;
|
|
16
16
|
private index;
|
|
17
17
|
constructor(base: Local, index: Value);
|
|
18
18
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
* Returns the base of this array reference. Array reference refers to access to array elements.
|
|
20
|
+
* Array references usually consist of an local variable and an index.
|
|
21
|
+
* For example, `a[i]` is a typical array reference, where `a` is the base (i.e., local variable)
|
|
22
|
+
* pointing to the actual memory location where the array is stored
|
|
23
|
+
* and `i` is the index indicating access to the `i-th` element from array `a`.
|
|
24
|
+
* @returns the base of this array reference.
|
|
25
|
+
* @example
|
|
26
|
+
* 1. Get the base and the specific elements.
|
|
27
|
+
|
|
28
28
|
```typescript
|
|
29
29
|
// Create an array
|
|
30
30
|
let myArray: number[] = [10, 20, 30, 40];
|
|
@@ -32,14 +32,14 @@ export declare class ArkArrayRef extends AbstractRef {
|
|
|
32
32
|
let arrayRef = new ArkArrayRef(myArray, 2);
|
|
33
33
|
// Use the getBase() method to get the base of the array
|
|
34
34
|
let baseArray = arrayRef.getBase();
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
console.log("Base array:", baseArray); // Output: Base array: [10, 20, 30, 40]
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
// Use baseArray and obeject index of ArrayRef to access to specific array elements
|
|
39
39
|
let element = baseArray[arrayRef.index];
|
|
40
40
|
console.log("Element at index", arrayRef.index, ":", element); // Output: Element at index 2 : 30
|
|
41
41
|
```
|
|
42
|
-
|
|
42
|
+
*/
|
|
43
43
|
getBase(): Local;
|
|
44
44
|
setBase(newBase: Local): void;
|
|
45
45
|
/**
|
|
@@ -69,16 +69,16 @@ export declare abstract class AbstractFieldRef extends AbstractRef {
|
|
|
69
69
|
* @example
|
|
70
70
|
* 1. Compare two Fields
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
```typescript
|
|
73
|
+
const fieldSignature = new FieldSignature();
|
|
74
|
+
fieldSignature.setFieldName(...);
|
|
75
|
+
const fieldRef = new ArkInstanceFieldRef(baseValue as Local, fieldSignature);
|
|
76
|
+
...
|
|
77
|
+
if (fieldRef.getFieldSignature().getFieldName() ===
|
|
78
|
+
targetField.getFieldSignature().getFieldName()) {
|
|
79
|
+
...
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
82
|
*/
|
|
83
83
|
getFieldSignature(): FieldSignature;
|
|
84
84
|
setFieldSignature(newFieldSignature: FieldSignature): void;
|
|
@@ -96,22 +96,23 @@ export declare class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
|
96
96
|
* @example
|
|
97
97
|
* 1. Get a base.
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
99
|
+
```typescript
|
|
100
|
+
if (expr instanceof ArkInstanceFieldRef) {
|
|
101
|
+
...
|
|
102
|
+
let base = expr.getBase();
|
|
103
|
+
if (base.getName() == 'this') {
|
|
104
|
+
...
|
|
105
|
+
}
|
|
106
|
+
...
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
109
|
*/
|
|
110
110
|
getBase(): Local;
|
|
111
111
|
setBase(newBase: Local): void;
|
|
112
112
|
getUses(): Value[];
|
|
113
113
|
toString(): string;
|
|
114
|
-
|
|
114
|
+
private getBaseType;
|
|
115
|
+
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
115
116
|
private getNewFieldSignature;
|
|
116
117
|
}
|
|
117
118
|
export declare class ArkStaticFieldRef extends AbstractFieldRef {
|
|
@@ -126,14 +127,14 @@ export declare class ArkParameterRef extends AbstractRef {
|
|
|
126
127
|
getIndex(): number;
|
|
127
128
|
getType(): Type;
|
|
128
129
|
setType(newType: Type): void;
|
|
129
|
-
inferType(
|
|
130
|
+
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
130
131
|
getUses(): Value[];
|
|
131
132
|
toString(): string;
|
|
132
133
|
}
|
|
133
134
|
export declare class ArkThisRef extends AbstractRef {
|
|
134
135
|
private type;
|
|
135
136
|
constructor(type: ClassType);
|
|
136
|
-
inferType(
|
|
137
|
+
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
137
138
|
getType(): ClassType;
|
|
138
139
|
getUses(): Value[];
|
|
139
140
|
toString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAiB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"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"}
|
package/lib/core/base/Ref.js
CHANGED
|
@@ -48,12 +48,13 @@ const ValueUtil_1 = require("../common/ValueUtil");
|
|
|
48
48
|
const ArkField_1 = require("../model/ArkField");
|
|
49
49
|
const ArkMethod_1 = require("../model/ArkMethod");
|
|
50
50
|
const Const_1 = require("../common/Const");
|
|
51
|
+
const TSConst_1 = require("../common/TSConst");
|
|
51
52
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Ref');
|
|
52
53
|
/**
|
|
53
54
|
* @category core/base/ref
|
|
54
55
|
*/
|
|
55
56
|
class AbstractRef {
|
|
56
|
-
inferType(
|
|
57
|
+
inferType(arkMethod) {
|
|
57
58
|
return this;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -65,15 +66,15 @@ class ArkArrayRef extends AbstractRef {
|
|
|
65
66
|
this.index = index;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
* Returns the base of this array reference. Array reference refers to access to array elements.
|
|
70
|
+
* Array references usually consist of an local variable and an index.
|
|
71
|
+
* For example, `a[i]` is a typical array reference, where `a` is the base (i.e., local variable)
|
|
72
|
+
* pointing to the actual memory location where the array is stored
|
|
73
|
+
* and `i` is the index indicating access to the `i-th` element from array `a`.
|
|
74
|
+
* @returns the base of this array reference.
|
|
75
|
+
* @example
|
|
76
|
+
* 1. Get the base and the specific elements.
|
|
77
|
+
|
|
77
78
|
```typescript
|
|
78
79
|
// Create an array
|
|
79
80
|
let myArray: number[] = [10, 20, 30, 40];
|
|
@@ -81,14 +82,14 @@ class ArkArrayRef extends AbstractRef {
|
|
|
81
82
|
let arrayRef = new ArkArrayRef(myArray, 2);
|
|
82
83
|
// Use the getBase() method to get the base of the array
|
|
83
84
|
let baseArray = arrayRef.getBase();
|
|
84
|
-
|
|
85
|
+
|
|
85
86
|
console.log("Base array:", baseArray); // Output: Base array: [10, 20, 30, 40]
|
|
86
|
-
|
|
87
|
+
|
|
87
88
|
// Use baseArray and obeject index of ArrayRef to access to specific array elements
|
|
88
89
|
let element = baseArray[arrayRef.index];
|
|
89
90
|
console.log("Element at index", arrayRef.index, ":", element); // Output: Element at index 2 : 30
|
|
90
91
|
```
|
|
91
|
-
|
|
92
|
+
*/
|
|
92
93
|
getBase() {
|
|
93
94
|
return this.base;
|
|
94
95
|
}
|
|
@@ -109,6 +110,9 @@ class ArkArrayRef extends AbstractRef {
|
|
|
109
110
|
}
|
|
110
111
|
getType() {
|
|
111
112
|
const baseType = this.base.getType();
|
|
113
|
+
if (baseType instanceof Type_1.AliasType) {
|
|
114
|
+
return baseType.getOriginalType();
|
|
115
|
+
}
|
|
112
116
|
if (baseType instanceof Type_1.ArrayType) {
|
|
113
117
|
return baseType.getBaseType();
|
|
114
118
|
}
|
|
@@ -149,16 +153,16 @@ class AbstractFieldRef extends AbstractRef {
|
|
|
149
153
|
* @example
|
|
150
154
|
* 1. Compare two Fields
|
|
151
155
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
156
|
+
```typescript
|
|
157
|
+
const fieldSignature = new FieldSignature();
|
|
158
|
+
fieldSignature.setFieldName(...);
|
|
159
|
+
const fieldRef = new ArkInstanceFieldRef(baseValue as Local, fieldSignature);
|
|
160
|
+
...
|
|
161
|
+
if (fieldRef.getFieldSignature().getFieldName() ===
|
|
162
|
+
targetField.getFieldSignature().getFieldName()) {
|
|
163
|
+
...
|
|
164
|
+
}
|
|
165
|
+
```
|
|
162
166
|
*/
|
|
163
167
|
getFieldSignature() {
|
|
164
168
|
return this.fieldSignature;
|
|
@@ -185,16 +189,16 @@ class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
|
185
189
|
* @example
|
|
186
190
|
* 1. Get a base.
|
|
187
191
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
```typescript
|
|
193
|
+
if (expr instanceof ArkInstanceFieldRef) {
|
|
194
|
+
...
|
|
195
|
+
let base = expr.getBase();
|
|
196
|
+
if (base.getName() == 'this') {
|
|
197
|
+
...
|
|
198
|
+
}
|
|
199
|
+
...
|
|
200
|
+
}
|
|
201
|
+
```
|
|
198
202
|
*/
|
|
199
203
|
getBase() {
|
|
200
204
|
return this.base;
|
|
@@ -211,7 +215,7 @@ class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
|
211
215
|
toString() {
|
|
212
216
|
return this.base.toString() + '.<' + this.getFieldSignature() + '>';
|
|
213
217
|
}
|
|
214
|
-
|
|
218
|
+
getBaseType(arkClass) {
|
|
215
219
|
let baseType = this.base.getType();
|
|
216
220
|
if (this.base instanceof Local_1.Local && baseType instanceof Type_1.UnknownType) {
|
|
217
221
|
baseType = TypeInference_1.TypeInference.inferBaseType(this.base.getName(), arkClass);
|
|
@@ -225,61 +229,80 @@ class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
|
225
229
|
}
|
|
226
230
|
if (!baseType) {
|
|
227
231
|
logger.warn('infer field ref base type fail: ' + this.toString());
|
|
228
|
-
return
|
|
232
|
+
return null;
|
|
229
233
|
}
|
|
230
234
|
if (this.base instanceof Local_1.Local) {
|
|
235
|
+
if (this.base.getName() === TSConst_1.THIS_NAME && arkClass.isAnonymousClass()) {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
231
238
|
this.base.setType(baseType);
|
|
232
239
|
}
|
|
240
|
+
if (baseType instanceof Type_1.AliasType) {
|
|
241
|
+
baseType = baseType.getOriginalType();
|
|
242
|
+
}
|
|
243
|
+
return baseType;
|
|
244
|
+
}
|
|
245
|
+
inferType(arkMethod) {
|
|
246
|
+
const arkClass = arkMethod.getDeclaringArkClass();
|
|
247
|
+
const baseType = this.getBaseType(arkClass);
|
|
248
|
+
if (!baseType) {
|
|
249
|
+
return this;
|
|
250
|
+
}
|
|
233
251
|
if (baseType instanceof Type_1.ArrayType && this.getFieldName() !== 'length') {
|
|
234
252
|
return new ArkArrayRef(this.base, ValueUtil_1.ValueUtil.createConst(this.getFieldName()));
|
|
235
253
|
}
|
|
236
|
-
|
|
237
|
-
if (
|
|
238
|
-
|
|
254
|
+
let newFieldSignature = this.getNewFieldSignature(arkClass, baseType);
|
|
255
|
+
if (baseType instanceof Type_1.UnionType) {
|
|
256
|
+
for (const type of baseType.getTypes()) {
|
|
257
|
+
if (type instanceof Type_1.UndefinedType || type instanceof Type_1.NullType) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
newFieldSignature = this.getNewFieldSignature(arkClass, baseType);
|
|
261
|
+
if (!TypeInference_1.TypeInference.isUnclearType(newFieldSignature)) {
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
239
265
|
}
|
|
240
266
|
else {
|
|
267
|
+
newFieldSignature = this.getNewFieldSignature(arkClass, baseType);
|
|
268
|
+
}
|
|
269
|
+
if (newFieldSignature) {
|
|
270
|
+
if (newFieldSignature.isStatic()) {
|
|
271
|
+
return new ArkStaticFieldRef(newFieldSignature);
|
|
272
|
+
}
|
|
241
273
|
this.setFieldSignature(newFieldSignature);
|
|
242
274
|
}
|
|
243
275
|
return this;
|
|
244
276
|
}
|
|
245
277
|
getNewFieldSignature(arkClass, baseType) {
|
|
246
|
-
|
|
247
|
-
const
|
|
248
|
-
let
|
|
249
|
-
|
|
250
|
-
if (propertyAndproperty) {
|
|
251
|
-
property = propertyAndproperty[0];
|
|
252
|
-
propertyType = propertyAndproperty[1];
|
|
253
|
-
}
|
|
254
|
-
if (TypeInference_1.TypeInference.isUnclearType(propertyType)) {
|
|
278
|
+
const fieldName = this.getFieldName().replace(/[\"|\']/, '');
|
|
279
|
+
const propertyAndType = TypeInference_1.TypeInference.inferFieldType(baseType, fieldName, arkClass);
|
|
280
|
+
let propertyType = propertyAndType === null || propertyAndType === void 0 ? void 0 : propertyAndType[1];
|
|
281
|
+
if (propertyType && TypeInference_1.TypeInference.isUnclearType(propertyType)) {
|
|
255
282
|
const newType = TypeInference_1.TypeInference.inferUnclearedType(propertyType, arkClass);
|
|
256
283
|
if (newType) {
|
|
257
284
|
propertyType = newType;
|
|
258
285
|
}
|
|
259
286
|
}
|
|
260
|
-
let
|
|
261
|
-
|
|
262
|
-
|
|
287
|
+
let staticFlag;
|
|
288
|
+
let signature;
|
|
289
|
+
if (baseType instanceof Type_1.ClassType) {
|
|
290
|
+
const property = propertyAndType === null || propertyAndType === void 0 ? void 0 : propertyAndType[0];
|
|
291
|
+
if (property instanceof ArkField_1.ArkField) {
|
|
292
|
+
return property.getSignature();
|
|
293
|
+
}
|
|
294
|
+
staticFlag = baseType.getClassSignature().getClassName() === Const_1.DEFAULT_ARK_CLASS_NAME ||
|
|
295
|
+
(property instanceof ArkMethod_1.ArkMethod && property.isStatic());
|
|
296
|
+
signature = property instanceof ArkMethod_1.ArkMethod ? property.getSignature().getDeclaringClassSignature() : baseType.getClassSignature();
|
|
297
|
+
}
|
|
298
|
+
else if (baseType instanceof Type_1.AnnotationNamespaceType) {
|
|
299
|
+
staticFlag = true;
|
|
300
|
+
signature = baseType.getNamespaceSignature();
|
|
263
301
|
}
|
|
264
302
|
else {
|
|
265
|
-
|
|
266
|
-
let signature;
|
|
267
|
-
if (baseType instanceof Type_1.ClassType) {
|
|
268
|
-
staticFlag = baseType.getClassSignature().getClassName() === Const_1.DEFAULT_ARK_CLASS_NAME ||
|
|
269
|
-
(property instanceof ArkMethod_1.ArkMethod && property.isStatic());
|
|
270
|
-
signature = baseType.getClassSignature();
|
|
271
|
-
}
|
|
272
|
-
else if (baseType instanceof Type_1.AnnotationNamespaceType) {
|
|
273
|
-
staticFlag = true;
|
|
274
|
-
signature = baseType.getNamespaceSignature();
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
staticFlag = oldFieldSignature.isStatic();
|
|
278
|
-
signature = oldFieldSignature.getDeclaringSignature();
|
|
279
|
-
}
|
|
280
|
-
newFieldSignature = new ArkSignature_1.FieldSignature(this.getFieldName(), signature, propertyType, staticFlag);
|
|
303
|
+
return null;
|
|
281
304
|
}
|
|
282
|
-
return
|
|
305
|
+
return new ArkSignature_1.FieldSignature(fieldName, signature, propertyType !== null && propertyType !== void 0 ? propertyType : this.getType(), staticFlag);
|
|
283
306
|
}
|
|
284
307
|
}
|
|
285
308
|
exports.ArkInstanceFieldRef = ArkInstanceFieldRef;
|
|
@@ -310,8 +333,16 @@ class ArkParameterRef extends AbstractRef {
|
|
|
310
333
|
setType(newType) {
|
|
311
334
|
this.paramType = newType;
|
|
312
335
|
}
|
|
313
|
-
inferType(
|
|
314
|
-
|
|
336
|
+
inferType(arkMethod) {
|
|
337
|
+
var _a;
|
|
338
|
+
if (arkMethod.isAnonymousMethod() && this.paramType instanceof Type_1.UnknownType) {
|
|
339
|
+
const type1 = (_a = arkMethod.getSignature().getMethodSubSignature().getParameters()[this.index]) === null || _a === void 0 ? void 0 : _a.getType();
|
|
340
|
+
if (!TypeInference_1.TypeInference.isUnclearType(type1)) {
|
|
341
|
+
this.paramType = type1;
|
|
342
|
+
return this;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
let type = TypeInference_1.TypeInference.inferUnclearedType(this.paramType, arkMethod.getDeclaringArkClass());
|
|
315
346
|
if (type) {
|
|
316
347
|
this.paramType = type;
|
|
317
348
|
}
|
|
@@ -330,7 +361,8 @@ class ArkThisRef extends AbstractRef {
|
|
|
330
361
|
super();
|
|
331
362
|
this.type = type;
|
|
332
363
|
}
|
|
333
|
-
inferType(
|
|
364
|
+
inferType(arkMethod) {
|
|
365
|
+
const arkClass = arkMethod.getDeclaringArkClass();
|
|
334
366
|
const className = this.type.getClassSignature().getClassName();
|
|
335
367
|
if (className.startsWith(Const_1.ANONYMOUS_CLASS_PREFIX)) {
|
|
336
368
|
let type = TypeInference_1.TypeInference.inferBaseType(className.split(Const_1.ANONYMOUS_CLASS_DELIMITER)[1], arkClass);
|
package/lib/core/base/Stmt.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { AbstractExpr, AbstractInvokeExpr, ArkConditionExpr } from './Expr';
|
|
|
3
3
|
import { AbstractFieldRef, ArkArrayRef } from './Ref';
|
|
4
4
|
import { Value } from './Value';
|
|
5
5
|
import { FullPosition, LineColPosition } from './Position';
|
|
6
|
+
import { ArkMetadata, ArkMetadataKind, ArkMetadataType } from '../model/ArkMetadata';
|
|
6
7
|
/**
|
|
7
8
|
* @category core/base/stmt
|
|
8
9
|
*/
|
|
@@ -12,6 +13,9 @@ export declare abstract class Stmt {
|
|
|
12
13
|
protected originalPosition: LineColPosition;
|
|
13
14
|
protected cfg: Cfg;
|
|
14
15
|
protected operandOriginalPositions?: FullPosition[];
|
|
16
|
+
metadata?: ArkMetadata;
|
|
17
|
+
getMetadata(kind: ArkMetadataKind): ArkMetadataType | undefined;
|
|
18
|
+
setMetadata(kind: ArkMetadataKind, value: ArkMetadataType): void;
|
|
15
19
|
/** Return a list of values which are uesd in this statement */
|
|
16
20
|
getUses(): Value[];
|
|
17
21
|
replaceUse(oldUse: Value, newUse: Value): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stmt.d.ts","sourceRoot":"","sources":["../../../src/core/base/Stmt.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Stmt.d.ts","sourceRoot":"","sources":["../../../src/core/base/Stmt.ts"],"names":[],"mappings":"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"}
|
package/lib/core/base/Stmt.js
CHANGED
|
@@ -19,6 +19,7 @@ const StmtUseReplacer_1 = require("../common/StmtUseReplacer");
|
|
|
19
19
|
const Expr_1 = require("./Expr");
|
|
20
20
|
const Ref_1 = require("./Ref");
|
|
21
21
|
const Position_1 = require("./Position");
|
|
22
|
+
const ArkMetadata_1 = require("../model/ArkMetadata");
|
|
22
23
|
/**
|
|
23
24
|
* @category core/base/stmt
|
|
24
25
|
*/
|
|
@@ -26,7 +27,17 @@ class Stmt {
|
|
|
26
27
|
constructor() {
|
|
27
28
|
this.originalPosition = Position_1.LineColPosition.DEFAULT;
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
getMetadata(kind) {
|
|
31
|
+
var _a;
|
|
32
|
+
return (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.getMetadata(kind);
|
|
33
|
+
}
|
|
34
|
+
setMetadata(kind, value) {
|
|
35
|
+
var _a;
|
|
36
|
+
if (!this.metadata) {
|
|
37
|
+
this.metadata = new ArkMetadata_1.ArkMetadata();
|
|
38
|
+
}
|
|
39
|
+
return (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.setMetadata(kind, value);
|
|
40
|
+
}
|
|
30
41
|
/** Return a list of values which are uesd in this statement */
|
|
31
42
|
getUses() {
|
|
32
43
|
return [];
|
package/lib/core/base/Type.d.ts
CHANGED
|
@@ -173,6 +173,7 @@ export declare class AliasType extends Type implements ArkExport {
|
|
|
173
173
|
private originalType;
|
|
174
174
|
private name;
|
|
175
175
|
private signature;
|
|
176
|
+
protected modifiers?: number;
|
|
176
177
|
constructor(name: string, originalType: Type, signature: LocalSignature);
|
|
177
178
|
getName(): string;
|
|
178
179
|
setOriginalType(type: Type): void;
|
|
@@ -181,6 +182,9 @@ export declare class AliasType extends Type implements ArkExport {
|
|
|
181
182
|
getExportType(): ExportType;
|
|
182
183
|
getModifiers(): number;
|
|
183
184
|
containsModifier(modifierType: ModifierType): boolean;
|
|
185
|
+
setModifiers(modifiers: number): void;
|
|
186
|
+
addModifier(modifier: ModifierType | number): void;
|
|
187
|
+
removeModifier(modifier: ModifierType): void;
|
|
184
188
|
getSignature(): LocalSignature;
|
|
185
189
|
}
|
|
186
190
|
export declare class GenericType extends Type {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"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"}
|