arkanalyzer 1.0.22 → 1.0.23
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/README.en.md +8 -0
- package/README.md +9 -0
- package/lib/Scene.js +4 -4
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +4 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +3 -2
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +58 -26
- package/lib/core/base/Expr.d.ts +24 -5
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +49 -9
- package/lib/core/base/Ref.d.ts +1 -0
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +14 -13
- package/lib/core/base/Type.d.ts +1 -1
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +1 -0
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +3 -3
- package/lib/core/common/Const.d.ts +1 -0
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +3 -1
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +1 -1
- package/lib/core/common/IRInference.d.ts +2 -2
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +39 -23
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +10 -12
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +6 -3
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +1 -0
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +45 -0
- package/lib/core/model/ArkClass.d.ts +11 -2
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +25 -6
- package/lib/core/model/ArkExport.d.ts +5 -1
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +6 -0
- package/lib/core/model/ArkField.d.ts +5 -0
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +6 -0
- package/lib/core/model/ArkFile.d.ts +13 -1
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +19 -2
- package/lib/core/model/ArkImport.d.ts +5 -1
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +6 -0
- package/lib/core/model/ArkMethod.d.ts +8 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +13 -0
- package/lib/core/model/ArkNamespace.d.ts +5 -1
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +6 -0
- package/lib/core/model/ArkSignature.d.ts +2 -2
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +6 -5
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFileBuilder.js +5 -0
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +4 -6
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +1 -0
- package/lib/utils/FileUtils.d.ts +2 -0
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +12 -0
- package/lib/utils/getAllFiles.js +2 -2
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@ import { AbstractExpr, AbstractInvokeExpr, AliasTypeExpr, ArkInstanceInvokeExpr,
|
|
|
5
5
|
import { Scene } from '../../Scene';
|
|
6
6
|
import { ArkClass } from '../model/ArkClass';
|
|
7
7
|
import { ClassSignature, MethodSignature } from '../model/ArkSignature';
|
|
8
|
-
import { AbstractRef, ArkInstanceFieldRef } from '../base/Ref';
|
|
8
|
+
import { AbstractRef, ArkInstanceFieldRef, ArkParameterRef } from '../base/Ref';
|
|
9
9
|
import { ArkFile } from '../model/ArkFile';
|
|
10
10
|
import { KeyofTypeExpr, TypeQueryExpr } from '../base/TypeExpr';
|
|
11
11
|
export declare class IRInference {
|
|
@@ -14,7 +14,6 @@ export declare class IRInference {
|
|
|
14
14
|
static inferFile(file: ArkFile): void;
|
|
15
15
|
static inferStaticInvokeExpr(expr: ArkStaticInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
16
16
|
private static inferStaticInvokeExprByMethodName;
|
|
17
|
-
private static generateNewMethodSignature;
|
|
18
17
|
static inferInstanceInvokeExpr(expr: ArkInstanceInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
19
18
|
/**
|
|
20
19
|
* process arkUI function with Annotation @Extend @Styles @AnimatableExtend
|
|
@@ -42,5 +41,6 @@ export declare class IRInference {
|
|
|
42
41
|
static inferAliasTypeExpr(expr: AliasTypeExpr, arkMethod: ArkMethod): AbstractExpr;
|
|
43
42
|
static inferTypeQueryExpr(expr: TypeQueryExpr, arkMethod: ArkMethod): void;
|
|
44
43
|
static inferKeyofTypeExpr(expr: KeyofTypeExpr, arkMethod: ArkMethod): void;
|
|
44
|
+
static inferParameterRef(ref: ArkParameterRef, arkMethod: ArkMethod): AbstractRef;
|
|
45
45
|
}
|
|
46
46
|
//# sourceMappingURL=IRInference.d.ts.map
|
|
@@ -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,
|
|
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;IA6BxG,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"}
|
|
@@ -126,8 +126,7 @@ class IRInference {
|
|
|
126
126
|
}
|
|
127
127
|
return expr;
|
|
128
128
|
}
|
|
129
|
-
this.inferStaticInvokeExprByMethodName(methodName, arkMethod, expr);
|
|
130
|
-
return expr;
|
|
129
|
+
return this.inferStaticInvokeExprByMethodName(methodName, arkMethod, expr);
|
|
131
130
|
}
|
|
132
131
|
static inferStaticInvokeExprByMethodName(methodName, arkMethod, expr) {
|
|
133
132
|
var _a, _b, _c, _d, _e;
|
|
@@ -159,18 +158,15 @@ class IRInference {
|
|
|
159
158
|
TypeInference_1.TypeInference.inferSignatureReturnType(signature, method);
|
|
160
159
|
}
|
|
161
160
|
if (signature) {
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
if (arkExport instanceof Local_1.Local) {
|
|
162
|
+
expr = new Expr_1.ArkPtrInvokeExpr(signature, arkExport, expr.getArgs(), expr.getRealGenericTypes());
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
expr.setMethodSignature(signature);
|
|
166
|
+
}
|
|
164
167
|
this.inferArgs(expr, arkMethod);
|
|
165
168
|
}
|
|
166
|
-
|
|
167
|
-
static generateNewMethodSignature(methodName, signature) {
|
|
168
|
-
if (signature.getMethodSubSignature().getMethodName().startsWith(Const_1.ANONYMOUS_METHOD_PREFIX)) {
|
|
169
|
-
const subSignature = signature.getMethodSubSignature();
|
|
170
|
-
const newSubSignature = new ArkSignature_1.MethodSubSignature(methodName, subSignature.getParameters(), subSignature.getReturnType(), subSignature.isStatic());
|
|
171
|
-
return new ArkSignature_1.MethodSignature(signature.getDeclaringClassSignature(), newSubSignature);
|
|
172
|
-
}
|
|
173
|
-
return signature;
|
|
169
|
+
return expr;
|
|
174
170
|
}
|
|
175
171
|
static inferInstanceInvokeExpr(expr, arkMethod) {
|
|
176
172
|
var _a, _b, _c;
|
|
@@ -325,12 +321,6 @@ class IRInference {
|
|
|
325
321
|
if (baseType instanceof Type_1.AliasType) {
|
|
326
322
|
return this.inferInvokeExpr(expr, baseType.getOriginalType(), methodName, scene);
|
|
327
323
|
}
|
|
328
|
-
else if (baseType instanceof Type_1.ArrayType) {
|
|
329
|
-
const arrayInterface = scene.getSdkGlobal(Builtin_1.Builtin.ARRAY);
|
|
330
|
-
if (arrayInterface instanceof ArkClass_1.ArkClass) {
|
|
331
|
-
return this.inferInvokeExpr(expr, new Type_1.ClassType(arrayInterface.getSignature(), [baseType.getBaseType()]), methodName, scene);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
324
|
else if (baseType instanceof Type_1.UnionType) {
|
|
335
325
|
for (let type of baseType.flatType()) {
|
|
336
326
|
if (type instanceof Type_1.UndefinedType || type instanceof Type_1.NullType) {
|
|
@@ -371,7 +361,7 @@ class IRInference {
|
|
|
371
361
|
const returnType = expr.getMethodSignature().getMethodSubSignature().getReturnType();
|
|
372
362
|
if (returnType instanceof Type_1.ClassType && returnType.getClassSignature().getDeclaringFileSignature()
|
|
373
363
|
.getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
|
|
374
|
-
|
|
364
|
+
expr.setRealGenericTypes([baseType.getBaseType()]);
|
|
375
365
|
return expr;
|
|
376
366
|
}
|
|
377
367
|
}
|
|
@@ -421,17 +411,22 @@ class IRInference {
|
|
|
421
411
|
}
|
|
422
412
|
else if (method instanceof ArkField_1.ArkField) {
|
|
423
413
|
const type = method.getType();
|
|
414
|
+
let methodSignature;
|
|
424
415
|
if (type instanceof Type_1.FunctionType) {
|
|
425
|
-
|
|
426
|
-
return expr;
|
|
416
|
+
methodSignature = type.getMethodSignature();
|
|
427
417
|
}
|
|
428
418
|
else if (type instanceof Type_1.ClassType && type.getClassSignature().getClassName().endsWith(EtsConst_1.CALL_BACK)) {
|
|
429
419
|
const callback = (_a = scene.getClass(type.getClassSignature())) === null || _a === void 0 ? void 0 : _a.getMethodWithName(Const_1.CALL_SIGNATURE_NAME);
|
|
430
420
|
if (callback) {
|
|
431
|
-
|
|
432
|
-
return expr;
|
|
421
|
+
methodSignature = callback.getSignature();
|
|
433
422
|
}
|
|
434
423
|
}
|
|
424
|
+
if (methodSignature) {
|
|
425
|
+
const ptr = expr instanceof Expr_1.ArkInstanceInvokeExpr ?
|
|
426
|
+
new Ref_1.ArkInstanceFieldRef(expr.getBase(), method.getSignature()) : new Ref_1.ArkStaticFieldRef(method.getSignature());
|
|
427
|
+
expr = new Expr_1.ArkPtrInvokeExpr(methodSignature, ptr, expr.getArgs(), expr.getRealGenericTypes());
|
|
428
|
+
}
|
|
429
|
+
return expr;
|
|
435
430
|
}
|
|
436
431
|
else if (methodName === TSConst_1.CONSTRUCTOR_NAME) { //sdk隐式构造
|
|
437
432
|
const subSignature = new ArkSignature_1.MethodSubSignature(methodName, [], new Type_1.ClassType(baseType.getClassSignature()));
|
|
@@ -727,5 +722,26 @@ class IRInference {
|
|
|
727
722
|
}
|
|
728
723
|
}
|
|
729
724
|
}
|
|
725
|
+
static inferParameterRef(ref, arkMethod) {
|
|
726
|
+
var _a;
|
|
727
|
+
const paramType = ref.getType();
|
|
728
|
+
if (paramType instanceof Type_1.UnknownType || paramType instanceof Type_1.UnclearReferenceType) {
|
|
729
|
+
const type1 = (_a = arkMethod.getSignature().getMethodSubSignature().getParameters()[ref.getIndex()]) === null || _a === void 0 ? void 0 : _a.getType();
|
|
730
|
+
if (!TypeInference_1.TypeInference.isUnclearType(type1)) {
|
|
731
|
+
ref.setType(type1);
|
|
732
|
+
return ref;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
else if (paramType instanceof Type_1.LexicalEnvType) {
|
|
736
|
+
paramType.getClosures().filter(c => TypeInference_1.TypeInference.isUnclearType(c.getType()))
|
|
737
|
+
.forEach(e => this.inferLocal(e, arkMethod));
|
|
738
|
+
return ref;
|
|
739
|
+
}
|
|
740
|
+
let type = TypeInference_1.TypeInference.inferUnclearedType(paramType, arkMethod.getDeclaringArkClass());
|
|
741
|
+
if (type) {
|
|
742
|
+
ref.setType(type);
|
|
743
|
+
}
|
|
744
|
+
return ref;
|
|
745
|
+
}
|
|
730
746
|
}
|
|
731
747
|
exports.IRInference = IRInference;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/ModelUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAEH,cAAc,EAKd,eAAe,EAEf,SAAS,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,OAAO,EAEH,SAAS,EAET,IAAI,EAGP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/ModelUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,8 @@ const ArkExportBuilder_1 = require("../model/builder/ArkExportBuilder");
|
|
|
56
56
|
const Type_1 = require("../base/Type");
|
|
57
57
|
const Const_1 = require("./Const");
|
|
58
58
|
const ValueUtil_1 = require("./ValueUtil");
|
|
59
|
+
const Stmt_1 = require("../base/Stmt");
|
|
60
|
+
const Ref_1 = require("../base/Ref");
|
|
59
61
|
class ModelUtils {
|
|
60
62
|
static getMethodSignatureFromArkClass(arkClass, methodName) {
|
|
61
63
|
for (const arkMethod of arkClass.getMethods()) {
|
|
@@ -354,13 +356,14 @@ class ModelUtils {
|
|
|
354
356
|
if (name === TSConst_1.THIS_NAME || name.startsWith(Const_1.TEMP_LOCAL_PREFIX)) {
|
|
355
357
|
return null;
|
|
356
358
|
}
|
|
359
|
+
const parameter = arkMethod.getParameters().find(p => p.getName() === name);
|
|
360
|
+
if (parameter) {
|
|
361
|
+
return new Local_1.Local(parameter.getName(), parameter.getType());
|
|
362
|
+
}
|
|
357
363
|
if (times > 0) {
|
|
358
|
-
const parameter = arkMethod.getParameters().find(p => p.getName() === name);
|
|
359
|
-
if (parameter) {
|
|
360
|
-
return new Local_1.Local(parameter.getName(), parameter.getType());
|
|
361
|
-
}
|
|
362
364
|
const declaredLocal = (_a = arkMethod.getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().get(name);
|
|
363
|
-
if (declaredLocal && declaredLocal.getDeclaringStmt()
|
|
365
|
+
if (declaredLocal && declaredLocal.getDeclaringStmt() instanceof Stmt_1.ArkAssignStmt &&
|
|
366
|
+
!(declaredLocal.getDeclaringStmt().getRightOp() instanceof Ref_1.ClosureFieldRef)) {
|
|
364
367
|
return declaredLocal;
|
|
365
368
|
}
|
|
366
369
|
}
|
|
@@ -368,9 +371,8 @@ class ModelUtils {
|
|
|
368
371
|
if (parentName === Const_1.DEFAULT_ARK_METHOD_NAME) {
|
|
369
372
|
return null;
|
|
370
373
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
if (start < 0) {
|
|
374
|
+
let invokeMethod = arkMethod.getOuterMethod();
|
|
375
|
+
if (!invokeMethod) {
|
|
374
376
|
const className = arkMethod.getDeclaringArkClass().getName();
|
|
375
377
|
const outerStart = className.indexOf(Const_1.NAME_DELIMITER);
|
|
376
378
|
const outerEnd = className.lastIndexOf('.');
|
|
@@ -382,10 +384,6 @@ class ModelUtils {
|
|
|
382
384
|
invokeMethod = (_c = cls.getDefaultArkMethod()) !== null && _c !== void 0 ? _c : (_d = cls.getDeclaringArkFile().getDefaultClass()) === null || _d === void 0 ? void 0 : _d.getDefaultArkMethod();
|
|
383
385
|
}
|
|
384
386
|
}
|
|
385
|
-
else {
|
|
386
|
-
parentName = parentName.substring(start + 1);
|
|
387
|
-
invokeMethod = arkMethod.getDeclaringArkClass().getMethodWithName(parentName);
|
|
388
|
-
}
|
|
389
387
|
if (invokeMethod) {
|
|
390
388
|
return this.findDeclaredLocal(local, invokeMethod, ++times);
|
|
391
389
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAwD,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAOH,YAAY,EACZ,WAAW,EAOX,IAAI,EACJ,oBAAoB,EAKvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAahG,qBAAa,aAAa;WAER,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoC3D;;;;;;;;;OASG;WACW,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS;WAkC5G,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IA4B3D,OAAO,CAAC,MAAM,CAAC,WAAW;IAY1B;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAwD,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAOH,YAAY,EACZ,WAAW,EAOX,IAAI,EACJ,oBAAoB,EAKvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAahG,qBAAa,aAAa;WAER,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoC3D;;;;;;;;;OASG;WACW,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS;WAkC5G,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IA4B3D,OAAO,CAAC,MAAM,CAAC,WAAW;IAY1B;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAarC,OAAO,CAAC,MAAM,CAAC,UAAU;WAgBX,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAsBvF;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAmB1E,OAAO,CAAC,MAAM,CAAC,aAAa;IAiC5B,OAAO,CAAC,MAAM,CAAC,YAAY;WAQb,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAyBnE,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAiBxB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAcvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WA2BvC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAU7E,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAgBnB,wBAAwB,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgCjG,OAAO,CAAC,MAAM,CAAC,eAAe;WAwBhB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAmBnF;;;;;;;OAOG;WACW,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAUhG;;;;;;;OAOG;WACW,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAoCnF;;;;;;;;;OASG;WACW,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI;IA+C3G;;;;;;;OAOG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoBhE,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAgB9E,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAUrE,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI;WA4CzD,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WASlC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI;IAuB9I,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAatC"}
|
|
@@ -210,7 +210,8 @@ class TypeInference {
|
|
|
210
210
|
static resolveExprsInStmt(stmt, arkMethod) {
|
|
211
211
|
for (const expr of stmt.getExprs()) {
|
|
212
212
|
const newExpr = expr.inferType(arkMethod);
|
|
213
|
-
if (stmt.containsInvokeExpr() && expr instanceof Expr_1.ArkInstanceInvokeExpr && newExpr instanceof Expr_1.ArkStaticInvokeExpr)
|
|
213
|
+
if (stmt.containsInvokeExpr() && ((expr instanceof Expr_1.ArkInstanceInvokeExpr && newExpr instanceof Expr_1.ArkStaticInvokeExpr) ||
|
|
214
|
+
newExpr instanceof Expr_1.ArkPtrInvokeExpr)) {
|
|
214
215
|
stmt.replaceUse(expr, newExpr);
|
|
215
216
|
}
|
|
216
217
|
}
|
|
@@ -351,13 +352,15 @@ class TypeInference {
|
|
|
351
352
|
}
|
|
352
353
|
}
|
|
353
354
|
static isUnclearType(type) {
|
|
355
|
+
var _a;
|
|
354
356
|
// TODO: For UnionType, IntersectionType and TupleType, it should recurse check every item of them.
|
|
355
357
|
if (!type || type instanceof Type_1.UnknownType || type instanceof Type_1.UnclearReferenceType
|
|
356
358
|
|| type instanceof Type_1.NullType || type instanceof Type_1.UndefinedType) {
|
|
357
359
|
return true;
|
|
358
360
|
}
|
|
359
|
-
else if (type instanceof Type_1.ClassType
|
|
360
|
-
|
|
361
|
+
else if (type instanceof Type_1.ClassType && (type.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME ||
|
|
362
|
+
(type.getClassSignature().getDeclaringFileSignature().getFileName() === Builtin_1.Builtin.DUMMY_FILE_NAME &&
|
|
363
|
+
((_a = type.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.find(t => t instanceof Type_1.GenericType))))) {
|
|
361
364
|
return true;
|
|
362
365
|
}
|
|
363
366
|
else if (type instanceof Type_1.UnionType || type instanceof Type_1.IntersectionType || type instanceof Type_1.TupleType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -991,6 +991,45 @@ class ViewTreeImpl extends TreeNodeStack {
|
|
|
991
991
|
}
|
|
992
992
|
return undefined;
|
|
993
993
|
}
|
|
994
|
+
parsePtrInvokeExpr(local2Node, stmt, expr) {
|
|
995
|
+
let temp = expr.getFuncPtrLocal();
|
|
996
|
+
if (temp instanceof Local_1.Local && local2Node.has(temp)) {
|
|
997
|
+
let component = local2Node.get(temp);
|
|
998
|
+
if ((component === null || component === void 0 ? void 0 : component.name) === EtsConst_1.COMPONENT_REPEAT &&
|
|
999
|
+
expr.getMethodSignature().getMethodSubSignature().getMethodName() === 'each') {
|
|
1000
|
+
let arg = expr.getArg(0);
|
|
1001
|
+
let type = arg.getType();
|
|
1002
|
+
if (type instanceof Type_1.FunctionType) {
|
|
1003
|
+
let method = this.findMethod(type.getMethodSignature());
|
|
1004
|
+
this.buildViewTreeFromCfg(method === null || method === void 0 ? void 0 : method.getCfg());
|
|
1005
|
+
}
|
|
1006
|
+
this.pop();
|
|
1007
|
+
}
|
|
1008
|
+
else {
|
|
1009
|
+
component === null || component === void 0 ? void 0 : component.addStmt(this, stmt);
|
|
1010
|
+
}
|
|
1011
|
+
return component;
|
|
1012
|
+
}
|
|
1013
|
+
else if (temp instanceof Ref_1.ArkInstanceFieldRef) {
|
|
1014
|
+
let name = temp.getBase().getName();
|
|
1015
|
+
if (name.startsWith(Const_1.TEMP_LOCAL_PREFIX)) {
|
|
1016
|
+
let initValue = backtraceLocalInitValue(temp.getBase());
|
|
1017
|
+
if (initValue instanceof Ref_1.ArkThisRef) {
|
|
1018
|
+
name = 'this';
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
let methodName = temp.getFieldName();
|
|
1022
|
+
let field = this.getDeclaringArkClass().getFieldWithName(methodName);
|
|
1023
|
+
if (name === 'this' && (field === null || field === void 0 ? void 0 : field.hasBuilderParamDecorator())) {
|
|
1024
|
+
return this.addBuilderParamNode(field);
|
|
1025
|
+
}
|
|
1026
|
+
let method = this.findMethod(expr.getMethodSignature());
|
|
1027
|
+
if (name === 'this' && (method === null || method === void 0 ? void 0 : method.hasBuilderDecorator())) {
|
|
1028
|
+
return this.addBuilderNode(method);
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
return undefined;
|
|
1032
|
+
}
|
|
994
1033
|
/**
|
|
995
1034
|
* $temp3 = View.create($temp2);
|
|
996
1035
|
* $temp4 = View.pop();
|
|
@@ -1018,6 +1057,9 @@ class ViewTreeImpl extends TreeNodeStack {
|
|
|
1018
1057
|
else if (right instanceof Expr_1.ArkInstanceInvokeExpr) {
|
|
1019
1058
|
component = this.parseInstanceInvokeExpr(local2Node, stmt, right);
|
|
1020
1059
|
}
|
|
1060
|
+
else if (right instanceof Expr_1.ArkPtrInvokeExpr) {
|
|
1061
|
+
component = this.parsePtrInvokeExpr(local2Node, stmt, right);
|
|
1062
|
+
}
|
|
1021
1063
|
if (component) {
|
|
1022
1064
|
local2Node.set(left, component);
|
|
1023
1065
|
}
|
|
@@ -1030,6 +1072,9 @@ class ViewTreeImpl extends TreeNodeStack {
|
|
|
1030
1072
|
else if (expr instanceof Expr_1.ArkInstanceInvokeExpr) {
|
|
1031
1073
|
this.parseInstanceInvokeExpr(local2Node, stmt, expr);
|
|
1032
1074
|
}
|
|
1075
|
+
else if (expr instanceof Expr_1.ArkPtrInvokeExpr) {
|
|
1076
|
+
this.parsePtrInvokeExpr(local2Node, stmt, expr);
|
|
1077
|
+
}
|
|
1033
1078
|
}
|
|
1034
1079
|
buildViewTreeFromCfg(cfg, local2Node = new Map()) {
|
|
1035
1080
|
if (!cfg) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GenericType, Type } from '../base/Type';
|
|
2
2
|
import { ViewTree } from '../graph/ViewTree';
|
|
3
3
|
import { ArkField } from './ArkField';
|
|
4
|
-
import { ArkFile } from './ArkFile';
|
|
4
|
+
import { ArkFile, Language } from './ArkFile';
|
|
5
5
|
import { ArkMethod } from './ArkMethod';
|
|
6
6
|
import { ArkNamespace } from './ArkNamespace';
|
|
7
7
|
import { ClassSignature, FieldSignature, FileSignature, MethodSignature, NamespaceSignature } from './ArkSignature';
|
|
@@ -47,6 +47,10 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
|
|
|
47
47
|
private indexSignatureNumber;
|
|
48
48
|
private viewTree?;
|
|
49
49
|
constructor();
|
|
50
|
+
/**
|
|
51
|
+
* Returns the program language of the file where this class defined.
|
|
52
|
+
*/
|
|
53
|
+
getLanguage(): Language;
|
|
50
54
|
/**
|
|
51
55
|
* Returns the **string**name of this class.
|
|
52
56
|
* @returns The name of this class.
|
|
@@ -152,7 +156,12 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
|
|
|
152
156
|
getMethod(methodSignature: MethodSignature): ArkMethod | null;
|
|
153
157
|
getMethodWithName(methodName: string): ArkMethod | null;
|
|
154
158
|
getStaticMethodWithName(methodName: string): ArkMethod | null;
|
|
155
|
-
|
|
159
|
+
/**
|
|
160
|
+
* add a method in class.
|
|
161
|
+
* when a nested method with declare name, add both the declare origin name and signature name
|
|
162
|
+
* %${declare name}$${outer method name} in class.
|
|
163
|
+
*/
|
|
164
|
+
addMethod(method: ArkMethod, originName?: string): void;
|
|
156
165
|
setDefaultArkMethod(defaultMethod: ArkMethod): void;
|
|
157
166
|
getDefaultArkMethod(): ArkMethod | null;
|
|
158
167
|
setViewTree(viewTree: ViewTree): void;
|
|
@@ -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,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,12 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
|
|
|
56
56
|
this.anonymousMethodNumber = 0;
|
|
57
57
|
this.indexSignatureNumber = 0;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the program language of the file where this class defined.
|
|
61
|
+
*/
|
|
62
|
+
getLanguage() {
|
|
63
|
+
return this.getDeclaringArkFile().getLanguage();
|
|
64
|
+
}
|
|
59
65
|
/**
|
|
60
66
|
* Returns the **string**name of this class.
|
|
61
67
|
* @returns The name of this class.
|
|
@@ -256,10 +262,10 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
|
|
|
256
262
|
});
|
|
257
263
|
}
|
|
258
264
|
getRealTypes() {
|
|
259
|
-
return this.realTypes;
|
|
265
|
+
return this.realTypes ? Array.from(this.realTypes) : undefined;
|
|
260
266
|
}
|
|
261
267
|
getGenericsTypes() {
|
|
262
|
-
return this.genericsTypes;
|
|
268
|
+
return this.genericsTypes ? Array.from(this.genericsTypes) : undefined;
|
|
263
269
|
}
|
|
264
270
|
addGenericType(gType) {
|
|
265
271
|
if (!this.genericsTypes) {
|
|
@@ -287,7 +293,7 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
|
|
|
287
293
|
const allMethods = Array.from(this.methods.values())
|
|
288
294
|
.filter(f => !generated && !f.isGenerated() || generated);
|
|
289
295
|
allMethods.push(...this.staticMethods.values());
|
|
290
|
-
return allMethods;
|
|
296
|
+
return [...new Set(allMethods)];
|
|
291
297
|
}
|
|
292
298
|
getMethod(methodSignature) {
|
|
293
299
|
var _a;
|
|
@@ -316,12 +322,25 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
|
|
|
316
322
|
getStaticMethodWithName(methodName) {
|
|
317
323
|
return this.staticMethods.get(methodName) || null;
|
|
318
324
|
}
|
|
319
|
-
|
|
325
|
+
/**
|
|
326
|
+
* add a method in class.
|
|
327
|
+
* when a nested method with declare name, add both the declare origin name and signature name
|
|
328
|
+
* %${declare name}$${outer method name} in class.
|
|
329
|
+
*/
|
|
330
|
+
addMethod(method, originName) {
|
|
331
|
+
const name = originName !== null && originName !== void 0 ? originName : method.getName();
|
|
320
332
|
if (method.isStatic()) {
|
|
321
|
-
this.staticMethods.set(
|
|
333
|
+
this.staticMethods.set(name, method);
|
|
322
334
|
}
|
|
323
335
|
else {
|
|
324
|
-
this.methods.set(
|
|
336
|
+
this.methods.set(name, method);
|
|
337
|
+
}
|
|
338
|
+
if (!originName && !method.isAnonymousMethod() && name.startsWith(Const_1.NAME_PREFIX)) {
|
|
339
|
+
const index = name.indexOf(Const_1.NAME_DELIMITER);
|
|
340
|
+
if (index > 1) {
|
|
341
|
+
const originName = name.substring(1, index);
|
|
342
|
+
this.addMethod(method, originName);
|
|
343
|
+
}
|
|
325
344
|
}
|
|
326
345
|
}
|
|
327
346
|
setDefaultArkMethod(defaultMethod) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LineColPosition } from '../base/Position';
|
|
2
|
-
import { ArkFile } from './ArkFile';
|
|
2
|
+
import { ArkFile, Language } from './ArkFile';
|
|
3
3
|
import { ArkSignature, ClassSignature, LocalSignature, MethodSignature, NamespaceSignature } from './ArkSignature';
|
|
4
4
|
import { ArkBaseModel, ModifierType } from './ArkBaseModel';
|
|
5
5
|
import { ArkError } from '../common/ArkError';
|
|
@@ -39,6 +39,10 @@ export declare class ExportInfo extends ArkBaseModel implements FromInfo {
|
|
|
39
39
|
private tsSourceCode?;
|
|
40
40
|
private declaringArkFile;
|
|
41
41
|
private constructor();
|
|
42
|
+
/**
|
|
43
|
+
* Returns the program language of the file where this export info defined.
|
|
44
|
+
*/
|
|
45
|
+
getLanguage(): Language;
|
|
42
46
|
getFrom(): string | undefined;
|
|
43
47
|
getOriginName(): string;
|
|
44
48
|
getExportClauseName(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAErG,oBAAY,UAAU;IAClB,UAAU,IAAI;IACd,KAAK,IAAI;IACT,MAAM,IAAI;IACV,KAAK,IAAI;IACT,IAAI,IAAI;IACR,OAAO,IAAI;CACd;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC3C,YAAY,IAAI,MAAM,CAAC;IACvB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;IAEtD,OAAO,IAAI,MAAM,CAAC;IAElB,aAAa,IAAI,UAAU,CAAC;CAE/B;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,IAAI,OAAO,CAAC;IAErB,aAAa,IAAI,MAAM,CAAC;IAExB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAC;IAE9B,mBAAmB,IAAI,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,QAAQ;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAc;IAEtC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO;IAIP;;OAEG;IACI,WAAW,IAAI,QAAQ;IAIvB,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,aAAa,IAAI,MAAM;IAIvB,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,GAAG,IAAI;IAIvD,mBAAmB,IAAI,UAAU;IAIjC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIpC,YAAY,IAAI,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,SAAS,IAAI,OAAO;IAUpB,mBAAmB,IAAI,eAAe;IAItC,eAAe,IAAI,MAAM;IAIzB,mBAAmB,IAAI,OAAO;IAIrC,OAAc,OAAO;;wBACL,UAAU;+CAEoB,MAAM;+CAKN,UAAU;uCAKlB,MAAM;iCAKZ,MAAM;+CAKQ,eAAe;uCAKvB,MAAM;oCAKT,OAAO;6BAKd,SAAS;mCAKH,MAAM;iDAOQ,gBAAgB;kDAOf,gBAAgB;qBAO7C,UAAU;;MAG5B;IAEK,QAAQ,IAAI,QAAQ;CAG9B"}
|
|
@@ -37,6 +37,12 @@ class ExportInfo extends ArkBaseModel_1.ArkBaseModel {
|
|
|
37
37
|
this.exportClauseName = '';
|
|
38
38
|
this.exportClauseType = ExportType.UNKNOWN;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns the program language of the file where this export info defined.
|
|
42
|
+
*/
|
|
43
|
+
getLanguage() {
|
|
44
|
+
return this.getDeclaringArkFile().getLanguage();
|
|
45
|
+
}
|
|
40
46
|
getFrom() {
|
|
41
47
|
return this.exportFrom;
|
|
42
48
|
}
|
|
@@ -5,6 +5,7 @@ import { FieldSignature } from './ArkSignature';
|
|
|
5
5
|
import { Type } from '../base/Type';
|
|
6
6
|
import { ArkBaseModel } from './ArkBaseModel';
|
|
7
7
|
import { ArkError } from '../common/ArkError';
|
|
8
|
+
import { Language } from './ArkFile';
|
|
8
9
|
export declare enum FieldCategory {
|
|
9
10
|
PROPERTY_DECLARATION = 0,
|
|
10
11
|
PROPERTY_ASSIGNMENT = 1,
|
|
@@ -28,6 +29,10 @@ export declare class ArkField extends ArkBaseModel {
|
|
|
28
29
|
private originPosition?;
|
|
29
30
|
private initializer;
|
|
30
31
|
constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Returns the program language of the file where this field's class defined.
|
|
34
|
+
*/
|
|
35
|
+
getLanguage(): Language;
|
|
31
36
|
getDeclaringArkClass(): ArkClass;
|
|
32
37
|
setDeclaringArkClass(declaringClass: ArkClass): void;
|
|
33
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,oBAAY,aAAa;IACrB,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,8BAA8B,IAAI;IAClC,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;IACnB,YAAY,IAAI;CACnB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACtC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAE1C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAkB;IAEzC,OAAO,CAAC,WAAW,CAAc;;IAMjC;;OAEG;IACI,WAAW,IAAI,QAAQ;IAIvB,oBAAoB;IAIpB,oBAAoB,CAAC,cAAc,EAAE,QAAQ;IAIpD;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,OAAO;IAIP,OAAO,IAAG,IAAI;IAId,YAAY,IAAI,cAAc;IAI9B,YAAY,CAAC,QAAQ,EAAE,cAAc;IAI5C;;;OAGG;IACI,cAAc,IAAI,IAAI,EAAE;IAIxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE;IAIlC,gBAAgB,CAAC,aAAa,EAAE,OAAO;IAIvC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO;IAI7C,gBAAgB;IAIhB,mBAAmB;IAInB,iBAAiB,CAAC,QAAQ,EAAE,eAAe;IAIlD;;;OAGG;IACI,iBAAiB,IAAI,eAAe;IAIpC,QAAQ,IAAI,QAAQ;CAG9B"}
|
|
@@ -39,6 +39,12 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
|
|
|
39
39
|
this.exclamationToken = false;
|
|
40
40
|
this.initializer = [];
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Returns the program language of the file where this field's class defined.
|
|
44
|
+
*/
|
|
45
|
+
getLanguage() {
|
|
46
|
+
return this.getDeclaringArkClass().getLanguage();
|
|
47
|
+
}
|
|
42
48
|
getDeclaringArkClass() {
|
|
43
49
|
return this.declaringClass;
|
|
44
50
|
}
|
|
@@ -5,10 +5,17 @@ import { ArkClass } from './ArkClass';
|
|
|
5
5
|
import { ArkNamespace } from './ArkNamespace';
|
|
6
6
|
import { ClassSignature, FileSignature, NamespaceSignature } from './ArkSignature';
|
|
7
7
|
export declare const notStmtOrExprKind: string[];
|
|
8
|
+
export declare enum Language {
|
|
9
|
+
TYPESCRIPT = 0,
|
|
10
|
+
ARKTS1_1 = 1,
|
|
11
|
+
ARKTS1_2 = 2,
|
|
12
|
+
UNKNOWN = -1
|
|
13
|
+
}
|
|
8
14
|
/**
|
|
9
15
|
* @category core/model
|
|
10
16
|
*/
|
|
11
17
|
export declare class ArkFile {
|
|
18
|
+
private language;
|
|
12
19
|
private absoluteFilePath;
|
|
13
20
|
private projectDir;
|
|
14
21
|
private code;
|
|
@@ -22,7 +29,12 @@ export declare class ArkFile {
|
|
|
22
29
|
private fileSignature;
|
|
23
30
|
private ohPackageJson5Path;
|
|
24
31
|
private anonymousClassNumber;
|
|
25
|
-
constructor();
|
|
32
|
+
constructor(language: Language);
|
|
33
|
+
/**
|
|
34
|
+
* Returns the program language of the file.
|
|
35
|
+
*/
|
|
36
|
+
getLanguage(): Language;
|
|
37
|
+
setLanguage(language: Language): void;
|
|
26
38
|
/**
|
|
27
39
|
* Returns the **string** name of the file, which also acts as the file's relative path.
|
|
28
40
|
* @returns The file's name (also means its relative path).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAa,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAuB,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGxG,eAAO,MAAM,iBAAiB,UAEqD,CAAC;AAEpF;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,IAAI,CAAc;IAE1B,OAAO,CAAC,YAAY,CAAY;IAGhC,OAAO,CAAC,UAAU,CAA8D;IAChF,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,aAAa,CAA0D;IAC/E,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,kBAAkB,CAAgB;IAE1C,OAAO,CAAC,oBAAoB,CAAa;;
|
|
1
|
+
{"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}
|