arkanalyzer 1.0.21 → 1.0.22
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 +14 -13
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +3 -4
- package/lib/core/common/ArkIRTransformer.d.ts +1 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +15 -0
- package/lib/core/common/IRInference.d.ts +9 -0
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +92 -12
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +16 -5
- package/lib/core/common/SdkUtils.d.ts +3 -0
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +26 -4
- package/lib/core/common/TSConst.d.ts +2 -0
- package/lib/core/common/TSConst.d.ts.map +1 -1
- package/lib/core/common/TSConst.js +4 -2
- package/lib/core/common/TypeInference.d.ts +6 -3
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +101 -43
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +3 -0
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +3 -0
- package/lib/core/model/ArkSignature.d.ts +5 -0
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +14 -0
- package/lib/core/model/builder/ArkClassBuilder.d.ts +1 -1
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +16 -47
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +1 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +15 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AA0BA,OAAO,
|
|
1
|
+
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -52,11 +52,14 @@ const ArkNamespace_1 = require("../model/ArkNamespace");
|
|
|
52
52
|
const TSConst_1 = require("./TSConst");
|
|
53
53
|
const ModelUtils_1 = require("./ModelUtils");
|
|
54
54
|
const Builtin_1 = require("./Builtin");
|
|
55
|
+
const ArkSignature_1 = require("../model/ArkSignature");
|
|
55
56
|
const Const_1 = require("./Const");
|
|
56
57
|
const ValueUtil_1 = require("./ValueUtil");
|
|
57
58
|
const ArkImport_1 = require("../model/ArkImport");
|
|
58
59
|
const IRInference_1 = require("./IRInference");
|
|
59
60
|
const TypeExpr_1 = require("../base/TypeExpr");
|
|
61
|
+
const SdkUtils_1 = require("./SdkUtils");
|
|
62
|
+
const ArkBaseModel_1 = require("../model/ArkBaseModel");
|
|
60
63
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'TypeInference');
|
|
61
64
|
class TypeInference {
|
|
62
65
|
static inferTypeInArkField(arkField) {
|
|
@@ -66,10 +69,7 @@ class TypeInference {
|
|
|
66
69
|
const method = (_a = arkClass.getMethodWithName(Const_1.INSTANCE_INIT_METHOD_NAME)) !== null && _a !== void 0 ? _a : arkClass.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME);
|
|
67
70
|
for (const stmt of stmts) {
|
|
68
71
|
if (method) {
|
|
69
|
-
this.
|
|
70
|
-
this.resolveExprsInStmt(stmt, method);
|
|
71
|
-
this.resolveFieldRefsInStmt(stmt, method);
|
|
72
|
-
this.resolveArkAssignStmt(stmt, method);
|
|
72
|
+
this.resolveStmt(stmt, method);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
const beforeType = arkField.getType();
|
|
@@ -160,21 +160,31 @@ class TypeInference {
|
|
|
160
160
|
s.getMethodSubSignature().getParameters().forEach(p => {
|
|
161
161
|
this.inferParameterType(p, arkMethod);
|
|
162
162
|
});
|
|
163
|
-
this.inferSignatureReturnType(s, arkMethod);
|
|
164
163
|
});
|
|
165
164
|
const body = arkMethod.getBody();
|
|
166
165
|
if (!body) {
|
|
166
|
+
signatures.forEach(s => this.inferSignatureReturnType(s, arkMethod));
|
|
167
167
|
return;
|
|
168
168
|
}
|
|
169
169
|
const cfg = body.getCfg();
|
|
170
170
|
for (const block of cfg.getBlocks()) {
|
|
171
171
|
for (const stmt of block.getStmts()) {
|
|
172
|
-
this.
|
|
173
|
-
this.resolveExprsInStmt(stmt, arkMethod);
|
|
174
|
-
this.resolveFieldRefsInStmt(stmt, arkMethod);
|
|
175
|
-
this.resolveArkAssignStmt(stmt, arkMethod);
|
|
172
|
+
this.resolveStmt(stmt, arkMethod);
|
|
176
173
|
}
|
|
177
174
|
}
|
|
175
|
+
signatures.forEach(s => this.inferSignatureReturnType(s, arkMethod));
|
|
176
|
+
}
|
|
177
|
+
static resolveStmt(stmt, arkMethod) {
|
|
178
|
+
try {
|
|
179
|
+
this.resolveTypeExprsInStmt(stmt, arkMethod);
|
|
180
|
+
this.resolveExprsInStmt(stmt, arkMethod);
|
|
181
|
+
this.resolveFieldRefsInStmt(stmt, arkMethod);
|
|
182
|
+
this.resolveArkAssignStmt(stmt, arkMethod);
|
|
183
|
+
this.resolveArkReturnStmt(stmt, arkMethod);
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
logger.warn('stmt is not correct: ' + stmt.toString());
|
|
187
|
+
}
|
|
178
188
|
}
|
|
179
189
|
/**
|
|
180
190
|
* @Deprecated
|
|
@@ -280,25 +290,25 @@ class TypeInference {
|
|
|
280
290
|
* @param arkMethod
|
|
281
291
|
*/
|
|
282
292
|
static resolveArkAssignStmt(stmt, arkMethod) {
|
|
283
|
-
var _a;
|
|
284
293
|
if (!(stmt instanceof Stmt_1.ArkAssignStmt)) {
|
|
285
294
|
return;
|
|
286
295
|
}
|
|
287
296
|
const arkClass = arkMethod.getDeclaringArkClass();
|
|
288
297
|
const rightOp = stmt.getRightOp();
|
|
298
|
+
if (rightOp instanceof Local_1.Local && rightOp.getType() instanceof Type_1.UnknownType) {
|
|
299
|
+
IRInference_1.IRInference.inferLocal(rightOp, arkMethod);
|
|
300
|
+
}
|
|
289
301
|
let rightType = rightOp.getType();
|
|
290
302
|
if (this.isUnclearType(rightType)) {
|
|
291
303
|
rightType = this.inferUnclearedType(rightType, arkClass);
|
|
292
304
|
if (rightType) {
|
|
293
305
|
this.setValueType(rightOp, rightType);
|
|
294
306
|
}
|
|
295
|
-
else {
|
|
296
|
-
if (rightOp instanceof Local_1.Local) {
|
|
297
|
-
IRInference_1.IRInference.inferLocal(rightOp, arkMethod);
|
|
298
|
-
rightType = rightOp.getType();
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
307
|
}
|
|
308
|
+
TypeInference.resolveLeftOp(stmt, arkClass, rightType, arkMethod);
|
|
309
|
+
}
|
|
310
|
+
static resolveLeftOp(stmt, arkClass, rightType, arkMethod) {
|
|
311
|
+
var _a;
|
|
302
312
|
const leftOp = stmt.getLeftOp();
|
|
303
313
|
let leftType = leftOp.getType();
|
|
304
314
|
if (this.isUnclearType(leftType)) {
|
|
@@ -310,6 +320,9 @@ class TypeInference {
|
|
|
310
320
|
leftType = newLeftType;
|
|
311
321
|
}
|
|
312
322
|
}
|
|
323
|
+
else if (leftOp instanceof Local_1.Local && leftOp.getName() === TSConst_1.THIS_NAME) {
|
|
324
|
+
leftType = rightType;
|
|
325
|
+
}
|
|
313
326
|
if (leftType && !this.isUnclearType(leftType)) {
|
|
314
327
|
this.setValueType(leftOp, leftType);
|
|
315
328
|
if (leftOp instanceof Local_1.Local && ((_a = stmt.getOriginalText()) === null || _a === void 0 ? void 0 : _a.startsWith(leftOp.getName()))) {
|
|
@@ -321,6 +334,12 @@ class TypeInference {
|
|
|
321
334
|
if (rightType) {
|
|
322
335
|
IRInference_1.IRInference.inferRightWithSdkType(leftType, rightType, arkClass);
|
|
323
336
|
}
|
|
337
|
+
if (leftOp instanceof Ref_1.AbstractFieldRef) {
|
|
338
|
+
const declaringSignature = leftOp.getFieldSignature().getDeclaringSignature();
|
|
339
|
+
if (declaringSignature instanceof ArkSignature_1.NamespaceSignature && declaringSignature.getNamespaceName() === TSConst_1.GLOBAL_THIS_NAME) {
|
|
340
|
+
SdkUtils_1.SdkUtils.computeGlobalThis(leftOp, arkMethod);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
324
343
|
}
|
|
325
344
|
}
|
|
326
345
|
static setValueType(value, type) {
|
|
@@ -345,7 +364,8 @@ class TypeInference {
|
|
|
345
364
|
return !!type.getTypes().find(t => this.hasUnclearReferenceType(t));
|
|
346
365
|
}
|
|
347
366
|
else if (type instanceof Type_1.ArrayType) {
|
|
348
|
-
|
|
367
|
+
const baseType = type.getBaseType();
|
|
368
|
+
return this.hasUnclearReferenceType(baseType) || baseType instanceof Type_1.AnyType || baseType instanceof Type_1.GenericType;
|
|
349
369
|
}
|
|
350
370
|
else if (type instanceof Type_1.AliasType) {
|
|
351
371
|
return this.isUnclearType(type.getOriginalType());
|
|
@@ -430,14 +450,19 @@ class TypeInference {
|
|
|
430
450
|
}
|
|
431
451
|
static inferParameterType(param, arkMethod) {
|
|
432
452
|
let pType = param.getType();
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
453
|
+
const arkClass = arkMethod.getDeclaringArkClass();
|
|
454
|
+
let type;
|
|
455
|
+
if (pType instanceof TypeExpr_1.AbstractTypeExpr) {
|
|
456
|
+
pType.inferType(arkMethod);
|
|
457
|
+
}
|
|
458
|
+
else if (param.getName() === 'value' && arkClass.hasComponentDecorator() && arkMethod.getName() === TSConst_1.CONSTRUCTOR_NAME) {
|
|
459
|
+
type = this.parseArkExport2Type(arkClass);
|
|
436
460
|
}
|
|
437
461
|
else {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
462
|
+
type = TypeInference.inferUnclearedType(pType, arkClass);
|
|
463
|
+
}
|
|
464
|
+
if (type) {
|
|
465
|
+
param.setType(type);
|
|
441
466
|
}
|
|
442
467
|
}
|
|
443
468
|
static inferSignatureReturnType(oldSignature, arkMethod) {
|
|
@@ -463,21 +488,35 @@ class TypeInference {
|
|
|
463
488
|
oldSignature.getMethodSubSignature().setReturnType(newReturnType);
|
|
464
489
|
}
|
|
465
490
|
else if (arkMethod.getBody()) {
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if (type instanceof Type_1.UnionType) {
|
|
470
|
-
type.flatType().filter(t => !TypeInference.isUnclearType(t)).forEach(t => typeMap.set(t.toString(), t));
|
|
471
|
-
}
|
|
472
|
-
else if (!TypeInference.isUnclearType(type)) {
|
|
473
|
-
typeMap.set(type.toString(), type);
|
|
474
|
-
}
|
|
491
|
+
const returnType = TypeInference.inferReturnType(arkMethod);
|
|
492
|
+
if (returnType) {
|
|
493
|
+
oldSignature.getMethodSubSignature().setReturnType(returnType);
|
|
475
494
|
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
static inferReturnType(arkMethod) {
|
|
498
|
+
const typeMap = new Map();
|
|
499
|
+
for (let returnValue of arkMethod.getReturnValues()) {
|
|
500
|
+
const type = returnValue.getType();
|
|
501
|
+
if (type instanceof Type_1.UnionType) {
|
|
502
|
+
type.flatType().filter(t => !TypeInference.isUnclearType(t)).forEach(t => typeMap.set(t.toString(), t));
|
|
503
|
+
}
|
|
504
|
+
else if (!TypeInference.isUnclearType(type)) {
|
|
505
|
+
typeMap.set(type.toString(), type);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
if (typeMap.size > 0) {
|
|
509
|
+
const types = Array.from(typeMap.values());
|
|
510
|
+
let returnType = types.length === 1 ? types[0] : new Type_1.UnionType(types);
|
|
511
|
+
if (arkMethod.containsModifier(ArkBaseModel_1.ModifierType.ASYNC)) {
|
|
512
|
+
const promise = arkMethod.getDeclaringArkFile().getScene().getSdkGlobal(TSConst_1.PROMISE);
|
|
513
|
+
if (promise instanceof ArkClass_1.ArkClass) {
|
|
514
|
+
returnType = new Type_1.ClassType(promise.getSignature(), [returnType]);
|
|
515
|
+
}
|
|
479
516
|
}
|
|
517
|
+
return returnType;
|
|
480
518
|
}
|
|
519
|
+
return null;
|
|
481
520
|
}
|
|
482
521
|
static inferGenericType(types, arkClass) {
|
|
483
522
|
types === null || types === void 0 ? void 0 : types.forEach(type => {
|
|
@@ -512,7 +551,7 @@ class TypeInference {
|
|
|
512
551
|
if (urType.getName() === Builtin_1.Builtin.ARRAY) {
|
|
513
552
|
return new Type_1.ArrayType((_a = realTypes[0]) !== null && _a !== void 0 ? _a : Type_1.AnyType.getInstance(), 1);
|
|
514
553
|
}
|
|
515
|
-
|
|
554
|
+
const type = this.inferUnclearRefName(urType.getName(), arkClass);
|
|
516
555
|
return type ? this.replaceTypeWithReal(type, realTypes) : null;
|
|
517
556
|
}
|
|
518
557
|
/**
|
|
@@ -591,10 +630,6 @@ class TypeInference {
|
|
|
591
630
|
if (!arkClass) {
|
|
592
631
|
return propertyAndType;
|
|
593
632
|
}
|
|
594
|
-
if (arkClass.isAnonymousClass()) {
|
|
595
|
-
const fieldType = this.inferUnclearRefName(fieldName, arkClass);
|
|
596
|
-
return fieldType ? [null, fieldType] : null;
|
|
597
|
-
}
|
|
598
633
|
const property = ModelUtils_1.ModelUtils.findPropertyInClass(fieldName, arkClass);
|
|
599
634
|
let propertyType = null;
|
|
600
635
|
if (property instanceof ArkField_1.ArkField) {
|
|
@@ -606,6 +641,10 @@ class TypeInference {
|
|
|
606
641
|
if (propertyType) {
|
|
607
642
|
propertyAndType = [property, propertyType];
|
|
608
643
|
}
|
|
644
|
+
else if (arkClass.isAnonymousClass()) {
|
|
645
|
+
const fieldType = this.inferUnclearRefName(fieldName, arkClass);
|
|
646
|
+
propertyAndType = fieldType ? [null, fieldType] : null;
|
|
647
|
+
}
|
|
609
648
|
}
|
|
610
649
|
else if (baseType instanceof Type_1.AnnotationNamespaceType) {
|
|
611
650
|
const namespace = declareClass.getDeclaringArkFile().getScene().getNamespace(baseType.getNamespaceSignature());
|
|
@@ -703,7 +742,7 @@ class TypeInference {
|
|
|
703
742
|
}
|
|
704
743
|
else if (type instanceof Type_1.TupleType && realTypes) {
|
|
705
744
|
let replacedTypes = [];
|
|
706
|
-
type.getTypes().forEach(t =>
|
|
745
|
+
type.getTypes().forEach(t => replacedTypes.push(this.replaceTypeWithReal(t, realTypes)));
|
|
707
746
|
return new Type_1.TupleType(replacedTypes);
|
|
708
747
|
}
|
|
709
748
|
else if (type instanceof Type_1.GenericType) {
|
|
@@ -727,7 +766,13 @@ class TypeInference {
|
|
|
727
766
|
}
|
|
728
767
|
return aliasType;
|
|
729
768
|
}
|
|
730
|
-
static inferFunctionType(argType,
|
|
769
|
+
static inferFunctionType(argType, paramSubSignature, realTypes) {
|
|
770
|
+
const returnType = argType.getMethodSignature().getMethodSubSignature().getReturnType();
|
|
771
|
+
const declareType = paramSubSignature === null || paramSubSignature === void 0 ? void 0 : paramSubSignature.getReturnType();
|
|
772
|
+
if (declareType instanceof Type_1.GenericType && realTypes && !this.isUnclearType(returnType)) {
|
|
773
|
+
realTypes[declareType.getIndex()] = returnType;
|
|
774
|
+
}
|
|
775
|
+
const params = paramSubSignature === null || paramSubSignature === void 0 ? void 0 : paramSubSignature.getParameters();
|
|
731
776
|
if (!params) {
|
|
732
777
|
return;
|
|
733
778
|
}
|
|
@@ -744,5 +789,18 @@ class TypeInference {
|
|
|
744
789
|
}
|
|
745
790
|
});
|
|
746
791
|
}
|
|
792
|
+
static resolveArkReturnStmt(stmt, arkMethod) {
|
|
793
|
+
var _a;
|
|
794
|
+
if (!(stmt instanceof Stmt_1.ArkReturnStmt)) {
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
let returnType = arkMethod.getSignature().getType();
|
|
798
|
+
if (returnType instanceof Type_1.ClassType && returnType.getClassSignature().getClassName() === TSConst_1.PROMISE) {
|
|
799
|
+
returnType = (_a = returnType.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.at(0);
|
|
800
|
+
}
|
|
801
|
+
if (returnType) {
|
|
802
|
+
IRInference_1.IRInference.inferRightWithSdkType(returnType, stmt.getOp().getType(), arkMethod.getDeclaringArkClass());
|
|
803
|
+
}
|
|
804
|
+
}
|
|
747
805
|
}
|
|
748
806
|
exports.TypeInference = TypeInference;
|
|
@@ -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;AAUjD,OAAO,
|
|
1
|
+
{"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,9 @@ function backtraceLocalInitValue(value) {
|
|
|
62
62
|
else if (rightOp instanceof Ref_1.ArkInstanceFieldRef && rightOp.getBase().getName().startsWith(Const_1.TEMP_LOCAL_PREFIX)) {
|
|
63
63
|
return backtraceLocalInitValue(rightOp.getBase());
|
|
64
64
|
}
|
|
65
|
+
else if (rightOp instanceof Ref_1.ArkArrayRef) {
|
|
66
|
+
return backtraceLocalInitValue(rightOp.getBase());
|
|
67
|
+
}
|
|
65
68
|
return rightOp;
|
|
66
69
|
}
|
|
67
70
|
return value;
|
|
@@ -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;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,oBAAY,aAAa;IACrB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,SAAS,IAAI;IACb,IAAI,IAAI;IACR,YAAY,IAAI;IAChB,MAAM,IAAI;CACb;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAa,YAAW,SAAS;IAC3D,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAkB;IACxC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA4F;IAEnH,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;IAG/C,OAAO,CAAC,OAAO,CAAwD;IACvE,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,YAAY,CAAsD;IAE1E,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,oBAAoB,CAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,CAAW;;IAM5B;;;OAGG;IACI,OAAO;IAId;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAI3B;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAI3B;;;OAGG;IACI,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD;;;;;;;;;OASG;IACI,mBAAmB;IAInB,mBAAmB,CAAC,gBAAgB,EAAE,OAAO;IAIpD;;;OAGG;IACI,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,wBAAwB,CAAC,qBAAqB,EAAE,YAAY,GAAG,SAAS;IAIxE,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,OAAO;IAIlC;;;;OAIG;IACI,YAAY;IAIZ,YAAY,CAAC,QAAQ,EAAE,cAAc;IAIrC,iBAAiB,IAAI,MAAM;IAI3B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD;;;OAGG;IACI,aAAa,IAAI,QAAQ,GAAG,IAAI;IAQvC,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,6 +160,9 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
|
|
|
160
160
|
return null;
|
|
161
161
|
}
|
|
162
162
|
getHeritageClass(heritageClassName) {
|
|
163
|
+
if (!heritageClassName) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
163
166
|
let superClass = this.heritageClasses.get(heritageClassName);
|
|
164
167
|
if (superClass === undefined) {
|
|
165
168
|
let type = TypeInference_1.TypeInference.inferUnclearRefName(heritageClassName, this);
|
|
@@ -51,6 +51,11 @@ export declare class ClassSignature {
|
|
|
51
51
|
* @returns The name of this class.
|
|
52
52
|
*/
|
|
53
53
|
getClassName(): string;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @returns The name of the declare class.
|
|
57
|
+
*/
|
|
58
|
+
getDeclaringClassName(): string;
|
|
54
59
|
setClassName(className: string): void;
|
|
55
60
|
getType(): ClassType;
|
|
56
61
|
toString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkSignature.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkSignature.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkSignature.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkSignature.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,20 @@ class ClassSignature {
|
|
|
108
108
|
getClassName() {
|
|
109
109
|
return this.className;
|
|
110
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
* @returns The name of the declare class.
|
|
114
|
+
*/
|
|
115
|
+
getDeclaringClassName() {
|
|
116
|
+
if (this.className.startsWith(Const_1.ANONYMOUS_CLASS_PREFIX)) {
|
|
117
|
+
let temp = this.className;
|
|
118
|
+
do {
|
|
119
|
+
temp = temp.substring(temp.indexOf(Const_1.NAME_DELIMITER) + 1, temp.lastIndexOf('.'));
|
|
120
|
+
} while (temp.startsWith(Const_1.ANONYMOUS_CLASS_PREFIX));
|
|
121
|
+
return temp;
|
|
122
|
+
}
|
|
123
|
+
return this.className;
|
|
124
|
+
}
|
|
111
125
|
setClassName(className) {
|
|
112
126
|
this.className = className;
|
|
113
127
|
}
|
|
@@ -6,7 +6,7 @@ import { ArkClass } from '../ArkClass';
|
|
|
6
6
|
export type ClassLikeNode = ts.ClassDeclaration | ts.InterfaceDeclaration | ts.EnumDeclaration | ts.ClassExpression | ts.TypeLiteralNode | ts.StructDeclaration | ts.ObjectLiteralExpression;
|
|
7
7
|
export declare function buildDefaultArkClassFromArkFile(arkFile: ArkFile, defaultClass: ArkClass, astRoot: ts.SourceFile): void;
|
|
8
8
|
export declare function buildDefaultArkClassFromArkNamespace(arkNamespace: ArkNamespace, defaultClass: ArkClass, nsNode: ts.ModuleDeclaration, sourceFile: ts.SourceFile): void;
|
|
9
|
-
export declare function buildNormalArkClassFromArkMethod(clsNode:
|
|
9
|
+
export declare function buildNormalArkClassFromArkMethod(clsNode: ClassLikeNode, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
10
10
|
export declare function buildNormalArkClassFromArkFile(clsNode: ClassLikeNode, arkFile: ArkFile, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
11
11
|
export declare function buildNormalArkClassFromArkNamespace(clsNode: ClassLikeNode, arkNamespace: ArkNamespace, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
12
12
|
export declare function buildNormalArkClass(clsNode: ClassLikeNode, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkClassBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkClassBuilder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AA8BtD,MAAM,MAAM,aAAa,GACrB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,uBAAuB,CAAC;AAU/B,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,QAI/G;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAClD,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAI3G;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"ArkClassBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkClassBuilder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AA8BtD,MAAM,MAAM,aAAa,GACrB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,uBAAuB,CAAC;AAU/B,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,QAI/G;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAClD,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAI3G;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAChE,eAAe,CAAC,EAAE,SAAS,QAO3E;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EACvD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAYpG;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EACjE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAazG;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QA2BhI"}
|
|
@@ -72,13 +72,13 @@ function buildDefaultArkClassFromArkNamespace(arkNamespace, defaultClass, nsNode
|
|
|
72
72
|
buildDefaultArkClass(defaultClass, sourceFile, nsNode);
|
|
73
73
|
}
|
|
74
74
|
exports.buildDefaultArkClassFromArkNamespace = buildDefaultArkClassFromArkNamespace;
|
|
75
|
-
function buildNormalArkClassFromArkMethod(clsNode, cls, sourceFile) {
|
|
75
|
+
function buildNormalArkClassFromArkMethod(clsNode, cls, sourceFile, declaringMethod) {
|
|
76
76
|
const namespace = cls.getDeclaringArkNamespace();
|
|
77
77
|
if (namespace) {
|
|
78
|
-
buildNormalArkClassFromArkNamespace(clsNode, namespace, cls, sourceFile);
|
|
78
|
+
buildNormalArkClassFromArkNamespace(clsNode, namespace, cls, sourceFile, declaringMethod);
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
|
-
buildNormalArkClassFromArkFile(clsNode, cls.getDeclaringArkFile(), cls, sourceFile);
|
|
81
|
+
buildNormalArkClassFromArkFile(clsNode, cls.getDeclaringArkFile(), cls, sourceFile, declaringMethod);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
exports.buildNormalArkClassFromArkMethod = buildNormalArkClassFromArkMethod;
|
|
@@ -169,13 +169,7 @@ function init4StaticInitMethod(cls) {
|
|
|
169
169
|
}
|
|
170
170
|
function buildStruct2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
171
171
|
var _a;
|
|
172
|
-
|
|
173
|
-
if (clsNode.name) {
|
|
174
|
-
className = clsNode.name.text;
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
className = genAnonymousClassName(clsNode, cls, declaringMethod);
|
|
178
|
-
}
|
|
172
|
+
const className = genClassName(clsNode.name ? clsNode.name.text : '', cls, declaringMethod);
|
|
179
173
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
180
174
|
cls.setSignature(classSignature);
|
|
181
175
|
if (clsNode.typeParameters) {
|
|
@@ -193,13 +187,7 @@ function buildStruct2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
193
187
|
}
|
|
194
188
|
function buildClass2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
195
189
|
var _a;
|
|
196
|
-
|
|
197
|
-
if (clsNode.name) {
|
|
198
|
-
className = clsNode.name.text;
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
className = genAnonymousClassName(clsNode, cls, declaringMethod);
|
|
202
|
-
}
|
|
190
|
+
const className = genClassName(clsNode.name ? clsNode.name.text : '', cls, declaringMethod);
|
|
203
191
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
204
192
|
cls.setSignature(classSignature);
|
|
205
193
|
if (clsNode.typeParameters) {
|
|
@@ -230,13 +218,7 @@ function initHeritage(heritageClauses, cls) {
|
|
|
230
218
|
}
|
|
231
219
|
function buildInterface2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
232
220
|
var _a;
|
|
233
|
-
|
|
234
|
-
if (clsNode.name) {
|
|
235
|
-
className = clsNode.name.text;
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
className = genAnonymousClassName(clsNode, cls, declaringMethod);
|
|
239
|
-
}
|
|
221
|
+
const className = genClassName(clsNode.name ? clsNode.name.text : '', cls, declaringMethod);
|
|
240
222
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
241
223
|
cls.setSignature(classSignature);
|
|
242
224
|
if (clsNode.typeParameters) {
|
|
@@ -252,13 +234,7 @@ function buildInterface2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
252
234
|
}
|
|
253
235
|
function buildEnum2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
254
236
|
var _a;
|
|
255
|
-
|
|
256
|
-
if (clsNode.name) {
|
|
257
|
-
className = clsNode.name.text;
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
className = genAnonymousClassName(clsNode, cls, declaringMethod);
|
|
261
|
-
}
|
|
237
|
+
const className = genClassName(clsNode.name ? clsNode.name.text : '', cls, declaringMethod);
|
|
262
238
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
263
239
|
cls.setSignature(classSignature);
|
|
264
240
|
cls.setModifiers((0, builderUtils_1.buildModifiers)(clsNode));
|
|
@@ -269,7 +245,7 @@ function buildEnum2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
269
245
|
}
|
|
270
246
|
function buildTypeLiteralNode2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
271
247
|
var _a;
|
|
272
|
-
const className =
|
|
248
|
+
const className = genClassName('', cls, declaringMethod);
|
|
273
249
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
274
250
|
cls.setSignature(classSignature);
|
|
275
251
|
cls.setCategory(ArkClass_1.ClassCategory.TYPE_LITERAL);
|
|
@@ -282,7 +258,7 @@ function buildTypeLiteralNode2ArkClass(clsNode, cls, sourceFile, declaringMethod
|
|
|
282
258
|
}
|
|
283
259
|
function buildObjectLiteralExpression2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
284
260
|
var _a;
|
|
285
|
-
const className =
|
|
261
|
+
const className = genClassName('', cls, declaringMethod);
|
|
286
262
|
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
287
263
|
cls.setSignature(classSignature);
|
|
288
264
|
cls.setCategory(ArkClass_1.ClassCategory.OBJECT);
|
|
@@ -310,21 +286,14 @@ function buildObjectLiteralExpression2ArkClass(clsNode, cls, sourceFile, declari
|
|
|
310
286
|
cls.addMethod(mtd);
|
|
311
287
|
});
|
|
312
288
|
}
|
|
313
|
-
function
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
if (declaringMethod) {
|
|
319
|
-
declaringMethodName = declaringMethod.getDeclaringArkClass().getName() + Const_1.ANONYMOUS_CLASS_DELIMITER + declaringMethod.getName() + Const_1.ANONYMOUS_CLASS_DELIMITER;
|
|
320
|
-
}
|
|
321
|
-
if (declaringArkNamespace) {
|
|
322
|
-
anonymousClassName = Const_1.ANONYMOUS_CLASS_PREFIX + Const_1.ANONYMOUS_CLASS_DELIMITER + declaringMethodName + declaringArkNamespace.getAnonymousClassNumber();
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
anonymousClassName = Const_1.ANONYMOUS_CLASS_PREFIX + Const_1.ANONYMOUS_CLASS_DELIMITER + declaringMethodName + declaringArkFile.getAnonymousClassNumber();
|
|
289
|
+
function genClassName(declaringName, cls, declaringMethod) {
|
|
290
|
+
if (!declaringName) {
|
|
291
|
+
const declaringArkNamespace = cls.getDeclaringArkNamespace();
|
|
292
|
+
const num = declaringArkNamespace ? declaringArkNamespace.getAnonymousClassNumber() : cls.getDeclaringArkFile().getAnonymousClassNumber();
|
|
293
|
+
declaringName = Const_1.ANONYMOUS_CLASS_PREFIX + num;
|
|
326
294
|
}
|
|
327
|
-
|
|
295
|
+
const suffix = declaringMethod ? Const_1.ANONYMOUS_CLASS_DELIMITER + declaringMethod.getDeclaringArkClass().getName() + '.' + declaringMethod.getName() : '';
|
|
296
|
+
return declaringName + suffix;
|
|
328
297
|
}
|
|
329
298
|
function buildArkClassMembers(clsNode, cls, sourceFile) {
|
|
330
299
|
if (ohos_typescript_1.default.isObjectLiteralExpression(clsNode)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,IAAI,EAAe,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAgBjC,OAAO,EAAmD,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAgBzC,MAAM,MAAM,cAAc,GACtB,EAAE,CAAC,mBAAmB,GACtB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,mBAAmB,GACtB,EAAE,CAAC,kBAAkB,GACrB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,6BAA6B,GAChC,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,gBAAgB,CAAC;AAExB,wBAAgB,iCAAiC,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EACxC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,QAYvG;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,6 +92,7 @@ function buildArkMethodFromArkClass(methodNode, declaringClass, mtd, sourceFile,
|
|
|
92
92
|
const methodName = buildMethodName(methodNode, declaringClass, sourceFile, declaringMethod);
|
|
93
93
|
const methodParameters = [];
|
|
94
94
|
(0, builderUtils_1.buildParameters)(methodNode.parameters, mtd, sourceFile).forEach((parameter) => {
|
|
95
|
+
(0, builderUtils_1.buildGenericType)(parameter.getType(), mtd);
|
|
95
96
|
methodParameters.push(parameter);
|
|
96
97
|
});
|
|
97
98
|
let returnType = Type_1.UnknownType.getInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAc5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAc5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QA8CjD"}
|
|
@@ -156,12 +156,19 @@ function buildHeritageClauses(heritageClauses) {
|
|
|
156
156
|
}
|
|
157
157
|
exports.buildHeritageClauses = buildHeritageClauses;
|
|
158
158
|
function buildTypeParameters(typeParameters, sourceFile, arkInstance) {
|
|
159
|
+
var _a;
|
|
159
160
|
const genericTypes = [];
|
|
160
|
-
let index =
|
|
161
|
+
let index = 0;
|
|
162
|
+
if (arkInstance instanceof ArkMethod_1.ArkMethod) {
|
|
163
|
+
const len = (_a = arkInstance.getDeclaringArkClass().getGenericsTypes()) === null || _a === void 0 ? void 0 : _a.length;
|
|
164
|
+
if (len) {
|
|
165
|
+
index = len;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
161
168
|
typeParameters.forEach((typeParameter) => {
|
|
162
169
|
const genericType = tsNode2Type(typeParameter, sourceFile, arkInstance);
|
|
163
170
|
if (genericType instanceof Type_1.GenericType) {
|
|
164
|
-
genericType.setIndex(++
|
|
171
|
+
genericType.setIndex(index++);
|
|
165
172
|
genericTypes.push(genericType);
|
|
166
173
|
}
|
|
167
174
|
if (typeParameter.modifiers) {
|
|
@@ -329,6 +336,12 @@ function buildGenericType(type, arkInstance) {
|
|
|
329
336
|
type.setBaseType(replace(baseType));
|
|
330
337
|
}
|
|
331
338
|
}
|
|
339
|
+
else if (type instanceof Type_1.FunctionType) {
|
|
340
|
+
const returnType = type.getMethodSignature().getType();
|
|
341
|
+
if (returnType instanceof Type_1.UnclearReferenceType) {
|
|
342
|
+
type.getMethodSignature().getMethodSubSignature().setReturnType(replace(returnType));
|
|
343
|
+
}
|
|
344
|
+
}
|
|
332
345
|
return type;
|
|
333
346
|
}
|
|
334
347
|
exports.buildGenericType = buildGenericType;
|