arkanalyzer 1.0.93 → 2.0.0-beta1
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/lib/Config.d.ts +7 -0
- package/lib/Config.d.ts.map +1 -1
- package/lib/Scene.d.ts +134 -170
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +412 -976
- package/lib/callgraph/algorithm/AbstractAnalysis.js +3 -2
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +2 -3
- package/lib/callgraph/model/CallGraph.js +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +1 -3
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +17 -7
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +4 -14
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +2 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +1 -2
- package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +0 -1
- package/lib/cli/commands/cg.d.ts +1 -0
- package/lib/cli/commands/cg.d.ts.map +1 -1
- package/lib/cli/commands/cg.js +22 -18
- package/lib/cli/commands/ir.d.ts +1 -0
- package/lib/cli/commands/ir.d.ts.map +1 -1
- package/lib/cli/commands/ir.js +5 -2
- package/lib/core/base/Constant.d.ts +5 -5
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +12 -9
- package/lib/core/base/Expr.d.ts +36 -20
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +206 -94
- package/lib/core/base/Local.d.ts +10 -20
- package/lib/core/base/Local.d.ts.map +1 -1
- package/lib/core/base/Local.js +25 -28
- package/lib/core/base/Position.d.ts +6 -0
- package/lib/core/base/Position.d.ts.map +1 -1
- package/lib/core/base/Position.js +37 -11
- package/lib/core/base/Ref.d.ts +45 -33
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +225 -51
- package/lib/core/base/Stmt.d.ts +19 -9
- package/lib/core/base/Stmt.d.ts.map +1 -1
- package/lib/core/base/Stmt.js +135 -52
- package/lib/core/base/Type.d.ts +67 -4
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +391 -20
- package/lib/core/base/TypeExpr.d.ts +6 -4
- package/lib/core/base/TypeExpr.d.ts.map +1 -1
- package/lib/core/base/TypeExpr.js +34 -10
- package/lib/core/base/Value.d.ts +20 -2
- package/lib/core/base/Value.d.ts.map +1 -1
- package/lib/core/base/Value.js +12 -0
- package/lib/core/common/ArkIRTransformer.d.ts +18 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +94 -75
- package/lib/core/common/ArkValueTransformer.d.ts +21 -3
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +458 -266
- package/lib/core/common/Builtin.d.ts +48 -24
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +90 -52
- package/lib/core/common/CanonicalizerValidator.d.ts +308 -0
- package/lib/core/common/CanonicalizerValidator.d.ts.map +1 -0
- package/lib/core/common/CanonicalizerValidator.js +888 -0
- package/lib/core/common/Const.d.ts +3 -3
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +3 -3
- package/lib/core/common/DummyMainCreater.d.ts +2 -21
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +8 -105
- package/lib/core/common/IRInference.d.ts +55 -3
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +407 -126
- package/lib/core/common/IRUtils.d.ts +1 -0
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +44 -13
- package/lib/core/common/ModelUtils.d.ts +44 -20
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +378 -208
- package/lib/core/common/SdkUtils.d.ts +35 -5
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +203 -59
- package/lib/core/common/SignatureCanonicalizer.d.ts +95 -0
- package/lib/core/common/SignatureCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/SignatureCanonicalizer.js +116 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.d.ts +176 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.d.ts.map +1 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.js +343 -0
- package/lib/core/common/SignatureModelCanonicalizer.d.ts +69 -0
- package/lib/core/common/SignatureModelCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/SignatureModelCanonicalizer.js +109 -0
- package/lib/core/common/StmtUseReplacer.d.ts +1 -0
- package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
- package/lib/core/common/StmtUseReplacer.js +9 -0
- package/lib/core/common/StringUtils.d.ts +12 -1
- package/lib/core/common/StringUtils.d.ts.map +1 -1
- package/lib/core/common/StringUtils.js +36 -17
- package/lib/core/common/TempSignatureCanonicalizer.d.ts +82 -0
- package/lib/core/common/TempSignatureCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/TempSignatureCanonicalizer.js +177 -0
- package/lib/core/common/TypeInference.d.ts +24 -6
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +243 -117
- package/lib/core/common/ValueUtil.d.ts +2 -1
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/common/ValueUtil.js +4 -1
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +21 -6
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +46 -33
- package/lib/core/graph/builder/IfBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/IfBuilder.js +6 -2
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +6 -2
- package/lib/core/inference/ModelInference.d.ts +24 -4
- package/lib/core/inference/ModelInference.d.ts.map +1 -1
- package/lib/core/inference/ModelInference.js +273 -79
- package/lib/core/inference/ValueInference.d.ts +3 -2
- package/lib/core/inference/ValueInference.d.ts.map +1 -1
- package/lib/core/inference/ValueInference.js +90 -40
- package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
- package/lib/core/inference/abc/AbcInference.js +28 -15
- package/lib/core/inference/arkts/ArkTsInference.d.ts +9 -3
- package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
- package/lib/core/inference/arkts/ArkTsInference.js +54 -16
- package/lib/core/model/ArkClass.d.ts +192 -18
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +852 -122
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +1 -2
- package/lib/core/model/ArkField.d.ts +34 -2
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +89 -14
- package/lib/core/model/ArkFile.d.ts +72 -12
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +275 -65
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +1 -2
- package/lib/core/model/ArkMethod.d.ts +101 -15
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +252 -39
- package/lib/core/model/ArkModule.d.ts +1 -1
- package/lib/core/model/ArkModule.js +1 -1
- package/lib/core/model/ArkNamespace.d.ts +80 -10
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +309 -76
- package/lib/core/model/ArkSignature.d.ts +242 -18
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +725 -95
- package/lib/core/model/builder/ArkClassBuilder.d.ts +6 -3
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +119 -73
- package/lib/core/model/builder/ArkExportBuilder.d.ts +1 -1
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkExportBuilder.js +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.d.ts +0 -2
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.js +9 -43
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFileBuilder.js +32 -33
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +10 -3
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +40 -26
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +3 -2
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +45 -77
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkSignatureBuilder.js +26 -3
- package/lib/core/model/builder/BodyBuilder.d.ts +1 -0
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/BodyBuilder.js +37 -11
- package/lib/core/model/builder/builderUtils.d.ts +11 -1
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +124 -90
- package/lib/frontend/FrontendBuilder.d.ts +10 -6
- package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
- package/lib/frontend/FrontendBuilder.js +19 -45
- package/lib/frontend/ModuleScene.d.ts +43 -0
- package/lib/frontend/ModuleScene.d.ts.map +1 -0
- package/lib/frontend/ModuleScene.js +143 -0
- package/lib/frontend/SceneBuildStage.d.ts +15 -0
- package/lib/frontend/SceneBuildStage.d.ts.map +1 -0
- package/lib/frontend/SceneBuildStage.js +32 -0
- package/lib/frontend/SceneBuilder.d.ts +153 -0
- package/lib/frontend/SceneBuilder.d.ts.map +1 -0
- package/lib/frontend/SceneBuilder.js +859 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +0 -2
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
- package/lib/frontend/arktsFrontend/ArktsFrontend.js +0 -18
- package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts +17 -0
- package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts.map +1 -0
- package/lib/frontend/arktsFrontend/FileBodyRemount.js +187 -0
- package/lib/frontend/common/ModuleBuilder.d.ts +4 -2
- package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -1
- package/lib/frontend/common/ModuleBuilder.js +19 -9
- package/lib/frontend/cppFrontend/CppFrontend.d.ts +0 -6
- package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/CppFrontend.js +0 -56
- package/lib/frontend/cppFrontend/base/Type.d.ts +7 -0
- package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/base/Type.js +29 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +56 -56
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +124 -113
- package/lib/frontend/cppFrontend/common/Builtin.d.ts +29 -19
- package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/Builtin.js +56 -35
- package/lib/frontend/cppFrontend/common/IRInference.d.ts +7 -2
- package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/IRInference.js +61 -28
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -0
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/IRUtils.js +22 -10
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +19 -0
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ModelUtils.js +84 -3
- package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/TypeInference.js +44 -54
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +2 -1
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +1 -1
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/inference/CxxValueInference.js +41 -5
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +18 -28
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +2 -3
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +2 -2
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +31 -24
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +10 -16
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +0 -2
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +19 -37
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -0
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +30 -3
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/builderUtils.js +8 -4
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/save/json/JsonSerialization.js +2 -2
- package/lib/save/source/SourceStmt.js +1 -1
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +0 -9
- package/lib/statistics/StageStatistics.d.ts +195 -0
- package/lib/statistics/StageStatistics.d.ts.map +1 -0
- package/lib/statistics/StageStatistics.js +346 -0
- package/lib/statistics/StageStatisticsReporter.d.ts +58 -0
- package/lib/statistics/StageStatisticsReporter.d.ts.map +1 -0
- package/lib/statistics/StageStatisticsReporter.js +255 -0
- package/lib/utils/Canonicalizer.d.ts +9 -2
- package/lib/utils/Canonicalizer.d.ts.map +1 -1
- package/lib/utils/Canonicalizer.js +19 -2
- package/lib/utils/CxxSceneUtils.d.ts +7 -0
- package/lib/utils/CxxSceneUtils.d.ts.map +1 -1
- package/lib/utils/CxxSceneUtils.js +10 -1
- package/lib/utils/FileUtils.d.ts +0 -1
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +1 -9
- package/lib/utils/HashUtils.d.ts +9 -0
- package/lib/utils/HashUtils.d.ts.map +1 -0
- package/lib/utils/HashUtils.js +65 -0
- package/lib/utils/ModuleUtils.d.ts.map +1 -1
- package/lib/utils/ModuleUtils.js +24 -5
- package/lib/utils/VisitedSegment.d.ts +23 -0
- package/lib/utils/VisitedSegment.d.ts.map +1 -0
- package/lib/utils/VisitedSegment.js +64 -0
- package/lib/utils/callGraphUtils.d.ts.map +1 -1
- package/lib/utils/callGraphUtils.js +7 -7
- package/lib/utils/getAllFiles.d.ts.map +1 -1
- package/lib/utils/getAllFiles.js +11 -8
- package/lib/utils/logger.d.ts +4 -0
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +16 -0
- package/lib/utils/parseArkSourceFile.d.ts +33 -0
- package/lib/utils/parseArkSourceFile.d.ts.map +1 -0
- package/lib/utils/parseArkSourceFile.js +131 -0
- package/package.json +1 -1
- package/lib/node_modules/ohos-typescript/README.OpenSource +0 -11
- package/lib/node_modules/ohos-typescript/README.md +0 -81
- package/lib/node_modules/ohos-typescript/SECURITY.md +0 -41
- package/lib/node_modules/ohos-typescript/ThirdPartyNoticeText.txt +0 -193
- package/lib/node_modules/ohos-typescript/bin/tsc +0 -2
- package/lib/node_modules/ohos-typescript/bin/tsserver +0 -2
- package/lib/node_modules/ohos-typescript/lib/README.md +0 -5
- package/lib/node_modules/ohos-typescript/lib/cancellationToken.js +0 -86
- package/lib/node_modules/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/lib.dom.d.ts +0 -18505
- package/lib/node_modules/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -341
- package/lib/node_modules/ohos-typescript/lib/lib.scripthost.d.ts +0 -327
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.d.ts +0 -6192
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -26
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -175
- package/lib/node_modules/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tsc.js +0 -114551
- package/lib/node_modules/ohos-typescript/lib/tsserver.js +0 -179691
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.d.ts +0 -13648
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.js +0 -178688
- package/lib/node_modules/ohos-typescript/lib/typesMap.json +0 -497
- package/lib/node_modules/ohos-typescript/lib/typingsInstaller.js +0 -39871
- package/lib/node_modules/ohos-typescript/lib/watchGuard.js +0 -49
- package/lib/node_modules/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -1880
- package/lib/utils/DependenciesSort.d.ts +0 -3
- package/lib/utils/DependenciesSort.d.ts.map +0 -1
- package/lib/utils/DependenciesSort.js +0 -72
- package/lib/utils/crypto_utils.d.ts +0 -6
- package/lib/utils/crypto_utils.d.ts.map +0 -1
- package/lib/utils/crypto_utils.js +0 -57
|
@@ -3,13 +3,16 @@ import { ArkMethod } from '../ArkMethod';
|
|
|
3
3
|
import { ArkNamespace } from '../ArkNamespace';
|
|
4
4
|
import ts from 'ohos-typescript';
|
|
5
5
|
import { ArkClass } from '../ArkClass';
|
|
6
|
+
import { ClassSignature } from '../ArkSignature';
|
|
6
7
|
export type ClassLikeNode = ts.ClassDeclaration | ts.InterfaceDeclaration | ts.EnumDeclaration | ts.ClassExpression | ts.TypeLiteralNode | ts.StructDeclaration | ts.ObjectLiteralExpression;
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function buildClassSignature(node: ClassLikeNode, declaringInstance: ArkFile | ArkNamespace | ArkMethod): ClassSignature;
|
|
9
|
+
export declare function buildDefaultArkClassFromArkFile(defaultClass: ArkClass, astRoot: ts.SourceFile): void;
|
|
9
10
|
export declare function buildNormalArkClassFromArkMethod(clsNode: ClassLikeNode, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
10
11
|
export declare function buildNormalArkClassFromArkFile(clsNode: ClassLikeNode, arkFile: ArkFile, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
11
|
-
export declare function buildNormalArkClassFromArkNamespace(clsNode: ClassLikeNode,
|
|
12
|
+
export declare function buildNormalArkClassFromArkNamespace(clsNode: ClassLikeNode, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
13
|
+
export declare function buildDefaultArkClass(cls: ArkClass, sourceFile: ts.SourceFile, node?: ts.ModuleDeclaration): void;
|
|
12
14
|
export declare function buildNormalArkClass(clsNode: ClassLikeNode, cls: ArkClass, sourceFile: ts.SourceFile, declaringMethod?: ArkMethod): void;
|
|
13
15
|
export declare function init4InstanceInitMethod(cls: ArkClass): void;
|
|
14
16
|
export declare function init4StaticInitMethod(cls: ArkClass): void;
|
|
17
|
+
export declare function registerTypeAliasTypeLiteral(node: ts.TypeAliasDeclaration): void;
|
|
15
18
|
//# sourceMappingURL=ArkClassBuilder.d.ts.map
|
|
@@ -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,EAAmE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;
|
|
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,EAAmE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAkBtD,OAAO,EAAE,cAAc,EAAuD,MAAM,iBAAiB,CAAC;AAgBtG,MAAM,MAAM,aAAa,GACnB,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;AA+BjC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAmB9H;AAED,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAGpG;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAQpJ;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CAON;AAED,wBAAgB,mCAAmC,CAC/C,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CAMN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAKhH;AAQD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CA0BvI;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAW3D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAYzD;AA+GD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAIhF"}
|
|
@@ -40,9 +40,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.init4StaticInitMethod = exports.init4InstanceInitMethod = exports.buildNormalArkClass = exports.buildNormalArkClassFromArkNamespace = exports.buildNormalArkClassFromArkFile = exports.buildNormalArkClassFromArkMethod = exports.
|
|
43
|
+
exports.registerTypeAliasTypeLiteral = exports.init4StaticInitMethod = exports.init4InstanceInitMethod = exports.buildNormalArkClass = exports.buildDefaultArkClass = exports.buildNormalArkClassFromArkNamespace = exports.buildNormalArkClassFromArkFile = exports.buildNormalArkClassFromArkMethod = exports.buildDefaultArkClassFromArkFile = exports.buildClassSignature = void 0;
|
|
44
44
|
const ArkField_1 = require("../ArkField");
|
|
45
|
+
const ArkFile_1 = require("../ArkFile");
|
|
45
46
|
const ArkMethod_1 = require("../ArkMethod");
|
|
47
|
+
const ArkNamespace_1 = require("../ArkNamespace");
|
|
46
48
|
const logger_1 = __importStar(require("../../../utils/logger"));
|
|
47
49
|
const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
|
|
48
50
|
const ArkClass_1 = require("../ArkClass");
|
|
@@ -66,23 +68,63 @@ const Constant_1 = require("../../base/Constant");
|
|
|
66
68
|
const ValueUtil_1 = require("../../common/ValueUtil");
|
|
67
69
|
const Local_1 = require("../../base/Local");
|
|
68
70
|
const ArkMetadata_1 = require("../ArkMetadata");
|
|
71
|
+
const SignatureCanonicalizerRegistry_1 = require("../../common/SignatureCanonicalizerRegistry");
|
|
69
72
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ArkClassBuilder');
|
|
70
|
-
function
|
|
71
|
-
|
|
73
|
+
function newGenClassName(declaringName, declaringInstance) {
|
|
74
|
+
if (!declaringName) {
|
|
75
|
+
let num;
|
|
76
|
+
if (declaringInstance instanceof ArkFile_1.ArkFile) {
|
|
77
|
+
num = declaringInstance.getAnonymousClassNumber();
|
|
78
|
+
}
|
|
79
|
+
else if (declaringInstance instanceof ArkNamespace_1.ArkNamespace) {
|
|
80
|
+
num = declaringInstance.getAnonymousClassNumber();
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
num = declaringInstance.getDeclaringArkFile().getAnonymousClassNumber();
|
|
84
|
+
}
|
|
85
|
+
declaringName = Const_1.ANONYMOUS_CLASS_PREFIX + num;
|
|
86
|
+
}
|
|
87
|
+
let suffix = '';
|
|
88
|
+
if (declaringInstance instanceof ArkMethod_1.ArkMethod) {
|
|
89
|
+
const methodClass = declaringInstance.getDeclaringArkClass().getName();
|
|
90
|
+
const methodName = declaringInstance.getName();
|
|
91
|
+
suffix = `${Const_1.ANONYMOUS_CLASS_DELIMITER}${methodClass}${Const_1.NESTED_CLASS_METHOD_DELIMITER}${methodName}`;
|
|
92
|
+
}
|
|
93
|
+
return declaringName + suffix;
|
|
94
|
+
}
|
|
95
|
+
function buildClassSignature(node, declaringInstance) {
|
|
96
|
+
let className;
|
|
97
|
+
if (ohos_typescript_1.default.isTypeLiteralNode(node) || ohos_typescript_1.default.isObjectLiteralExpression(node)) {
|
|
98
|
+
className = '';
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
className = newGenClassName(node.name ? (0, StringUtils_1.cloneText)(node.name.text) : '', declaringInstance);
|
|
102
|
+
}
|
|
103
|
+
let declaringFileID;
|
|
104
|
+
let declaringNsID;
|
|
105
|
+
if (declaringInstance instanceof ArkFile_1.ArkFile) {
|
|
106
|
+
declaringFileID = declaringInstance.getFileSigID();
|
|
107
|
+
}
|
|
108
|
+
else if (declaringInstance instanceof ArkNamespace_1.ArkNamespace) {
|
|
109
|
+
declaringFileID = declaringInstance.getDeclaringFileID();
|
|
110
|
+
declaringNsID = declaringInstance.getNamespaceSigID();
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
declaringFileID = declaringInstance.getDeclaringArkFileID();
|
|
114
|
+
}
|
|
115
|
+
return new ArkSignature_1.ClassSignature(className, declaringFileID, declaringNsID);
|
|
116
|
+
}
|
|
117
|
+
exports.buildClassSignature = buildClassSignature;
|
|
118
|
+
function buildDefaultArkClassFromArkFile(defaultClass, astRoot) {
|
|
72
119
|
defaultClass.setCategory(ArkClass_1.ClassCategory.CLASS);
|
|
73
120
|
buildDefaultArkClass(defaultClass, astRoot);
|
|
74
121
|
}
|
|
75
122
|
exports.buildDefaultArkClassFromArkFile = buildDefaultArkClassFromArkFile;
|
|
76
|
-
function buildDefaultArkClassFromArkNamespace(arkNamespace, defaultClass, nsNode, sourceFile) {
|
|
77
|
-
defaultClass.setDeclaringArkNamespace(arkNamespace);
|
|
78
|
-
defaultClass.setDeclaringArkFile(arkNamespace.getDeclaringArkFile());
|
|
79
|
-
buildDefaultArkClass(defaultClass, sourceFile, nsNode);
|
|
80
|
-
}
|
|
81
|
-
exports.buildDefaultArkClassFromArkNamespace = buildDefaultArkClassFromArkNamespace;
|
|
82
123
|
function buildNormalArkClassFromArkMethod(clsNode, cls, sourceFile, declaringMethod) {
|
|
83
124
|
const namespace = cls.getDeclaringArkNamespace();
|
|
84
125
|
if (namespace) {
|
|
85
|
-
buildNormalArkClassFromArkNamespace(clsNode,
|
|
126
|
+
buildNormalArkClassFromArkNamespace(clsNode, cls, sourceFile, declaringMethod);
|
|
127
|
+
namespace.addArkClass(cls);
|
|
86
128
|
}
|
|
87
129
|
else {
|
|
88
130
|
buildNormalArkClassFromArkFile(clsNode, cls.getDeclaringArkFile(), cls, sourceFile, declaringMethod);
|
|
@@ -90,7 +132,6 @@ function buildNormalArkClassFromArkMethod(clsNode, cls, sourceFile, declaringMet
|
|
|
90
132
|
}
|
|
91
133
|
exports.buildNormalArkClassFromArkMethod = buildNormalArkClassFromArkMethod;
|
|
92
134
|
function buildNormalArkClassFromArkFile(clsNode, arkFile, cls, sourceFile, declaringMethod) {
|
|
93
|
-
cls.setDeclaringArkFile(arkFile);
|
|
94
135
|
const { line, character } = ohos_typescript_1.default.getLineAndCharacterOfPosition(sourceFile, clsNode.getStart(sourceFile));
|
|
95
136
|
const endPos = ohos_typescript_1.default.getLineAndCharacterOfPosition(sourceFile, clsNode.getEnd());
|
|
96
137
|
cls.setOriginFullPosition(new Position_1.FullPosition(line + 1, character + 1, endPos.line + 1, endPos.character + 1));
|
|
@@ -98,25 +139,22 @@ function buildNormalArkClassFromArkFile(clsNode, arkFile, cls, sourceFile, decla
|
|
|
98
139
|
arkFile.addArkClass(cls);
|
|
99
140
|
}
|
|
100
141
|
exports.buildNormalArkClassFromArkFile = buildNormalArkClassFromArkFile;
|
|
101
|
-
function buildNormalArkClassFromArkNamespace(clsNode,
|
|
102
|
-
cls.setDeclaringArkNamespace(arkNamespace);
|
|
103
|
-
cls.setDeclaringArkFile(arkNamespace.getDeclaringArkFile());
|
|
142
|
+
function buildNormalArkClassFromArkNamespace(clsNode, cls, sourceFile, declaringMethod) {
|
|
104
143
|
const { line, character } = ohos_typescript_1.default.getLineAndCharacterOfPosition(sourceFile, clsNode.getStart(sourceFile));
|
|
105
144
|
const endPos = ohos_typescript_1.default.getLineAndCharacterOfPosition(sourceFile, clsNode.getEnd());
|
|
106
145
|
cls.setOriginFullPosition(new Position_1.FullPosition(line + 1, character + 1, endPos.line + 1, endPos.character + 1));
|
|
107
146
|
buildNormalArkClass(clsNode, cls, sourceFile, declaringMethod);
|
|
108
|
-
arkNamespace.addArkClass(cls);
|
|
109
147
|
}
|
|
110
148
|
exports.buildNormalArkClassFromArkNamespace = buildNormalArkClassFromArkNamespace;
|
|
111
149
|
function buildDefaultArkClass(cls, sourceFile, node) {
|
|
112
|
-
|
|
113
|
-
const defaultArkClassSignature = new ArkSignature_1.ClassSignature(Const_1.DEFAULT_ARK_CLASS_NAME, cls.getDeclaringArkFile().getFileSignature(), ((_a = cls.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
150
|
+
const defaultArkClassSignature = new ArkSignature_1.ClassSignature(Const_1.DEFAULT_ARK_CLASS_NAME, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
114
151
|
cls.setSignature(defaultArkClassSignature);
|
|
115
152
|
genDefaultArkMethod(cls, sourceFile, node);
|
|
116
153
|
}
|
|
154
|
+
exports.buildDefaultArkClass = buildDefaultArkClass;
|
|
117
155
|
function genDefaultArkMethod(cls, sourceFile, node) {
|
|
118
|
-
let defaultMethod = new ArkMethod_1.ArkMethod();
|
|
119
|
-
(0, ArkMethodBuilder_1.buildDefaultArkMethodFromArkClass)(
|
|
156
|
+
let defaultMethod = new ArkMethod_1.ArkMethod(cls.getClassSigID());
|
|
157
|
+
(0, ArkMethodBuilder_1.buildDefaultArkMethodFromArkClass)(defaultMethod, sourceFile, node);
|
|
120
158
|
cls.setDefaultArkMethod(defaultMethod);
|
|
121
159
|
}
|
|
122
160
|
function buildNormalArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
@@ -148,13 +186,11 @@ function buildNormalArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
148
186
|
}
|
|
149
187
|
exports.buildNormalArkClass = buildNormalArkClass;
|
|
150
188
|
function init4InstanceInitMethod(cls) {
|
|
151
|
-
const instanceInit = new ArkMethod_1.ArkMethod();
|
|
152
|
-
instanceInit.setDeclaringArkClass(cls);
|
|
153
|
-
instanceInit.setIsGeneratedFlag(true);
|
|
154
189
|
const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Const_1.INSTANCE_INIT_METHOD_NAME);
|
|
155
190
|
methodSubSignature.setReturnType(Type_1.VoidType.getInstance());
|
|
156
|
-
const methodSignature = new ArkSignature_1.MethodSignature(
|
|
157
|
-
instanceInit.
|
|
191
|
+
const methodSignature = new ArkSignature_1.MethodSignature(cls.getClassSigID(), methodSubSignature);
|
|
192
|
+
const instanceInit = new ArkMethod_1.ArkMethod(cls.getClassSigID(), methodSignature);
|
|
193
|
+
instanceInit.setIsGeneratedFlag(true);
|
|
158
194
|
instanceInit.setImplOriginFullPosition(new Position_1.FullPosition(0, 0, 0, 0));
|
|
159
195
|
(0, ArkMethodBuilder_1.checkAndUpdateMethod)(instanceInit, cls);
|
|
160
196
|
cls.addMethod(instanceInit);
|
|
@@ -162,14 +198,12 @@ function init4InstanceInitMethod(cls) {
|
|
|
162
198
|
}
|
|
163
199
|
exports.init4InstanceInitMethod = init4InstanceInitMethod;
|
|
164
200
|
function init4StaticInitMethod(cls) {
|
|
165
|
-
const staticInit = new ArkMethod_1.ArkMethod();
|
|
166
|
-
staticInit.setDeclaringArkClass(cls);
|
|
167
|
-
staticInit.setIsGeneratedFlag(true);
|
|
168
|
-
staticInit.setModifiers(ArkBaseModel_1.ModifierType.STATIC);
|
|
169
201
|
const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Const_1.STATIC_INIT_METHOD_NAME);
|
|
170
202
|
methodSubSignature.setReturnType(Type_1.VoidType.getInstance());
|
|
171
|
-
const methodSignature = new ArkSignature_1.MethodSignature(
|
|
172
|
-
staticInit.
|
|
203
|
+
const methodSignature = new ArkSignature_1.MethodSignature(cls.getClassSigID(), methodSubSignature);
|
|
204
|
+
const staticInit = new ArkMethod_1.ArkMethod(cls.getClassSigID(), methodSignature);
|
|
205
|
+
staticInit.setIsGeneratedFlag(true);
|
|
206
|
+
staticInit.setModifiers(ArkBaseModel_1.ModifierType.STATIC);
|
|
173
207
|
staticInit.setImplOriginFullPosition(new Position_1.FullPosition(0, 0, 0, 0));
|
|
174
208
|
(0, ArkMethodBuilder_1.checkAndUpdateMethod)(staticInit, cls);
|
|
175
209
|
cls.addMethod(staticInit);
|
|
@@ -177,16 +211,15 @@ function init4StaticInitMethod(cls) {
|
|
|
177
211
|
}
|
|
178
212
|
exports.init4StaticInitMethod = init4StaticInitMethod;
|
|
179
213
|
function buildStruct2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
180
|
-
var _a;
|
|
181
214
|
const className = genClassName(clsNode.name ? (0, StringUtils_1.cloneText)(clsNode.name.text) : '', cls, declaringMethod);
|
|
182
|
-
const classSignature = new ArkSignature_1.ClassSignature(className, cls.
|
|
215
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
183
216
|
cls.setSignature(classSignature);
|
|
184
217
|
if (clsNode.typeParameters) {
|
|
185
218
|
(0, builderUtils_1.buildTypeParameters)(clsNode.typeParameters, sourceFile, cls).forEach(typeParameter => {
|
|
186
219
|
cls.addGenericType(typeParameter);
|
|
187
220
|
});
|
|
188
221
|
}
|
|
189
|
-
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses), cls);
|
|
222
|
+
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses, sourceFile), cls);
|
|
190
223
|
cls.setModifiers((0, builderUtils_1.buildModifiers)(clsNode));
|
|
191
224
|
cls.setDecorators((0, builderUtils_1.buildDecorators)(clsNode, sourceFile));
|
|
192
225
|
registerCustomComponentIfNeeded(cls);
|
|
@@ -196,16 +229,17 @@ function buildStruct2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
196
229
|
buildArkClassMembers(clsNode, cls, sourceFile);
|
|
197
230
|
}
|
|
198
231
|
function buildClass2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
232
|
+
if (!cls.getSignature()) {
|
|
233
|
+
const className = genClassName(clsNode.name ? (0, StringUtils_1.cloneText)(clsNode.name.text) : '', cls, declaringMethod);
|
|
234
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
235
|
+
cls.setSignature(classSignature);
|
|
236
|
+
}
|
|
203
237
|
if (clsNode.typeParameters) {
|
|
204
238
|
(0, builderUtils_1.buildTypeParameters)(clsNode.typeParameters, sourceFile, cls).forEach(typeParameter => {
|
|
205
239
|
cls.addGenericType(typeParameter);
|
|
206
240
|
});
|
|
207
241
|
}
|
|
208
|
-
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses), cls);
|
|
242
|
+
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses, sourceFile), cls);
|
|
209
243
|
cls.setModifiers((0, builderUtils_1.buildModifiers)(clsNode));
|
|
210
244
|
cls.setDecorators((0, builderUtils_1.buildDecorators)(clsNode, sourceFile));
|
|
211
245
|
registerCustomComponentIfNeeded(cls);
|
|
@@ -227,30 +261,28 @@ function initHeritage(heritageClauses, cls) {
|
|
|
227
261
|
cls.addHeritageClassName(key);
|
|
228
262
|
}
|
|
229
263
|
}
|
|
230
|
-
/** Register @Component into
|
|
264
|
+
/** Register @Component into customComponentMap while the class is being built. */
|
|
231
265
|
function registerCustomComponentIfNeeded(cls) {
|
|
232
|
-
|
|
266
|
+
SignatureCanonicalizerRegistry_1.SignatureCanonicalizerRegistry.getInstance().registerCustomComponent(cls);
|
|
233
267
|
}
|
|
234
268
|
function buildInterface2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
235
|
-
var _a;
|
|
236
269
|
const className = genClassName(clsNode.name ? (0, StringUtils_1.cloneText)(clsNode.name.text) : '', cls, declaringMethod);
|
|
237
|
-
const classSignature = new ArkSignature_1.ClassSignature(className, cls.
|
|
270
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
238
271
|
cls.setSignature(classSignature);
|
|
239
272
|
if (clsNode.typeParameters) {
|
|
240
273
|
(0, builderUtils_1.buildTypeParameters)(clsNode.typeParameters, sourceFile, cls).forEach(typeParameter => {
|
|
241
274
|
cls.addGenericType(typeParameter);
|
|
242
275
|
});
|
|
243
276
|
}
|
|
244
|
-
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses), cls);
|
|
277
|
+
initHeritage((0, builderUtils_1.buildHeritageClauses)(clsNode.heritageClauses, sourceFile), cls);
|
|
245
278
|
cls.setModifiers((0, builderUtils_1.buildModifiers)(clsNode));
|
|
246
279
|
cls.setDecorators((0, builderUtils_1.buildDecorators)(clsNode, sourceFile));
|
|
247
280
|
cls.setCategory(ArkClass_1.ClassCategory.INTERFACE);
|
|
248
281
|
buildArkClassMembers(clsNode, cls, sourceFile);
|
|
249
282
|
}
|
|
250
283
|
function buildEnum2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
251
|
-
var _a;
|
|
252
284
|
const className = genClassName(clsNode.name ? (0, StringUtils_1.cloneText)(clsNode.name.text) : '', cls, declaringMethod);
|
|
253
|
-
const classSignature = new ArkSignature_1.ClassSignature(className, cls.
|
|
285
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
254
286
|
cls.setSignature(classSignature);
|
|
255
287
|
cls.setModifiers((0, builderUtils_1.buildModifiers)(clsNode));
|
|
256
288
|
cls.setDecorators((0, builderUtils_1.buildDecorators)(clsNode, sourceFile));
|
|
@@ -258,40 +290,52 @@ function buildEnum2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
|
258
290
|
init4StaticInitMethod(cls);
|
|
259
291
|
buildArkClassMembers(clsNode, cls, sourceFile);
|
|
260
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* The type alias a type literal is the direct type of, recorded where the declaration is met.
|
|
295
|
+
* Signature building parses without parent pointers, so the relation cannot be read back off the
|
|
296
|
+
* tree there; the body build keeps its pointers and falls back to `parent` below.
|
|
297
|
+
*/
|
|
298
|
+
const typeAliasOfTypeLiteral = new WeakMap();
|
|
299
|
+
function registerTypeAliasTypeLiteral(node) {
|
|
300
|
+
if (ohos_typescript_1.default.isTypeLiteralNode(node.type)) {
|
|
301
|
+
typeAliasOfTypeLiteral.set(node.type, node);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.registerTypeAliasTypeLiteral = registerTypeAliasTypeLiteral;
|
|
261
305
|
function buildTypeLiteralNode2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
262
306
|
var _a;
|
|
263
307
|
const className = genClassName('', cls, declaringMethod);
|
|
264
|
-
const classSignature = new ArkSignature_1.ClassSignature(className, cls.
|
|
308
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
265
309
|
cls.setSignature(classSignature);
|
|
266
310
|
cls.setCategory(ArkClass_1.ClassCategory.TYPE_LITERAL);
|
|
267
|
-
|
|
268
|
-
|
|
311
|
+
const enclosingAlias = (_a = typeAliasOfTypeLiteral.get(clsNode)) !== null && _a !== void 0 ? _a : (clsNode.parent !== undefined && ohos_typescript_1.default.isTypeAliasDeclaration(clsNode.parent) ? clsNode.parent : undefined);
|
|
312
|
+
if (enclosingAlias === null || enclosingAlias === void 0 ? void 0 : enclosingAlias.typeParameters) {
|
|
313
|
+
(0, builderUtils_1.buildTypeParameters)(enclosingAlias.typeParameters, sourceFile, cls).forEach(typeParameter => {
|
|
269
314
|
cls.addGenericType(typeParameter);
|
|
270
315
|
});
|
|
271
316
|
}
|
|
272
317
|
buildArkClassMembers(clsNode, cls, sourceFile);
|
|
273
318
|
}
|
|
274
319
|
function buildObjectLiteralExpression2ArkClass(clsNode, cls, sourceFile, declaringMethod) {
|
|
275
|
-
var _a;
|
|
276
320
|
const className = genClassName('', cls, declaringMethod);
|
|
277
|
-
const classSignature = new ArkSignature_1.ClassSignature(className, cls.
|
|
321
|
+
const classSignature = new ArkSignature_1.ClassSignature(className, cls.getDeclaringFileID(), cls.getDeclaringArkNamespaceID());
|
|
278
322
|
cls.setSignature(classSignature);
|
|
279
323
|
cls.setCategory(ArkClass_1.ClassCategory.OBJECT);
|
|
280
324
|
let arkMethods = [];
|
|
281
325
|
init4InstanceInitMethod(cls);
|
|
282
|
-
const instanceIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.
|
|
326
|
+
const instanceIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.getInstanceInitMethodOrNull());
|
|
283
327
|
const instanceFieldInitializerStmts = [];
|
|
284
328
|
clsNode.properties.forEach(property => {
|
|
285
329
|
if (ohos_typescript_1.default.isPropertyAssignment(property) || ohos_typescript_1.default.isShorthandPropertyAssignment(property) || ohos_typescript_1.default.isSpreadAssignment(property)) {
|
|
286
330
|
(0, ArkFieldBuilder_1.buildProperty2ArkField)(property, sourceFile, cls);
|
|
287
331
|
}
|
|
288
332
|
else {
|
|
289
|
-
|
|
290
|
-
arkMethod.setDeclaringArkClass(cls);
|
|
333
|
+
const arkMethod = new ArkMethod_1.ArkMethod(cls.getClassSigID());
|
|
291
334
|
(0, ArkMethodBuilder_1.buildArkMethodFromArkClass)(property, cls, arkMethod, sourceFile);
|
|
335
|
+
arkMethods.push(arkMethod);
|
|
292
336
|
}
|
|
293
337
|
});
|
|
294
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.
|
|
338
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethodOrNull(), instanceFieldInitializerStmts, instanceIRTransformer.getThisLocal(), instanceIRTransformer.getGlobals());
|
|
295
339
|
arkMethods.forEach(mtd => {
|
|
296
340
|
(0, ArkMethodBuilder_1.checkAndUpdateMethod)(mtd, cls);
|
|
297
341
|
cls.addMethod(mtd);
|
|
@@ -320,11 +364,11 @@ function buildArkClassMembers(clsNode, cls, sourceFile) {
|
|
|
320
364
|
let instanceIRTransformer;
|
|
321
365
|
let staticIRTransformer;
|
|
322
366
|
if (ohos_typescript_1.default.isClassDeclaration(clsNode) || ohos_typescript_1.default.isClassExpression(clsNode) || ohos_typescript_1.default.isStructDeclaration(clsNode)) {
|
|
323
|
-
instanceIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.
|
|
324
|
-
staticIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.
|
|
367
|
+
instanceIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.getInstanceInitMethodOrNull());
|
|
368
|
+
staticIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.getStaticInitMethodOrNull());
|
|
325
369
|
}
|
|
326
370
|
if (ohos_typescript_1.default.isEnumDeclaration(clsNode)) {
|
|
327
|
-
staticIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.
|
|
371
|
+
staticIRTransformer = new ArkIRTransformer_1.ArkIRTransformer(sourceFile, cls.getStaticInitMethodOrNull());
|
|
328
372
|
}
|
|
329
373
|
const staticInitStmts = [];
|
|
330
374
|
const instanceInitStmts = [];
|
|
@@ -369,15 +413,15 @@ function buildArkClassMembers(clsNode, cls, sourceFile) {
|
|
|
369
413
|
logger.trace('Skip these members.');
|
|
370
414
|
}
|
|
371
415
|
else {
|
|
372
|
-
logger.warn(`Please contact developers to support new member in class: ${cls.getSignature().toString()}, member: ${(0, StringUtils_1.cloneText)(member.getText())}!`);
|
|
416
|
+
logger.warn(`Please contact developers to support new member in class: ${cls.getSignature().toString()}, member: ${(0, StringUtils_1.cloneText)(member.getText(sourceFile))}!`);
|
|
373
417
|
}
|
|
374
418
|
});
|
|
375
419
|
if (ohos_typescript_1.default.isClassDeclaration(clsNode) || ohos_typescript_1.default.isClassExpression(clsNode) || ohos_typescript_1.default.isStructDeclaration(clsNode)) {
|
|
376
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.
|
|
377
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.
|
|
420
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethodOrNull(), instanceInitStmts, instanceIRTransformer.getThisLocal(), instanceIRTransformer.getGlobals());
|
|
421
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethodOrNull(), staticInitStmts, staticIRTransformer.getThisLocal(), staticIRTransformer.getGlobals());
|
|
378
422
|
}
|
|
379
423
|
if (ohos_typescript_1.default.isEnumDeclaration(clsNode)) {
|
|
380
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.
|
|
424
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethodOrNull(), staticInitStmts, staticIRTransformer.getThisLocal(), staticIRTransformer.getGlobals());
|
|
381
425
|
}
|
|
382
426
|
}
|
|
383
427
|
function isClassMethod(member) {
|
|
@@ -396,7 +440,7 @@ function buildMethodsForClass(clsNode, cls, sourceFile) {
|
|
|
396
440
|
ohos_typescript_1.default.isConstructSignatureDeclaration(member) ||
|
|
397
441
|
ohos_typescript_1.default.isAccessor(member) ||
|
|
398
442
|
ohos_typescript_1.default.isCallSignatureDeclaration(member)) {
|
|
399
|
-
let mthd = new ArkMethod_1.ArkMethod();
|
|
443
|
+
let mthd = new ArkMethod_1.ArkMethod(cls.getClassSigID());
|
|
400
444
|
(0, ArkMethodBuilder_1.buildArkMethodFromArkClass)(member, cls, mthd, sourceFile);
|
|
401
445
|
if (ohos_typescript_1.default.isConstructorDeclaration(member)) {
|
|
402
446
|
buildParameterProperty2ArkField(member.parameters, cls, sourceFile);
|
|
@@ -429,8 +473,7 @@ function buildParameterProperty2ArkField(params, cls, sourceFile) {
|
|
|
429
473
|
if (parameter.modifiers === undefined || !ohos_typescript_1.default.isIdentifier(parameter.name)) {
|
|
430
474
|
return;
|
|
431
475
|
}
|
|
432
|
-
let field = new ArkField_1.ArkField();
|
|
433
|
-
field.setDeclaringArkClass(cls);
|
|
476
|
+
let field = new ArkField_1.ArkField(cls.getClassSigID());
|
|
434
477
|
field.setCategory(ArkField_1.FieldCategory.PARAMETER_PROPERTY);
|
|
435
478
|
field.setOriginFullPosition(Position_1.FullPosition.buildFromNode(parameter, sourceFile));
|
|
436
479
|
let fieldType;
|
|
@@ -440,7 +483,7 @@ function buildParameterProperty2ArkField(params, cls, sourceFile) {
|
|
|
440
483
|
else {
|
|
441
484
|
fieldType = Type_1.UnknownType.getInstance();
|
|
442
485
|
}
|
|
443
|
-
const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.
|
|
486
|
+
const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.getClassSigID(), fieldType, false);
|
|
444
487
|
field.setSignature(fieldSignature);
|
|
445
488
|
field.setModifiers((0, builderUtils_1.buildModifiers)(parameter));
|
|
446
489
|
if (parameter.questionToken) {
|
|
@@ -454,15 +497,12 @@ function buildStaticBlocksForClass(clsNode, cls, sourceFile) {
|
|
|
454
497
|
const staticBlockMethodSignatures = [];
|
|
455
498
|
clsNode.members.forEach(member => {
|
|
456
499
|
if (ohos_typescript_1.default.isClassStaticBlockDeclaration(member)) {
|
|
457
|
-
const staticBlockMethod = new ArkMethod_1.ArkMethod();
|
|
458
|
-
staticBlockMethod.setDeclaringArkClass(cls);
|
|
459
|
-
staticBlockMethod.setIsGeneratedFlag(true);
|
|
460
|
-
staticBlockMethod.setImplOriginFullPosition(Position_1.FullPosition.buildFromNode(member, sourceFile));
|
|
461
500
|
const methodName = Const_1.STATIC_BLOCK_METHOD_NAME_PREFIX + staticInitBlockId++;
|
|
462
501
|
const methodSubSignature = new ArkSignature_1.MethodSubSignature(methodName, [], Type_1.VoidType.getInstance(), true);
|
|
463
|
-
const methodSignature = new ArkSignature_1.MethodSignature(cls.
|
|
502
|
+
const methodSignature = new ArkSignature_1.MethodSignature(cls.getClassSigID(), methodSubSignature);
|
|
464
503
|
staticBlockMethodSignatures.push(methodSignature);
|
|
465
|
-
staticBlockMethod.
|
|
504
|
+
const staticBlockMethod = new ArkMethod_1.ArkMethod(cls.getClassSigID(), methodSignature);
|
|
505
|
+
staticBlockMethod.setIsGeneratedFlag(true);
|
|
466
506
|
staticBlockMethod.setImplOriginFullPosition(Position_1.FullPosition.buildFromNode(member, sourceFile));
|
|
467
507
|
let bodyBuilder = new BodyBuilder_1.BodyBuilder(staticBlockMethod.getSignature(), member, staticBlockMethod, sourceFile);
|
|
468
508
|
staticBlockMethod.setBodyBuilder(bodyBuilder);
|
|
@@ -482,6 +522,11 @@ function getInitStmts(transformer, field, initNode, enumFieldInfo) {
|
|
|
482
522
|
const assignStmt = new Stmt_1.ArkAssignStmt(fieldRef, initValue);
|
|
483
523
|
assignStmt.setOperandOriginalPositions([...fieldRefPositions, ...initPositions]);
|
|
484
524
|
stmts.push(assignStmt);
|
|
525
|
+
const declaredType = field.getSignature().getType();
|
|
526
|
+
const unifiedType = (0, builderUtils_1.unifyDeclaredTypeWithInitializer)(declaredType, initValue.getType());
|
|
527
|
+
if (unifiedType !== declaredType) {
|
|
528
|
+
field.getSignature().setType(unifiedType);
|
|
529
|
+
}
|
|
485
530
|
setFieldInitPositionInfo(field, stmts, initValue);
|
|
486
531
|
}
|
|
487
532
|
function processInitValue(transformer, field, initNode, enumFieldInfo, stmts) {
|
|
@@ -530,12 +575,13 @@ function createEnumInitValue(field, enumFieldInfo) {
|
|
|
530
575
|
}
|
|
531
576
|
function setFieldInitPositionInfo(field, stmts, initValue) {
|
|
532
577
|
const fieldOriginPosition = field.getOriginFullPosition();
|
|
533
|
-
|
|
578
|
+
const fieldInitStmts = stmts.filter(stmt => !(stmt instanceof ArkIRTransformer_1.DummyStmt));
|
|
579
|
+
for (const stmt of fieldInitStmts) {
|
|
534
580
|
if (!stmt.getOriginFullPosition()) {
|
|
535
581
|
stmt.setOriginFullPosition(fieldOriginPosition);
|
|
536
582
|
}
|
|
537
583
|
}
|
|
538
|
-
field.setInitializer(
|
|
584
|
+
field.setInitializer(fieldInitStmts);
|
|
539
585
|
if (field.getType() instanceof Type_1.UnknownType) {
|
|
540
586
|
field.getSignature().setType(initValue.getType());
|
|
541
587
|
}
|
|
@@ -5,7 +5,7 @@ import { ArkFile } from '../ArkFile';
|
|
|
5
5
|
import { ArkNamespace } from '../ArkNamespace';
|
|
6
6
|
export { buildExportInfo, buildExportAssignment, buildExportDeclaration };
|
|
7
7
|
declare function buildExportInfo(arkInstance: ArkExport, arkFile: ArkFile, position: FullPosition): ExportInfo;
|
|
8
|
-
export declare function buildDefaultExportInfo(im: FromInfo, file: ArkFile, arkExport?: ArkExport): ExportInfo;
|
|
8
|
+
export declare function buildDefaultExportInfo(im: FromInfo, file: ArkFile, arkExport?: ArkExport | null): ExportInfo;
|
|
9
9
|
declare function buildExportDeclaration(node: ts.ExportDeclaration, sourceFile: ts.SourceFile, arkFile: ArkFile): ExportInfo[];
|
|
10
10
|
declare function buildExportAssignment(node: ts.ExportAssignment, sourceFile: ts.SourceFile, arkFile: ArkFile): ExportInfo[];
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkExportBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkExportBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAMrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;AAQ1E,iBAAS,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,CAerG;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"ArkExportBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkExportBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAMrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;AAQ1E,iBAAS,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,CAerG;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,UAAU,CAO5G;AAED,iBAAS,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAgDrH;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAoCnH;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,EAAE,CAiB5J;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAcxI;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,OAAO,CAU5F"}
|
|
@@ -130,7 +130,7 @@ function buildExportAssignment(node, sourceFile, arkFile) {
|
|
|
130
130
|
.setLeadingComments(IRUtils_1.IRUtils.getCommentsMetadata(node, sourceFile, arkFile.getScene().getOptions(), true))
|
|
131
131
|
.setTrailingComments(IRUtils_1.IRUtils.getCommentsMetadata(node, sourceFile, arkFile.getScene().getOptions(), false));
|
|
132
132
|
if (ohos_typescript_1.default.isNewExpression(node.expression) && ohos_typescript_1.default.isClassExpression(node.expression.expression)) {
|
|
133
|
-
let cls = new ArkClass_1.ArkClass();
|
|
133
|
+
let cls = new ArkClass_1.ArkClass(arkFile.getFileSigID());
|
|
134
134
|
(0, ArkClassBuilder_1.buildNormalArkClassFromArkFile)(node.expression.expression, arkFile, cls, sourceFile);
|
|
135
135
|
}
|
|
136
136
|
if (ohos_typescript_1.default.isIdentifier(node.expression)) {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import ts from 'ohos-typescript';
|
|
2
2
|
import { ArkField } from '../ArkField';
|
|
3
3
|
import { ArkClass } from '../ArkClass';
|
|
4
|
-
import { ArkMethod } from '../ArkMethod';
|
|
5
4
|
export type PropertyLike = ts.PropertyDeclaration | ts.PropertyAssignment;
|
|
6
5
|
export declare function buildProperty2ArkField(member: ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.PropertySignature | ts.EnumMember, sourceFile: ts.SourceFile, cls: ArkClass): ArkField;
|
|
7
6
|
export declare function buildIndexSignature2ArkField(member: ts.IndexSignatureDeclaration, sourceFile: ts.SourceFile, cls: ArkClass): void;
|
|
8
|
-
export declare function buildGetAccessor2ArkField(member: ts.GetAccessorDeclaration, mthd: ArkMethod, sourceFile: ts.SourceFile): void;
|
|
9
7
|
//# sourceMappingURL=ArkFieldBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkFieldBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFieldBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkFieldBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFieldBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWvC,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,CAAC;AAE1E,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,2BAA2B,GAAG,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAAC,UAAU,EACpJ,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,GAAG,EAAE,QAAQ,GACd,QAAQ,CAkDV;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAmBjI"}
|
|
@@ -40,7 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.
|
|
43
|
+
exports.buildIndexSignature2ArkField = exports.buildProperty2ArkField = void 0;
|
|
44
44
|
const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
|
|
45
45
|
const ArkField_1 = require("../ArkField");
|
|
46
46
|
const logger_1 = __importStar(require("../../../utils/logger"));
|
|
@@ -53,9 +53,8 @@ const ArkBaseModel_1 = require("../ArkBaseModel");
|
|
|
53
53
|
const IRUtils_1 = require("../../common/IRUtils");
|
|
54
54
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ArkFieldBuilder');
|
|
55
55
|
function buildProperty2ArkField(member, sourceFile, cls) {
|
|
56
|
-
let field = new ArkField_1.ArkField();
|
|
56
|
+
let field = new ArkField_1.ArkField(cls.getClassSigID());
|
|
57
57
|
field.setCategory(mapSyntaxKindToFieldOriginType(member.kind));
|
|
58
|
-
field.setDeclaringArkClass(cls);
|
|
59
58
|
field.setOriginFullPosition(Position_1.FullPosition.buildFromNode(member, sourceFile));
|
|
60
59
|
let fieldName = (0, StringUtils_1.cloneText)(member.getText(sourceFile));
|
|
61
60
|
if (member.name && ohos_typescript_1.default.isComputedPropertyName(member.name)) {
|
|
@@ -66,7 +65,7 @@ function buildProperty2ArkField(member, sourceFile, cls) {
|
|
|
66
65
|
fieldName = (0, builderUtils_1.handlePropertyAccessExpression)(member.name.expression);
|
|
67
66
|
}
|
|
68
67
|
else {
|
|
69
|
-
logger.warn(`Other property expression type found: ${(0, StringUtils_1.cloneText)(member.name.expression.getText())}!`);
|
|
68
|
+
logger.warn(`Other property expression type found: ${(0, StringUtils_1.cloneText)(member.name.expression.getText(sourceFile))}!`);
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
else if (member.name && (ohos_typescript_1.default.isIdentifier(member.name) || ohos_typescript_1.default.isLiteralExpression(member.name))) {
|
|
@@ -78,7 +77,7 @@ function buildProperty2ArkField(member, sourceFile, cls) {
|
|
|
78
77
|
field.addModifier(ArkBaseModel_1.ModifierType.PRIVATE);
|
|
79
78
|
}
|
|
80
79
|
else {
|
|
81
|
-
logger.warn(`Other type of property name found: ${(0, StringUtils_1.cloneText)(member.getText())}!`);
|
|
80
|
+
logger.warn(`Other type of property name found: ${(0, StringUtils_1.cloneText)(member.getText(sourceFile))}!`);
|
|
82
81
|
}
|
|
83
82
|
let fieldType = Type_1.UnknownType.getInstance();
|
|
84
83
|
if (ohos_typescript_1.default.isPropertyDeclaration(member) || ohos_typescript_1.default.isPropertySignature(member)) {
|
|
@@ -96,7 +95,7 @@ function buildProperty2ArkField(member, sourceFile, cls) {
|
|
|
96
95
|
field.addModifier(ArkBaseModel_1.ModifierType.STATIC);
|
|
97
96
|
fieldType = new Type_1.ClassType(cls.getSignature());
|
|
98
97
|
}
|
|
99
|
-
field.setSignature(new ArkSignature_1.FieldSignature(fieldName, cls.
|
|
98
|
+
field.setSignature(new ArkSignature_1.FieldSignature(fieldName, cls.getClassSigID(), fieldType, field.isStatic()));
|
|
100
99
|
if (ohos_typescript_1.default.isPropertyDeclaration(member) && member.exclamationToken) {
|
|
101
100
|
field.setExclamationToken(true);
|
|
102
101
|
}
|
|
@@ -106,9 +105,8 @@ function buildProperty2ArkField(member, sourceFile, cls) {
|
|
|
106
105
|
}
|
|
107
106
|
exports.buildProperty2ArkField = buildProperty2ArkField;
|
|
108
107
|
function buildIndexSignature2ArkField(member, sourceFile, cls) {
|
|
109
|
-
const field = new ArkField_1.ArkField();
|
|
108
|
+
const field = new ArkField_1.ArkField(cls.getClassSigID());
|
|
110
109
|
field.setCategory(mapSyntaxKindToFieldOriginType(member.kind));
|
|
111
|
-
field.setDeclaringArkClass(cls);
|
|
112
110
|
field.setOriginFullPosition(Position_1.FullPosition.buildFromNode(member, sourceFile));
|
|
113
111
|
if (member.modifiers) {
|
|
114
112
|
let modifier = (0, builderUtils_1.buildModifiers)(member);
|
|
@@ -116,46 +114,14 @@ function buildIndexSignature2ArkField(member, sourceFile, cls) {
|
|
|
116
114
|
}
|
|
117
115
|
const fieldName = '[' + (0, StringUtils_1.cloneText)(member.parameters[0].getText(sourceFile)) + ']';
|
|
118
116
|
const fieldType = (0, builderUtils_1.buildGenericType)((0, builderUtils_1.tsNode2Type)(member.type, sourceFile, field), field);
|
|
119
|
-
|
|
117
|
+
// staticFlag 与 addField 分流基准(field.isStatic(),读 modifier)保持一致——index-signature 是实例成员(obj[key] 访问)。硬编码 true 会导致
|
|
118
|
+
// 签名 flag 与 isStatic() 分裂(addField 分流进 instance 数组而签名 flag=true),签名值直查(getFieldWithName)下必 miss。
|
|
119
|
+
const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.getClassSigID(), fieldType, field.isStatic());
|
|
120
120
|
field.setSignature(fieldSignature);
|
|
121
121
|
IRUtils_1.IRUtils.setComments(field, member, sourceFile, cls.getDeclaringArkFile().getScene().getOptions());
|
|
122
122
|
cls.addField(field);
|
|
123
123
|
}
|
|
124
124
|
exports.buildIndexSignature2ArkField = buildIndexSignature2ArkField;
|
|
125
|
-
function buildGetAccessor2ArkField(member, mthd, sourceFile) {
|
|
126
|
-
let cls = mthd.getDeclaringArkClass();
|
|
127
|
-
let field = new ArkField_1.ArkField();
|
|
128
|
-
field.setDeclaringArkClass(cls);
|
|
129
|
-
field.setCategory(mapSyntaxKindToFieldOriginType(member.kind));
|
|
130
|
-
field.setOriginFullPosition(Position_1.FullPosition.buildFromNode(member, sourceFile));
|
|
131
|
-
let fieldName = (0, StringUtils_1.cloneText)(member.getText(sourceFile));
|
|
132
|
-
if (ohos_typescript_1.default.isIdentifier(member.name) || ohos_typescript_1.default.isLiteralExpression(member.name)) {
|
|
133
|
-
fieldName = (0, StringUtils_1.cloneText)(member.name.text);
|
|
134
|
-
}
|
|
135
|
-
else if (ohos_typescript_1.default.isComputedPropertyName(member.name)) {
|
|
136
|
-
if (ohos_typescript_1.default.isIdentifier(member.name.expression)) {
|
|
137
|
-
let propertyName = (0, StringUtils_1.cloneText)(member.name.expression.text);
|
|
138
|
-
fieldName = propertyName;
|
|
139
|
-
}
|
|
140
|
-
else if (ohos_typescript_1.default.isPropertyAccessExpression(member.name.expression)) {
|
|
141
|
-
fieldName = (0, builderUtils_1.handlePropertyAccessExpression)(member.name.expression);
|
|
142
|
-
}
|
|
143
|
-
else if (ohos_typescript_1.default.isLiteralExpression(member.name.expression)) {
|
|
144
|
-
fieldName = (0, StringUtils_1.cloneText)(member.name.expression.text);
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
logger.warn('Other type of computed property name found!');
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
logger.warn('Please contact developers to support new type of GetAccessor name!');
|
|
152
|
-
}
|
|
153
|
-
const fieldType = mthd.getReturnType();
|
|
154
|
-
const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.getSignature(), fieldType, false);
|
|
155
|
-
field.setSignature(fieldSignature);
|
|
156
|
-
cls.addField(field);
|
|
157
|
-
}
|
|
158
|
-
exports.buildGetAccessor2ArkField = buildGetAccessor2ArkField;
|
|
159
125
|
function mapSyntaxKindToFieldOriginType(syntaxKind) {
|
|
160
126
|
let fieldOriginType = null;
|
|
161
127
|
switch (syntaxKind) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkFileBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFileBuilder.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkFileBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFileBuilder.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AA2B/C,eAAO,MAAM,iBAAiB,UAiB7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA0B9H;AA2GD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcpE;AAgCD;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcrE"}
|