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
package/lib/core/base/Local.js
CHANGED
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Local = void 0;
|
|
18
18
|
const Type_1 = require("./Type");
|
|
19
|
+
const Value_1 = require("./Value");
|
|
19
20
|
const TypeInference_1 = require("../common/TypeInference");
|
|
20
21
|
const ArkExport_1 = require("../model/ArkExport");
|
|
21
22
|
const ArkSignature_1 = require("../model/ArkSignature");
|
|
22
|
-
const ArkSignatureBuilder_1 = require("../model/builder/ArkSignatureBuilder");
|
|
23
23
|
const Const_1 = require("../common/Const");
|
|
24
24
|
const ArkBaseModel_1 = require("../model/ArkBaseModel");
|
|
25
25
|
const ModelUtils_1 = require("../common/ModelUtils");
|
|
@@ -33,45 +33,30 @@ class Local {
|
|
|
33
33
|
this.type = type;
|
|
34
34
|
this.originalValue = null;
|
|
35
35
|
this.declaringStmt = null;
|
|
36
|
-
this.usedStmts = [];
|
|
37
36
|
}
|
|
38
37
|
inferType(arkMethod) {
|
|
39
|
-
var _a
|
|
38
|
+
var _a;
|
|
40
39
|
if (this.name === TSConst_1.THIS_NAME && this.type instanceof Type_1.UnknownType) {
|
|
41
40
|
const declaringArkClass = arkMethod.getDeclaringArkClass();
|
|
42
41
|
this.type = new Type_1.ClassType(declaringArkClass.getSignature(), declaringArkClass.getRealTypes());
|
|
43
42
|
}
|
|
44
43
|
else if (!this.name.startsWith(Const_1.NAME_PREFIX) && TypeInference_1.TypeInference.isUnclearType(this.type)) {
|
|
45
|
-
const type = (_a = TypeInference_1.TypeInference.inferBaseType(this.name, arkMethod.getDeclaringArkClass())) !== null && _a !== void 0 ? _a :
|
|
44
|
+
const type = (_a = TypeInference_1.TypeInference.inferBaseType(this.name, arkMethod.getDeclaringArkClass())) !== null && _a !== void 0 ? _a : ModelUtils_1.ModelUtils.findDeclaredLocalType(this.name, arkMethod);
|
|
46
45
|
if (type) {
|
|
47
46
|
this.type = type;
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
if (this.type instanceof Type_1.FunctionType) {
|
|
51
|
-
this.type
|
|
50
|
+
this.type
|
|
51
|
+
.getMethodSignature()
|
|
52
|
+
.getMethodSubSignature()
|
|
53
|
+
.getParameters()
|
|
52
54
|
.forEach(p => TypeInference_1.TypeInference.inferParameterType(p, arkMethod));
|
|
53
55
|
TypeInference_1.TypeInference.inferSignatureReturnType(this.type.getMethodSignature(), arkMethod);
|
|
54
56
|
}
|
|
55
57
|
return this;
|
|
56
58
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Returns the name of local value.
|
|
59
|
-
* @returns The name of local value.
|
|
60
|
-
* @example
|
|
61
|
-
* 1. get the name of local value.
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
arkClass.getDefaultArkMethod()?.getBody().getLocals().forEach(local => {
|
|
65
|
-
const arkField = new ArkField();
|
|
66
|
-
arkField.setFieldType(ArkField.DEFAULT_ARK_Field);
|
|
67
|
-
arkField.setDeclaringClass(defaultClass);
|
|
68
|
-
arkField.setType(local.getType());
|
|
69
|
-
arkField.setName(local.getName());
|
|
70
|
-
arkField.genSignature();
|
|
71
|
-
defaultClass.addField(arkField);
|
|
72
|
-
});
|
|
73
|
-
```
|
|
74
|
-
*/
|
|
59
|
+
/** Returns the name of local value. */
|
|
75
60
|
getName() {
|
|
76
61
|
return this.name;
|
|
77
62
|
}
|
|
@@ -122,21 +107,33 @@ class Local {
|
|
|
122
107
|
* Returns an **array** of values which are contained in this local.
|
|
123
108
|
* @returns An **array** of values used by this local.
|
|
124
109
|
*/
|
|
125
|
-
getUses() {
|
|
126
|
-
return
|
|
110
|
+
getUses(acc) {
|
|
111
|
+
return acc !== null && acc !== void 0 ? acc : Value_1.EMPTY_USES;
|
|
127
112
|
}
|
|
128
113
|
addUsedStmt(usedStmt) {
|
|
129
|
-
|
|
114
|
+
var _a;
|
|
115
|
+
((_a = this._usedStmts) !== null && _a !== void 0 ? _a : (this._usedStmts = [])).push(usedStmt);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The statements using this local, exposed as a property so that consumers reading the field
|
|
119
|
+
* directly keep seeing an array; same value as {@link getUsedStmts}.
|
|
120
|
+
*/
|
|
121
|
+
get usedStmts() {
|
|
122
|
+
var _a;
|
|
123
|
+
return (_a = this._usedStmts) !== null && _a !== void 0 ? _a : Value_1.EMPTY_USED_STMTS;
|
|
130
124
|
}
|
|
131
125
|
/**
|
|
132
126
|
* Returns an array of statements used by the local, i.e., the statements in which the local participate.
|
|
133
127
|
* For example, if the code snippet is `let dd = cc + 5;` where `cc` is a local and `cc` only appears once,
|
|
134
128
|
* then the length of **array** returned is 1 and `Stmts[0]` will be same as the example described
|
|
135
129
|
* in the `Local.getDeclaringStmt()`.
|
|
130
|
+
* The backing list is allocated on the first {@link addUsedStmt}, so a local nobody uses yields
|
|
131
|
+
* the shared read-only empty array instead of allocating one.
|
|
136
132
|
* @returns An array of statements used by the local.
|
|
137
133
|
*/
|
|
138
134
|
getUsedStmts() {
|
|
139
|
-
|
|
135
|
+
var _a;
|
|
136
|
+
return (_a = this._usedStmts) !== null && _a !== void 0 ? _a : Value_1.EMPTY_USED_STMTS;
|
|
140
137
|
}
|
|
141
138
|
/**
|
|
142
139
|
* Get a string of local name in Local
|
|
@@ -168,7 +165,7 @@ class Local {
|
|
|
168
165
|
}
|
|
169
166
|
getSignature() {
|
|
170
167
|
var _a;
|
|
171
|
-
return (
|
|
168
|
+
return (_a = this.signature) !== null && _a !== void 0 ? _a : new ArkSignature_1.LocalSignature(this.name, ArkSignature_1.MethodSignature.DEFAULT);
|
|
172
169
|
}
|
|
173
170
|
setSignature(signature) {
|
|
174
171
|
this.signature = signature;
|
|
@@ -33,6 +33,12 @@ export declare class FullPosition {
|
|
|
33
33
|
getLastLine(): number;
|
|
34
34
|
getFirstCol(): number;
|
|
35
35
|
getLastCol(): number;
|
|
36
|
+
/** @internal Raw packed line/col word of the range start, for compact storage. */
|
|
37
|
+
getFirstPacked(): LineCol;
|
|
38
|
+
/** @internal Raw packed line/col word of the range end, for compact storage. */
|
|
39
|
+
getLastPacked(): LineCol;
|
|
40
|
+
/** @internal Rebuild a position from raw packed words produced by getFirstPacked/getLastPacked. */
|
|
41
|
+
static fromPacked(first: LineCol, last: LineCol): FullPosition;
|
|
36
42
|
static buildFromNode(node: ts.Node, sourceFile: ts.SourceFile): FullPosition;
|
|
37
43
|
/**
|
|
38
44
|
*Building a FullPosition object from a C++AST node
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Position.d.ts","sourceRoot":"","sources":["../../../src/core/base/Position.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAU/F,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUjE;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAU/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjE;
|
|
1
|
+
{"version":3,"file":"Position.d.ts","sourceRoot":"","sources":["../../../src/core/base/Position.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAU/F,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUjE;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAU/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjE;AAgBD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAMlD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC,gBAAuB,OAAO,EAAE,eAAe,CAAmD;gBAEtF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIlC,SAAS,IAAI,MAAM;IAInB,QAAQ,IAAI,MAAM;WAIX,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe;IAQtF;;;;OAIG;WACW,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,GAAG,eAAe;CAIlF;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,gBAAuB,OAAO,EAAE,YAAY,CAA4E;gBAE5G,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK3E,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;IAI3B,kFAAkF;IAC3E,cAAc,IAAI,OAAO;IAIhC,gFAAgF;IACzE,aAAa,IAAI,OAAO;IAI/B,mGAAmG;WACrF,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,YAAY;WAIvD,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,YAAY;IAWnF;;;;;OAKG;WACW,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,EAAE,WAAW,EAAE,wBAAwB,GAAG,YAAY;WAUjH,KAAK,CAAC,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,GAAG,YAAY;CAQrG"}
|
|
@@ -36,12 +36,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
36
36
|
__setModuleDefault(result, mod);
|
|
37
37
|
return result;
|
|
38
38
|
};
|
|
39
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
-
};
|
|
42
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
40
|
exports.FullPosition = exports.LineColPosition = exports.getColNo = exports.getLineNo = exports.setLineCol = exports.setCol = exports.setLine = exports.INVALID_LINE = void 0;
|
|
44
|
-
const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
|
|
45
41
|
const logger_1 = __importStar(require("../../utils/logger"));
|
|
46
42
|
const cppUtils_1 = require("../../frontend/cppFrontend/utils/cppUtils");
|
|
47
43
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Position');
|
|
@@ -80,6 +76,20 @@ function setLineCol(lineNo, colNo) {
|
|
|
80
76
|
return lineCol;
|
|
81
77
|
}
|
|
82
78
|
exports.setLineCol = setLineCol;
|
|
79
|
+
function lineIndexOfPosition(lineStarts, position) {
|
|
80
|
+
let lo = 0;
|
|
81
|
+
let hi = lineStarts.length - 1;
|
|
82
|
+
while (lo < hi) {
|
|
83
|
+
const mid = (lo + hi + 1) >>> 1;
|
|
84
|
+
if (lineStarts[mid] <= position) {
|
|
85
|
+
lo = mid;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
hi = mid - 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return lo;
|
|
92
|
+
}
|
|
83
93
|
function getLineNo(lineCol) {
|
|
84
94
|
let line = lineCol >>> LOW_BITS_SIZE;
|
|
85
95
|
if (line === MIN_NUMBER) {
|
|
@@ -110,9 +120,11 @@ class LineColPosition {
|
|
|
110
120
|
return getColNo(this.lineCol);
|
|
111
121
|
}
|
|
112
122
|
static buildFromNode(node, sourceFile) {
|
|
113
|
-
|
|
123
|
+
const lineStarts = sourceFile.getLineStarts();
|
|
124
|
+
const offset = node.getStart(sourceFile);
|
|
125
|
+
const line = lineIndexOfPosition(lineStarts, offset);
|
|
114
126
|
// line start from 1.
|
|
115
|
-
return new LineColPosition(line + 1,
|
|
127
|
+
return new LineColPosition(line + 1, offset - lineStarts[line] + 1);
|
|
116
128
|
}
|
|
117
129
|
/**
|
|
118
130
|
* Builds a LineColPosition object from a CxxAstNode.
|
|
@@ -143,11 +155,26 @@ class FullPosition {
|
|
|
143
155
|
getLastCol() {
|
|
144
156
|
return getColNo(this.last);
|
|
145
157
|
}
|
|
158
|
+
/** @internal Raw packed line/col word of the range start, for compact storage. */
|
|
159
|
+
getFirstPacked() {
|
|
160
|
+
return this.first;
|
|
161
|
+
}
|
|
162
|
+
/** @internal Raw packed line/col word of the range end, for compact storage. */
|
|
163
|
+
getLastPacked() {
|
|
164
|
+
return this.last;
|
|
165
|
+
}
|
|
166
|
+
/** @internal Rebuild a position from raw packed words produced by getFirstPacked/getLastPacked. */
|
|
167
|
+
static fromPacked(first, last) {
|
|
168
|
+
return new FullPosition(getLineNo(first), getColNo(first), getLineNo(last), getColNo(last));
|
|
169
|
+
}
|
|
146
170
|
static buildFromNode(node, sourceFile) {
|
|
147
|
-
const
|
|
148
|
-
const
|
|
171
|
+
const lineStarts = sourceFile.getLineStarts();
|
|
172
|
+
const startOffset = node.getStart(sourceFile);
|
|
173
|
+
const startLine = lineIndexOfPosition(lineStarts, startOffset);
|
|
174
|
+
const endOffset = node.getEnd();
|
|
175
|
+
const endLine = lineIndexOfPosition(lineStarts, endOffset);
|
|
149
176
|
// line start from 1
|
|
150
|
-
return new FullPosition(startLine + 1,
|
|
177
|
+
return new FullPosition(startLine + 1, startOffset - lineStarts[startLine] + 1, endLine + 1, endOffset - lineStarts[endLine] + 1);
|
|
151
178
|
}
|
|
152
179
|
/**
|
|
153
180
|
*Building a FullPosition object from a C++AST node
|
|
@@ -162,8 +189,7 @@ class FullPosition {
|
|
|
162
189
|
const startLine = (_c = begin === null || begin === void 0 ? void 0 : begin.line) !== null && _c !== void 0 ? _c : 0;
|
|
163
190
|
const startCharacter = (_d = begin === null || begin === void 0 ? void 0 : begin.col) !== null && _d !== void 0 ? _d : 0;
|
|
164
191
|
const endLine = (_e = end === null || end === void 0 ? void 0 : end.line) !== null && _e !== void 0 ? _e : startLine;
|
|
165
|
-
const endCharacter =
|
|
166
|
-
((begin === null || begin === void 0 ? void 0 : begin.tokLen) != null ? startCharacter + begin.tokLen : startCharacter);
|
|
192
|
+
const endCharacter = end && end.tokLen ? end.col + end.tokLen : (begin === null || begin === void 0 ? void 0 : begin.tokLen) != null ? startCharacter + begin.tokLen : startCharacter;
|
|
167
193
|
return new FullPosition(startLine, startCharacter, endLine, endCharacter);
|
|
168
194
|
}
|
|
169
195
|
static merge(leftMostPosition, rightMostPosition) {
|
package/lib/core/base/Ref.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { FieldSignature } from '../model/ArkSignature';
|
|
1
|
+
import { BaseSignature, FieldSignature } from '../model/ArkSignature';
|
|
2
2
|
import { Local } from './Local';
|
|
3
3
|
import { ClassType, Type } from './Type';
|
|
4
4
|
import { Value } from './Value';
|
|
5
5
|
import { ArkMethod } from '../model/ArkMethod';
|
|
6
6
|
import { Stmt } from './Stmt';
|
|
7
|
-
/**
|
|
8
|
-
* @category core/base/ref
|
|
9
|
-
*/
|
|
10
7
|
export declare abstract class AbstractRef implements Value {
|
|
11
|
-
abstract getUses(): Value[];
|
|
8
|
+
abstract getUses(acc?: Value[]): Value[];
|
|
12
9
|
abstract getType(): Type;
|
|
13
10
|
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
14
11
|
}
|
|
@@ -52,37 +49,47 @@ export declare class ArkArrayRef extends AbstractRef {
|
|
|
52
49
|
getIndex(): Value;
|
|
53
50
|
setIndex(newIndex: Value): void;
|
|
54
51
|
getType(): Type;
|
|
55
|
-
getUses(): Value[];
|
|
52
|
+
getUses(acc?: Value[]): Value[];
|
|
56
53
|
toString(): string;
|
|
57
54
|
}
|
|
58
55
|
export declare abstract class AbstractFieldRef extends AbstractRef {
|
|
59
|
-
|
|
56
|
+
/** @internal formal FieldSigID。-1 = 完全未注册(纯 temp-held)。*/
|
|
57
|
+
private fieldSigID;
|
|
58
|
+
/** @internal temp FieldSigID(索引表)。undefined = formal 路径。*/
|
|
59
|
+
private tempFieldSigID?;
|
|
60
|
+
private realFieldTypes?;
|
|
60
61
|
constructor(fieldSignature: FieldSignature);
|
|
62
|
+
/** 首路径路由(构造器专用):formal 只读命中 → 持 formal ID(栅栏精化);miss → temp 登记。*/
|
|
63
|
+
private route;
|
|
61
64
|
/**
|
|
62
65
|
* Returns the the field name as a **string**.
|
|
63
66
|
* @returns The the field name.
|
|
64
67
|
*/
|
|
65
68
|
getFieldName(): string;
|
|
69
|
+
/** Returns the field signature. */
|
|
70
|
+
getFieldSignature(): FieldSignature;
|
|
71
|
+
/** @internal */
|
|
72
|
+
updateFieldSignature(fieldName: string, declaringOrID: BaseSignature | number, type: Type, staticFlag: boolean, namespaceDeclared?: boolean): void;
|
|
73
|
+
/** @internal 兜底/probe 构造(联合类型按重载收窄分发;低频路径)。 */
|
|
74
|
+
private static buildFallbackSignature;
|
|
75
|
+
/** @internal 毕业到正式签名 */
|
|
76
|
+
graduateToFormal(formalId: number): void;
|
|
77
|
+
/** @internal */
|
|
78
|
+
retireTemp(): void;
|
|
66
79
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* 1. Compare two Fields
|
|
72
|
-
|
|
73
|
-
```typescript
|
|
74
|
-
const fieldSignature = new FieldSignature();
|
|
75
|
-
fieldSignature.setFieldName(...);
|
|
76
|
-
const fieldRef = new ArkInstanceFieldRef(baseValue as Local, fieldSignature);
|
|
77
|
-
...
|
|
78
|
-
if (fieldRef.getFieldSignature().getFieldName() ===
|
|
79
|
-
targetField.getFieldSignature().getFieldName()) {
|
|
80
|
-
...
|
|
81
|
-
}
|
|
82
|
-
```
|
|
80
|
+
* @internal 替换埋葬(带归宿版):同 {@link retireTemp},但替换产物为
|
|
81
|
+
* formal canonical(static 转换等 formalId 已知场景)——retire 同时记录
|
|
82
|
+
* 替换(temp → formal),供诊断追溯。
|
|
83
83
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
retireTempTo(formalId: number): void;
|
|
85
|
+
/** @internal Get the formal FieldSigID(身份视图;泛型双视图下为定义点字段 ID)。-1 = 纯 temp-held。 */
|
|
86
|
+
getFieldSigID(): number;
|
|
87
|
+
/** @internal Get the temp FieldSigID for the unresolved-signature registration(值视图在 temp 时非空)。 */
|
|
88
|
+
getTempSigID(): number | undefined;
|
|
89
|
+
/** @internal Get the generic instantiation real types of the field (Expr.realGenericTypes 同构)。 */
|
|
90
|
+
getRealFieldTypes(): Type[] | undefined;
|
|
91
|
+
/** @internal Set the generic instantiation real types. */
|
|
92
|
+
setRealFieldTypes(realTypes: Type[] | undefined): void;
|
|
86
93
|
getType(): Type;
|
|
87
94
|
}
|
|
88
95
|
export declare class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
@@ -112,13 +119,13 @@ export declare class ArkInstanceFieldRef extends AbstractFieldRef {
|
|
|
112
119
|
*/
|
|
113
120
|
getBase(): Local;
|
|
114
121
|
setBase(newBase: Local): void;
|
|
115
|
-
getUses(): Value[];
|
|
122
|
+
getUses(acc?: Value[]): Value[];
|
|
116
123
|
toString(): string;
|
|
117
124
|
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
118
125
|
}
|
|
119
126
|
export declare class ArkStaticFieldRef extends AbstractFieldRef {
|
|
120
127
|
constructor(fieldSignature: FieldSignature);
|
|
121
|
-
getUses(): Value[];
|
|
128
|
+
getUses(acc?: Value[]): Value[];
|
|
122
129
|
toString(): string;
|
|
123
130
|
}
|
|
124
131
|
export declare class ArkParameterRef extends AbstractRef {
|
|
@@ -130,14 +137,14 @@ export declare class ArkParameterRef extends AbstractRef {
|
|
|
130
137
|
getType(): Type;
|
|
131
138
|
setType(newType: Type): void;
|
|
132
139
|
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
133
|
-
getUses(): Value[];
|
|
140
|
+
getUses(acc?: Value[]): Value[];
|
|
134
141
|
toString(): string;
|
|
135
142
|
}
|
|
136
143
|
export declare class ArkThisRef extends AbstractRef {
|
|
137
144
|
private type;
|
|
138
145
|
constructor(type: ClassType);
|
|
139
146
|
getType(): ClassType;
|
|
140
|
-
getUses(): Value[];
|
|
147
|
+
getUses(acc?: Value[]): Value[];
|
|
141
148
|
toString(): string;
|
|
142
149
|
}
|
|
143
150
|
export declare class ArkCaughtExceptionRef extends AbstractRef {
|
|
@@ -145,19 +152,24 @@ export declare class ArkCaughtExceptionRef extends AbstractRef {
|
|
|
145
152
|
constructor(type: Type);
|
|
146
153
|
getType(): Type;
|
|
147
154
|
setType(newType: Type): void;
|
|
148
|
-
getUses(): Value[];
|
|
155
|
+
getUses(acc?: Value[]): Value[];
|
|
149
156
|
toString(): string;
|
|
150
157
|
}
|
|
151
158
|
export declare class GlobalRef extends AbstractRef {
|
|
152
159
|
private name;
|
|
153
160
|
private ref;
|
|
154
|
-
private
|
|
161
|
+
private _usedStmts?;
|
|
155
162
|
constructor(name: string, ref?: Value);
|
|
156
163
|
getName(): string;
|
|
157
|
-
getUses(): Value[];
|
|
164
|
+
getUses(acc?: Value[]): Value[];
|
|
158
165
|
getType(): Type;
|
|
159
166
|
getRef(): Value | null;
|
|
160
167
|
setRef(value: Value): void;
|
|
168
|
+
/**
|
|
169
|
+
* The statements using this global, exposed as a property so that consumers reading the field
|
|
170
|
+
* directly keep seeing an array; same value and same lazy backing list as {@link getUsedStmts}.
|
|
171
|
+
*/
|
|
172
|
+
get usedStmts(): Stmt[];
|
|
161
173
|
getUsedStmts(): Stmt[];
|
|
162
174
|
addUsedStmts(usedStmts: Stmt | Stmt[]): void;
|
|
163
175
|
toString(): string;
|
|
@@ -167,7 +179,7 @@ export declare class ClosureFieldRef extends AbstractRef {
|
|
|
167
179
|
private fieldName;
|
|
168
180
|
private type;
|
|
169
181
|
constructor(base: Local, fieldName: string, type: Type);
|
|
170
|
-
getUses(): Value[];
|
|
182
|
+
getUses(acc?: Value[]): Value[];
|
|
171
183
|
getBase(): Local;
|
|
172
184
|
getType(): Type;
|
|
173
185
|
setType(type: Type): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"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"}
|