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.
Files changed (326) hide show
  1. package/lib/Config.d.ts +7 -0
  2. package/lib/Config.d.ts.map +1 -1
  3. package/lib/Scene.d.ts +134 -170
  4. package/lib/Scene.d.ts.map +1 -1
  5. package/lib/Scene.js +412 -976
  6. package/lib/callgraph/algorithm/AbstractAnalysis.js +3 -2
  7. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  8. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +2 -3
  9. package/lib/callgraph/model/CallGraph.js +1 -1
  10. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +1 -3
  11. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  12. package/lib/callgraph/pointerAnalysis/PTAUtils.js +17 -7
  13. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  14. package/lib/callgraph/pointerAnalysis/Pag.js +4 -14
  15. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  16. package/lib/callgraph/pointerAnalysis/PagBuilder.js +2 -1
  17. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  18. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +1 -2
  19. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.d.ts.map +1 -1
  20. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +0 -1
  21. package/lib/cli/commands/cg.d.ts +1 -0
  22. package/lib/cli/commands/cg.d.ts.map +1 -1
  23. package/lib/cli/commands/cg.js +22 -18
  24. package/lib/cli/commands/ir.d.ts +1 -0
  25. package/lib/cli/commands/ir.d.ts.map +1 -1
  26. package/lib/cli/commands/ir.js +5 -2
  27. package/lib/core/base/Constant.d.ts +5 -5
  28. package/lib/core/base/Constant.d.ts.map +1 -1
  29. package/lib/core/base/Constant.js +12 -9
  30. package/lib/core/base/Expr.d.ts +36 -20
  31. package/lib/core/base/Expr.d.ts.map +1 -1
  32. package/lib/core/base/Expr.js +206 -94
  33. package/lib/core/base/Local.d.ts +10 -20
  34. package/lib/core/base/Local.d.ts.map +1 -1
  35. package/lib/core/base/Local.js +25 -28
  36. package/lib/core/base/Position.d.ts +6 -0
  37. package/lib/core/base/Position.d.ts.map +1 -1
  38. package/lib/core/base/Position.js +37 -11
  39. package/lib/core/base/Ref.d.ts +45 -33
  40. package/lib/core/base/Ref.d.ts.map +1 -1
  41. package/lib/core/base/Ref.js +225 -51
  42. package/lib/core/base/Stmt.d.ts +19 -9
  43. package/lib/core/base/Stmt.d.ts.map +1 -1
  44. package/lib/core/base/Stmt.js +135 -52
  45. package/lib/core/base/Type.d.ts +67 -4
  46. package/lib/core/base/Type.d.ts.map +1 -1
  47. package/lib/core/base/Type.js +391 -20
  48. package/lib/core/base/TypeExpr.d.ts +6 -4
  49. package/lib/core/base/TypeExpr.d.ts.map +1 -1
  50. package/lib/core/base/TypeExpr.js +34 -10
  51. package/lib/core/base/Value.d.ts +20 -2
  52. package/lib/core/base/Value.d.ts.map +1 -1
  53. package/lib/core/base/Value.js +12 -0
  54. package/lib/core/common/ArkIRTransformer.d.ts +18 -0
  55. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  56. package/lib/core/common/ArkIRTransformer.js +94 -75
  57. package/lib/core/common/ArkValueTransformer.d.ts +21 -3
  58. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  59. package/lib/core/common/ArkValueTransformer.js +458 -266
  60. package/lib/core/common/Builtin.d.ts +48 -24
  61. package/lib/core/common/Builtin.d.ts.map +1 -1
  62. package/lib/core/common/Builtin.js +90 -52
  63. package/lib/core/common/CanonicalizerValidator.d.ts +308 -0
  64. package/lib/core/common/CanonicalizerValidator.d.ts.map +1 -0
  65. package/lib/core/common/CanonicalizerValidator.js +888 -0
  66. package/lib/core/common/Const.d.ts +3 -3
  67. package/lib/core/common/Const.d.ts.map +1 -1
  68. package/lib/core/common/Const.js +3 -3
  69. package/lib/core/common/DummyMainCreater.d.ts +2 -21
  70. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  71. package/lib/core/common/DummyMainCreater.js +8 -105
  72. package/lib/core/common/IRInference.d.ts +55 -3
  73. package/lib/core/common/IRInference.d.ts.map +1 -1
  74. package/lib/core/common/IRInference.js +407 -126
  75. package/lib/core/common/IRUtils.d.ts +1 -0
  76. package/lib/core/common/IRUtils.d.ts.map +1 -1
  77. package/lib/core/common/IRUtils.js +44 -13
  78. package/lib/core/common/ModelUtils.d.ts +44 -20
  79. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  80. package/lib/core/common/ModelUtils.js +378 -208
  81. package/lib/core/common/SdkUtils.d.ts +35 -5
  82. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  83. package/lib/core/common/SdkUtils.js +203 -59
  84. package/lib/core/common/SignatureCanonicalizer.d.ts +95 -0
  85. package/lib/core/common/SignatureCanonicalizer.d.ts.map +1 -0
  86. package/lib/core/common/SignatureCanonicalizer.js +116 -0
  87. package/lib/core/common/SignatureCanonicalizerRegistry.d.ts +176 -0
  88. package/lib/core/common/SignatureCanonicalizerRegistry.d.ts.map +1 -0
  89. package/lib/core/common/SignatureCanonicalizerRegistry.js +343 -0
  90. package/lib/core/common/SignatureModelCanonicalizer.d.ts +69 -0
  91. package/lib/core/common/SignatureModelCanonicalizer.d.ts.map +1 -0
  92. package/lib/core/common/SignatureModelCanonicalizer.js +109 -0
  93. package/lib/core/common/StmtUseReplacer.d.ts +1 -0
  94. package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
  95. package/lib/core/common/StmtUseReplacer.js +9 -0
  96. package/lib/core/common/StringUtils.d.ts +12 -1
  97. package/lib/core/common/StringUtils.d.ts.map +1 -1
  98. package/lib/core/common/StringUtils.js +36 -17
  99. package/lib/core/common/TempSignatureCanonicalizer.d.ts +82 -0
  100. package/lib/core/common/TempSignatureCanonicalizer.d.ts.map +1 -0
  101. package/lib/core/common/TempSignatureCanonicalizer.js +177 -0
  102. package/lib/core/common/TypeInference.d.ts +24 -6
  103. package/lib/core/common/TypeInference.d.ts.map +1 -1
  104. package/lib/core/common/TypeInference.js +243 -117
  105. package/lib/core/common/ValueUtil.d.ts +2 -1
  106. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  107. package/lib/core/common/ValueUtil.js +4 -1
  108. package/lib/core/graph/Cfg.d.ts.map +1 -1
  109. package/lib/core/graph/Cfg.js +21 -6
  110. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  111. package/lib/core/graph/builder/CfgBuilder.js +46 -33
  112. package/lib/core/graph/builder/IfBuilder.d.ts.map +1 -1
  113. package/lib/core/graph/builder/IfBuilder.js +6 -2
  114. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  115. package/lib/core/graph/builder/ViewTreeBuilder.js +6 -2
  116. package/lib/core/inference/ModelInference.d.ts +24 -4
  117. package/lib/core/inference/ModelInference.d.ts.map +1 -1
  118. package/lib/core/inference/ModelInference.js +273 -79
  119. package/lib/core/inference/ValueInference.d.ts +3 -2
  120. package/lib/core/inference/ValueInference.d.ts.map +1 -1
  121. package/lib/core/inference/ValueInference.js +90 -40
  122. package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
  123. package/lib/core/inference/abc/AbcInference.js +28 -15
  124. package/lib/core/inference/arkts/ArkTsInference.d.ts +9 -3
  125. package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
  126. package/lib/core/inference/arkts/ArkTsInference.js +54 -16
  127. package/lib/core/model/ArkClass.d.ts +192 -18
  128. package/lib/core/model/ArkClass.d.ts.map +1 -1
  129. package/lib/core/model/ArkClass.js +852 -122
  130. package/lib/core/model/ArkExport.d.ts.map +1 -1
  131. package/lib/core/model/ArkExport.js +1 -2
  132. package/lib/core/model/ArkField.d.ts +34 -2
  133. package/lib/core/model/ArkField.d.ts.map +1 -1
  134. package/lib/core/model/ArkField.js +89 -14
  135. package/lib/core/model/ArkFile.d.ts +72 -12
  136. package/lib/core/model/ArkFile.d.ts.map +1 -1
  137. package/lib/core/model/ArkFile.js +275 -65
  138. package/lib/core/model/ArkImport.d.ts.map +1 -1
  139. package/lib/core/model/ArkImport.js +1 -2
  140. package/lib/core/model/ArkMethod.d.ts +101 -15
  141. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  142. package/lib/core/model/ArkMethod.js +252 -39
  143. package/lib/core/model/ArkModule.d.ts +1 -1
  144. package/lib/core/model/ArkModule.js +1 -1
  145. package/lib/core/model/ArkNamespace.d.ts +80 -10
  146. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  147. package/lib/core/model/ArkNamespace.js +309 -76
  148. package/lib/core/model/ArkSignature.d.ts +242 -18
  149. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  150. package/lib/core/model/ArkSignature.js +725 -95
  151. package/lib/core/model/builder/ArkClassBuilder.d.ts +6 -3
  152. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  153. package/lib/core/model/builder/ArkClassBuilder.js +119 -73
  154. package/lib/core/model/builder/ArkExportBuilder.d.ts +1 -1
  155. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  156. package/lib/core/model/builder/ArkExportBuilder.js +1 -1
  157. package/lib/core/model/builder/ArkFieldBuilder.d.ts +0 -2
  158. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  159. package/lib/core/model/builder/ArkFieldBuilder.js +9 -43
  160. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
  161. package/lib/core/model/builder/ArkFileBuilder.js +32 -33
  162. package/lib/core/model/builder/ArkMethodBuilder.d.ts +10 -3
  163. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  164. package/lib/core/model/builder/ArkMethodBuilder.js +40 -26
  165. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +3 -2
  166. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  167. package/lib/core/model/builder/ArkNamespaceBuilder.js +45 -77
  168. package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
  169. package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
  170. package/lib/core/model/builder/ArkSignatureBuilder.js +26 -3
  171. package/lib/core/model/builder/BodyBuilder.d.ts +1 -0
  172. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
  173. package/lib/core/model/builder/BodyBuilder.js +37 -11
  174. package/lib/core/model/builder/builderUtils.d.ts +11 -1
  175. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  176. package/lib/core/model/builder/builderUtils.js +124 -90
  177. package/lib/frontend/FrontendBuilder.d.ts +10 -6
  178. package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
  179. package/lib/frontend/FrontendBuilder.js +19 -45
  180. package/lib/frontend/ModuleScene.d.ts +43 -0
  181. package/lib/frontend/ModuleScene.d.ts.map +1 -0
  182. package/lib/frontend/ModuleScene.js +143 -0
  183. package/lib/frontend/SceneBuildStage.d.ts +15 -0
  184. package/lib/frontend/SceneBuildStage.d.ts.map +1 -0
  185. package/lib/frontend/SceneBuildStage.js +32 -0
  186. package/lib/frontend/SceneBuilder.d.ts +153 -0
  187. package/lib/frontend/SceneBuilder.d.ts.map +1 -0
  188. package/lib/frontend/SceneBuilder.js +859 -0
  189. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +0 -2
  190. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
  191. package/lib/frontend/arktsFrontend/ArktsFrontend.js +0 -18
  192. package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts +17 -0
  193. package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts.map +1 -0
  194. package/lib/frontend/arktsFrontend/FileBodyRemount.js +187 -0
  195. package/lib/frontend/common/ModuleBuilder.d.ts +4 -2
  196. package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -1
  197. package/lib/frontend/common/ModuleBuilder.js +19 -9
  198. package/lib/frontend/cppFrontend/CppFrontend.d.ts +0 -6
  199. package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
  200. package/lib/frontend/cppFrontend/CppFrontend.js +0 -56
  201. package/lib/frontend/cppFrontend/base/Type.d.ts +7 -0
  202. package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -1
  203. package/lib/frontend/cppFrontend/base/Type.js +29 -0
  204. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
  205. package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +56 -56
  206. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
  207. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
  208. package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +124 -113
  209. package/lib/frontend/cppFrontend/common/Builtin.d.ts +29 -19
  210. package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -1
  211. package/lib/frontend/cppFrontend/common/Builtin.js +56 -35
  212. package/lib/frontend/cppFrontend/common/IRInference.d.ts +7 -2
  213. package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -1
  214. package/lib/frontend/cppFrontend/common/IRInference.js +61 -28
  215. package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -0
  216. package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
  217. package/lib/frontend/cppFrontend/common/IRUtils.js +22 -10
  218. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +19 -0
  219. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -1
  220. package/lib/frontend/cppFrontend/common/ModelUtils.js +84 -3
  221. package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -1
  222. package/lib/frontend/cppFrontend/common/TypeInference.js +44 -54
  223. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
  224. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +2 -1
  225. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +1 -1
  226. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -1
  227. package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -1
  228. package/lib/frontend/cppFrontend/inference/CxxValueInference.js +41 -5
  229. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
  230. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +18 -28
  231. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  232. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +2 -3
  233. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +2 -2
  234. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
  235. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +31 -24
  236. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  237. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +10 -16
  238. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +0 -2
  239. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  240. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +19 -37
  241. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -0
  242. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
  243. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +30 -3
  244. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
  245. package/lib/frontend/cppFrontend/model/builder/builderUtils.js +8 -4
  246. package/lib/index.d.ts +3 -0
  247. package/lib/index.d.ts.map +1 -1
  248. package/lib/index.js +10 -2
  249. package/lib/save/json/JsonSerialization.js +2 -2
  250. package/lib/save/source/SourceStmt.js +1 -1
  251. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  252. package/lib/save/source/SourceTransformer.js +0 -9
  253. package/lib/statistics/StageStatistics.d.ts +195 -0
  254. package/lib/statistics/StageStatistics.d.ts.map +1 -0
  255. package/lib/statistics/StageStatistics.js +346 -0
  256. package/lib/statistics/StageStatisticsReporter.d.ts +58 -0
  257. package/lib/statistics/StageStatisticsReporter.d.ts.map +1 -0
  258. package/lib/statistics/StageStatisticsReporter.js +255 -0
  259. package/lib/utils/Canonicalizer.d.ts +9 -2
  260. package/lib/utils/Canonicalizer.d.ts.map +1 -1
  261. package/lib/utils/Canonicalizer.js +19 -2
  262. package/lib/utils/CxxSceneUtils.d.ts +7 -0
  263. package/lib/utils/CxxSceneUtils.d.ts.map +1 -1
  264. package/lib/utils/CxxSceneUtils.js +10 -1
  265. package/lib/utils/FileUtils.d.ts +0 -1
  266. package/lib/utils/FileUtils.d.ts.map +1 -1
  267. package/lib/utils/FileUtils.js +1 -9
  268. package/lib/utils/HashUtils.d.ts +9 -0
  269. package/lib/utils/HashUtils.d.ts.map +1 -0
  270. package/lib/utils/HashUtils.js +65 -0
  271. package/lib/utils/ModuleUtils.d.ts.map +1 -1
  272. package/lib/utils/ModuleUtils.js +24 -5
  273. package/lib/utils/VisitedSegment.d.ts +23 -0
  274. package/lib/utils/VisitedSegment.d.ts.map +1 -0
  275. package/lib/utils/VisitedSegment.js +64 -0
  276. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  277. package/lib/utils/callGraphUtils.js +7 -7
  278. package/lib/utils/getAllFiles.d.ts.map +1 -1
  279. package/lib/utils/getAllFiles.js +11 -8
  280. package/lib/utils/logger.d.ts +4 -0
  281. package/lib/utils/logger.d.ts.map +1 -1
  282. package/lib/utils/logger.js +16 -0
  283. package/lib/utils/parseArkSourceFile.d.ts +33 -0
  284. package/lib/utils/parseArkSourceFile.d.ts.map +1 -0
  285. package/lib/utils/parseArkSourceFile.js +131 -0
  286. package/package.json +1 -1
  287. package/lib/node_modules/ohos-typescript/README.OpenSource +0 -11
  288. package/lib/node_modules/ohos-typescript/README.md +0 -81
  289. package/lib/node_modules/ohos-typescript/SECURITY.md +0 -41
  290. package/lib/node_modules/ohos-typescript/ThirdPartyNoticeText.txt +0 -193
  291. package/lib/node_modules/ohos-typescript/bin/tsc +0 -2
  292. package/lib/node_modules/ohos-typescript/bin/tsserver +0 -2
  293. package/lib/node_modules/ohos-typescript/lib/README.md +0 -5
  294. package/lib/node_modules/ohos-typescript/lib/cancellationToken.js +0 -86
  295. package/lib/node_modules/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -1880
  296. package/lib/node_modules/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -1880
  297. package/lib/node_modules/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -1880
  298. package/lib/node_modules/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -1880
  299. package/lib/node_modules/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -1880
  300. package/lib/node_modules/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -1880
  301. package/lib/node_modules/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -1880
  302. package/lib/node_modules/ohos-typescript/lib/lib.dom.d.ts +0 -18505
  303. package/lib/node_modules/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -341
  304. package/lib/node_modules/ohos-typescript/lib/lib.scripthost.d.ts +0 -327
  305. package/lib/node_modules/ohos-typescript/lib/lib.webworker.d.ts +0 -6192
  306. package/lib/node_modules/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -26
  307. package/lib/node_modules/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -175
  308. package/lib/node_modules/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -1880
  309. package/lib/node_modules/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -1880
  310. package/lib/node_modules/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -1880
  311. package/lib/node_modules/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -1880
  312. package/lib/node_modules/ohos-typescript/lib/tsc.js +0 -114551
  313. package/lib/node_modules/ohos-typescript/lib/tsserver.js +0 -179691
  314. package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.d.ts +0 -13648
  315. package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.js +0 -178688
  316. package/lib/node_modules/ohos-typescript/lib/typesMap.json +0 -497
  317. package/lib/node_modules/ohos-typescript/lib/typingsInstaller.js +0 -39871
  318. package/lib/node_modules/ohos-typescript/lib/watchGuard.js +0 -49
  319. package/lib/node_modules/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -1880
  320. package/lib/node_modules/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -1880
  321. package/lib/utils/DependenciesSort.d.ts +0 -3
  322. package/lib/utils/DependenciesSort.d.ts.map +0 -1
  323. package/lib/utils/DependenciesSort.js +0 -72
  324. package/lib/utils/crypto_utils.d.ts +0 -6
  325. package/lib/utils/crypto_utils.d.ts.map +0 -1
  326. package/lib/utils/crypto_utils.js +0 -57
@@ -1,5 +1,11 @@
1
- import { ClassSignature, FileSignature } from '../../../core/model/ArkSignature';
1
+ import { ClassSignature } from '../../../core/model/ArkSignature';
2
2
  import { ClassType } from '../../../core/base/Type';
3
+ /**
4
+ * C++ built-in container names, syntax constants, and signature stubs.
5
+ *
6
+ * Signatures created here are **unclear stubs** (declaring file = FileSignature.DEFAULT) that
7
+ * live in the temp canonicalizer and are resolved to real signatures during type inference.
8
+ */
3
9
  export declare class BuiltinCxx {
4
10
  static ARRAY: string;
5
11
  static SET: string;
@@ -26,17 +32,6 @@ export declare class BuiltinCxx {
26
32
  static OPERATOR_ISTREAM: string;
27
33
  static OPERATOR_OSTREAM: string;
28
34
  static BUILT_IN_CLASSES: Set<string>;
29
- static DUMMY_PROJECT_NAME: string;
30
- static DUMMY_FILE_NAME: string;
31
- static BUILT_IN_CLASSES_FILE_SIGNATURE: FileSignature;
32
- static OBJECT_CLASS_SIGNATURE: ClassSignature;
33
- static OBJECT_CLASS_TYPE: ClassType;
34
- static ARRAY_CLASS_SIGNATURE: ClassSignature;
35
- static SET_CLASS_SIGNATURE: ClassSignature;
36
- static MAP_CLASS_SIGNATURE: ClassSignature;
37
- static REGEXP_CLASS_SIGNATURE: ClassSignature;
38
- static REGEXP_CLASS_TYPE: ClassType;
39
- static BUILT_IN_CLASS_SIGNATURE_MAP: Map<string, ClassSignature>;
40
35
  static ITERATOR_FUNCTION: string;
41
36
  static ITERATOR: string;
42
37
  static ITERATOR_NEXT: string;
@@ -44,14 +39,29 @@ export declare class BuiltinCxx {
44
39
  static ITERATOR_RESULT_BEGIN: string;
45
40
  static ITERATOR_RESULT_END: string;
46
41
  static ITERATOR_VALUE: string;
47
- static ITERATOR_CLASS_SIGNATURE: ClassSignature;
48
- static ITERATOR_RESULT_CLASS_SIGNATURE: ClassSignature;
49
- static ITERATOR_CLASS_TYPE: ClassType;
50
- static ITERATOR_RESULT_CLASS_TYPE: ClassType;
42
+ /**
43
+ * Unclear stub signature for a built-in class name (shared instance per name).
44
+ * Delegates to the core Builtin cache so that core and C++ consumers of the same
45
+ * name (e.g. 'Object') share one stub instance — and thus one temp SigID.
46
+ */
47
+ static getBuiltinClassSignature(className: string): ClassSignature;
48
+ static get OBJECT_CLASS_SIGNATURE(): ClassSignature;
49
+ static get OBJECT_CLASS_TYPE(): ClassType;
50
+ static get ARRAY_CLASS_SIGNATURE(): ClassSignature;
51
+ static get SET_CLASS_SIGNATURE(): ClassSignature;
52
+ static get MAP_CLASS_SIGNATURE(): ClassSignature;
53
+ static get REGEXP_CLASS_SIGNATURE(): ClassSignature;
54
+ static get REGEXP_CLASS_TYPE(): ClassType;
55
+ static get ITERATOR_CLASS_SIGNATURE(): ClassSignature;
56
+ static get ITERATOR_RESULT_CLASS_SIGNATURE(): ClassSignature;
57
+ static get ITERATOR_CLASS_TYPE(): ClassType;
58
+ static get ITERATOR_RESULT_CLASS_TYPE(): ClassType;
51
59
  private static buildBuiltInClasses;
52
- private static buildBuiltInClassesFileSignature;
53
- static buildBuiltInClassSignature(className: string): ClassSignature;
60
+ /**
61
+ * Whether the signature is an unresolved (stub) built-in container class.
62
+ * The old projectName check is replaced by the unclear check: stubs are unclear,
63
+ * while real parsed / resolved classes have concrete declaring files.
64
+ */
54
65
  static isBuiltinClass(classSignature: ClassSignature): boolean;
55
- private static buildBuiltInClassSignatureMap;
56
66
  }
57
67
  //# sourceMappingURL=Builtin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAe,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,UAAU;IAEnB,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,aAAa,SAAmB;IAC9C,OAAc,KAAK,SAAW;IAC9B,OAAc,KAAK,SAAW;IAC9B,OAAc,KAAK,SAAW;IAC9B,OAAc,IAAI,SAAU;IAC5B,OAAc,MAAM,SAAY;IAChC,OAAc,aAAa,SAAmB;IAC9C,OAAc,cAAc,SAAoB;IAChD,OAAc,YAAY,SAAkB;IAC5C,OAAc,QAAQ,SAAc;IACpC,OAAc,QAAQ,SAAc;IACpC,OAAc,kBAAkB,SAAwB;IACxD,OAAc,kBAAkB,SAAwB;IACxD,OAAc,MAAM,SAAY;IAChC,OAAc,MAAM,SAAY;IAChC,OAAc,MAAM,SAAS;IAC7B,OAAc,SAAS,SAAW;IAClC,OAAc,gBAAgB,SAAe;IAC7C,OAAc,uBAAuB,SAA6B;IAClE,OAAc,gBAAgB,SAAgB;IAC9C,OAAc,gBAAgB,SAAgB;IAE9C,OAAc,gBAAgB,cAA8B;IAE5D,OAAc,kBAAkB,SAAa;IAC7C,OAAc,eAAe,SAAkB;IAE/C,OAAc,+BAA+B,gBAAiD;IAC9F,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,qBAAqB,iBAA+C;IAClF,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,4BAA4B,8BAAwC;IAKlF,OAAc,iBAAiB,SAAc;IAC7C,OAAc,QAAQ,SAAsB;IAC5C,OAAc,aAAa,SAAgB;IAC3C,OAAc,eAAe,SAAe;IAC5C,OAAc,qBAAqB,SAAW;IAC9C,OAAc,mBAAmB,SAAS;IAC1C,OAAc,cAAc,SAAO;IAEnC,OAAc,wBAAwB,iBAAkD;IACxF,OAAc,+BAA+B,iBAAyD;IACtG,OAAc,mBAAmB,YAAwE;IACzG,OAAc,0BAA0B,YAA+E;IACvH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAclC,OAAO,CAAC,MAAM,CAAC,gCAAgC;WAIjC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;WAG7D,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAMrE,OAAO,CAAC,MAAM,CAAC,6BAA6B;CAS/C"}
1
+ {"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAe,MAAM,yBAAyB,CAAC;AAGjE;;;;;GAKG;AACH,qBAAa,UAAU;IAEnB,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,aAAa,SAAmB;IAC9C,OAAc,KAAK,SAAW;IAC9B,OAAc,KAAK,SAAW;IAC9B,OAAc,KAAK,SAAW;IAC9B,OAAc,IAAI,SAAU;IAC5B,OAAc,MAAM,SAAY;IAChC,OAAc,aAAa,SAAmB;IAC9C,OAAc,cAAc,SAAoB;IAChD,OAAc,YAAY,SAAkB;IAC5C,OAAc,QAAQ,SAAc;IACpC,OAAc,QAAQ,SAAc;IACpC,OAAc,kBAAkB,SAAwB;IACxD,OAAc,kBAAkB,SAAwB;IACxD,OAAc,MAAM,SAAY;IAChC,OAAc,MAAM,SAAY;IAChC,OAAc,MAAM,SAAS;IAC7B,OAAc,SAAS,SAAW;IAClC,OAAc,gBAAgB,SAAe;IAC7C,OAAc,uBAAuB,SAA6B;IAClE,OAAc,gBAAgB,SAAgB;IAC9C,OAAc,gBAAgB,SAAgB;IAE9C,OAAc,gBAAgB,cAA8B;IAG5D,OAAc,iBAAiB,SAAc;IAC7C,OAAc,QAAQ,SAAsB;IAC5C,OAAc,aAAa,SAAgB;IAC3C,OAAc,eAAe,SAAe;IAC5C,OAAc,qBAAqB,SAAW;IAC9C,OAAc,mBAAmB,SAAS;IAC1C,OAAc,cAAc,SAAO;IAInC;;;;OAIG;WACW,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAIzE,WAAkB,sBAAsB,IAAI,cAAc,CAEzD;IACD,WAAkB,iBAAiB,IAAI,SAAS,CAE/C;IACD,WAAkB,qBAAqB,IAAI,cAAc,CAExD;IACD,WAAkB,mBAAmB,IAAI,cAAc,CAEtD;IACD,WAAkB,mBAAmB,IAAI,cAAc,CAEtD;IACD,WAAkB,sBAAsB,IAAI,cAAc,CAEzD;IACD,WAAkB,iBAAiB,IAAI,SAAS,CAE/C;IAED,WAAkB,wBAAwB,IAAI,cAAc,CAE3D;IACD,WAAkB,+BAA+B,IAAI,cAAc,CAElE;IACD,WAAkB,mBAAmB,IAAI,SAAS,CAEjD;IACD,WAAkB,0BAA0B,IAAI,SAAS,CAExD;IAED,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAclC;;;;OAIG;WACW,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;CAGxE"}
@@ -16,9 +16,57 @@
16
16
  var _a;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.BuiltinCxx = void 0;
19
- const ArkSignature_1 = require("../../../core/model/ArkSignature");
20
19
  const Type_1 = require("../../../core/base/Type");
20
+ const Builtin_1 = require("../../../core/common/Builtin");
21
+ /**
22
+ * C++ built-in container names, syntax constants, and signature stubs.
23
+ *
24
+ * Signatures created here are **unclear stubs** (declaring file = FileSignature.DEFAULT) that
25
+ * live in the temp canonicalizer and are resolved to real signatures during type inference.
26
+ */
21
27
  class BuiltinCxx {
28
+ // --- Stable unclear stubs (shared per name, delegate to core Builtin's cache) ---
29
+ /**
30
+ * Unclear stub signature for a built-in class name (shared instance per name).
31
+ * Delegates to the core Builtin cache so that core and C++ consumers of the same
32
+ * name (e.g. 'Object') share one stub instance — and thus one temp SigID.
33
+ */
34
+ static getBuiltinClassSignature(className) {
35
+ return Builtin_1.Builtin.getBuiltinClassSignature(className);
36
+ }
37
+ static get OBJECT_CLASS_SIGNATURE() {
38
+ return this.getBuiltinClassSignature(this.OBJECT);
39
+ }
40
+ static get OBJECT_CLASS_TYPE() {
41
+ return new Type_1.ClassType(this.OBJECT_CLASS_SIGNATURE);
42
+ }
43
+ static get ARRAY_CLASS_SIGNATURE() {
44
+ return this.getBuiltinClassSignature(this.ARRAY);
45
+ }
46
+ static get SET_CLASS_SIGNATURE() {
47
+ return this.getBuiltinClassSignature(this.SET);
48
+ }
49
+ static get MAP_CLASS_SIGNATURE() {
50
+ return this.getBuiltinClassSignature(this.MAP);
51
+ }
52
+ static get REGEXP_CLASS_SIGNATURE() {
53
+ return this.getBuiltinClassSignature(this.REGEXP);
54
+ }
55
+ static get REGEXP_CLASS_TYPE() {
56
+ return new Type_1.ClassType(this.REGEXP_CLASS_SIGNATURE);
57
+ }
58
+ static get ITERATOR_CLASS_SIGNATURE() {
59
+ return this.getBuiltinClassSignature(this.ITERATOR);
60
+ }
61
+ static get ITERATOR_RESULT_CLASS_SIGNATURE() {
62
+ return this.getBuiltinClassSignature(this.ITERATOR_RESULT);
63
+ }
64
+ static get ITERATOR_CLASS_TYPE() {
65
+ return new Type_1.ClassType(this.ITERATOR_CLASS_SIGNATURE, [new Type_1.GenericType('T')]);
66
+ }
67
+ static get ITERATOR_RESULT_CLASS_TYPE() {
68
+ return new Type_1.ClassType(this.ITERATOR_RESULT_CLASS_SIGNATURE, [new Type_1.GenericType('T')]);
69
+ }
22
70
  static buildBuiltInClasses() {
23
71
  const builtInClasses = new Set();
24
72
  builtInClasses.add(this.ARRAY);
@@ -32,25 +80,13 @@ class BuiltinCxx {
32
80
  builtInClasses.add(this.VECTOR);
33
81
  return builtInClasses;
34
82
  }
35
- static buildBuiltInClassesFileSignature() {
36
- return new ArkSignature_1.FileSignature(this.DUMMY_PROJECT_NAME, this.DUMMY_FILE_NAME);
37
- }
38
- static buildBuiltInClassSignature(className) {
39
- return new ArkSignature_1.ClassSignature(className, this.BUILT_IN_CLASSES_FILE_SIGNATURE);
40
- }
83
+ /**
84
+ * Whether the signature is an unresolved (stub) built-in container class.
85
+ * The old projectName check is replaced by the unclear check: stubs are unclear,
86
+ * while real parsed / resolved classes have concrete declaring files.
87
+ */
41
88
  static isBuiltinClass(classSignature) {
42
- const className = classSignature.getClassName();
43
- const projectName = classSignature.getDeclaringFileSignature().getProjectName();
44
- return this.BUILT_IN_CLASSES.has(className) && projectName === this.DUMMY_PROJECT_NAME;
45
- }
46
- static buildBuiltInClassSignatureMap() {
47
- const builtInClassSignatureMap = new Map();
48
- builtInClassSignatureMap.set(this.OBJECT, this.OBJECT_CLASS_SIGNATURE);
49
- builtInClassSignatureMap.set(this.ARRAY, this.ARRAY_CLASS_SIGNATURE);
50
- builtInClassSignatureMap.set(this.SET, this.SET_CLASS_SIGNATURE);
51
- builtInClassSignatureMap.set(this.MAP, this.MAP_CLASS_SIGNATURE);
52
- builtInClassSignatureMap.set(this.REGEXP, this.REGEXP_CLASS_SIGNATURE);
53
- return builtInClassSignatureMap;
89
+ return this.BUILT_IN_CLASSES.has(classSignature.getClassName()) && classSignature.isUnclear();
54
90
  }
55
91
  }
56
92
  exports.BuiltinCxx = BuiltinCxx;
@@ -81,18 +117,7 @@ BuiltinCxx.ANONYMOUS_NAMESPACE_REF = '(anonymous namespace)::';
81
117
  BuiltinCxx.OPERATOR_ISTREAM = 'operator>>';
82
118
  BuiltinCxx.OPERATOR_OSTREAM = 'operator<<';
83
119
  BuiltinCxx.BUILT_IN_CLASSES = _a.buildBuiltInClasses();
84
- BuiltinCxx.DUMMY_PROJECT_NAME = 'CXX/std';
85
- BuiltinCxx.DUMMY_FILE_NAME = 'BuiltinClass';
86
- BuiltinCxx.BUILT_IN_CLASSES_FILE_SIGNATURE = BuiltinCxx.buildBuiltInClassesFileSignature();
87
- BuiltinCxx.OBJECT_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.OBJECT);
88
- BuiltinCxx.OBJECT_CLASS_TYPE = new Type_1.ClassType(_a.OBJECT_CLASS_SIGNATURE);
89
- BuiltinCxx.ARRAY_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.ARRAY);
90
- BuiltinCxx.SET_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.SET);
91
- BuiltinCxx.MAP_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.MAP);
92
- BuiltinCxx.REGEXP_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.REGEXP);
93
- BuiltinCxx.REGEXP_CLASS_TYPE = new Type_1.ClassType(_a.REGEXP_CLASS_SIGNATURE);
94
- BuiltinCxx.BUILT_IN_CLASS_SIGNATURE_MAP = _a.buildBuiltInClassSignatureMap();
95
- // signature for built-in class
120
+ // iterator constants (C++ range-for lowering)
96
121
  BuiltinCxx.ITERATOR_FUNCTION = 'iterator';
97
122
  BuiltinCxx.ITERATOR = 'IterableIterator';
98
123
  BuiltinCxx.ITERATOR_NEXT = 'iterator++';
@@ -100,7 +125,3 @@ BuiltinCxx.ITERATOR_RESULT = 'operator*';
100
125
  BuiltinCxx.ITERATOR_RESULT_BEGIN = 'begin';
101
126
  BuiltinCxx.ITERATOR_RESULT_END = 'end';
102
127
  BuiltinCxx.ITERATOR_VALUE = '*';
103
- BuiltinCxx.ITERATOR_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.ITERATOR);
104
- BuiltinCxx.ITERATOR_RESULT_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.ITERATOR_RESULT);
105
- BuiltinCxx.ITERATOR_CLASS_TYPE = new Type_1.ClassType(_a.ITERATOR_CLASS_SIGNATURE, [new Type_1.GenericType('T')]);
106
- BuiltinCxx.ITERATOR_RESULT_CLASS_TYPE = new Type_1.ClassType(_a.ITERATOR_RESULT_CLASS_SIGNATURE, [new Type_1.GenericType('T')]);
@@ -1,10 +1,11 @@
1
+ import { FieldSigResolution } from '../../../core/common/IRInference';
1
2
  import { ArkMethod } from '../../../core/model/ArkMethod';
2
3
  import { ClassType, Type } from '../../../core/base/Type';
3
4
  import { Local } from '../../../core/base/Local';
4
5
  import { AbstractExpr, AbstractInvokeExpr, AliasTypeExpr, ArkInstanceInvokeExpr, ArkStaticInvokeExpr } from '../../../core/base/Expr';
5
6
  import { Scene } from '../../../Scene';
6
7
  import { ArkClass } from '../../../core/model/ArkClass';
7
- import { ClassSignature, FieldSignature, MethodSignature } from '../../../core/model/ArkSignature';
8
+ import { ClassSignature, MethodSignature } from '../../../core/model/ArkSignature';
8
9
  import { AbstractFieldRef, AbstractRef, ArkInstanceFieldRef, ArkParameterRef } from '../../../core/base/Ref';
9
10
  import { ArkFile } from '../../../core/model/ArkFile';
10
11
  import { KeyofTypeExpr, TypeQueryExpr } from '../../../core/base/TypeExpr';
@@ -39,7 +40,11 @@ export declare class IRInference {
39
40
  static replaceMethodSignature(init: MethodSignature, declared: MethodSignature): MethodSignature;
40
41
  private static processForEach;
41
42
  static inferLocal(base: Local, arkMethod: ArkMethod): void;
42
- static generateNewFieldSignature(ref: AbstractFieldRef, arkClass: ArkClass, baseType: Type): FieldSignature | null;
43
+ /**
44
+ * 判别联合——定义点 canonical(formal 分支,终点确定)与新构造值(params 分支,终点不确定)分流;null = 未解析。
45
+ * 泛型守卫(泛型字段不走定义点)为 cpp 侧遗留语义,照搬不改。
46
+ */
47
+ static generateNewFieldSignature(ref: AbstractFieldRef, arkClass: ArkClass, baseType: Type): FieldSigResolution;
43
48
  private static repairType;
44
49
  static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set<string>): void;
45
50
  private static assignAnonMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/IRInference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/IRInference.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ exports.IRInference = void 0;
43
43
  */
44
44
  const fs_1 = __importDefault(require("fs"));
45
45
  const path_1 = __importStar(require("path"));
46
+ const IRInference_1 = require("../../../core/common/IRInference");
46
47
  const cppUtils_1 = require("../utils/cppUtils");
47
48
  const ArkMethod_1 = require("../../../core/model/ArkMethod");
48
49
  const Type_1 = require("../../../core/base/Type");
@@ -118,8 +119,12 @@ class IRInference {
118
119
  this.inferExportInfos(file);
119
120
  }
120
121
  static inferStaticInvokeExpr(expr, arkMethod) {
121
- const fileSignature = expr.getMethodSignature().getDeclaringClassSignature().getDeclaringFileSignature();
122
- if (fileSignature !== ArkSignature_1.FileSignature.DEFAULT && fileSignature !== Builtin_1.Builtin.BUILT_IN_CLASSES_FILE_SIGNATURE) {
122
+ // Builtin stubs carry FileSignature.DEFAULT (FileSigID 0), so the ID > 0 check lets
123
+ // real files through to inference (the old reference comparison against the core
124
+ // ES2015 virtual signature was always true for CXX/std signatures — dead condition, now removed).
125
+ // Pure field read: FileSigID 0 = DEFAULT (internDefaults 固化), > 0 = real file.
126
+ const fileSigID = expr.getMethodSignature().getDeclaringClassSignature().getDeclaringFileSigID();
127
+ if (fileSigID > 0) {
123
128
  return expr;
124
129
  }
125
130
  const arkClass = arkMethod.getDeclaringArkClass();
@@ -139,7 +144,7 @@ class IRInference {
139
144
  else if (methodName === TSConst_1.SUPER_NAME) {
140
145
  const superClass = arkClass.getSuperClass();
141
146
  if (superClass !== null) {
142
- const newMethodSignature = new ArkSignature_1.MethodSignature(superClass.getSignature(), expr.getMethodSignature().getMethodSubSignature());
147
+ const newMethodSignature = new ArkSignature_1.MethodSignature(superClass.getClassSigID(), expr.getMethodSignature().getMethodSubSignature());
143
148
  expr.setMethodSignature(newMethodSignature);
144
149
  }
145
150
  return expr;
@@ -161,7 +166,7 @@ class IRInference {
161
166
  static inferStaticInvokeExprByMethodName(methodName, arkMethod, expr) {
162
167
  var _a, _b, _c, _d;
163
168
  const arkClass = arkMethod.getDeclaringArkClass();
164
- const arkExport = (_d = (_c = (_b = (_a = ModelUtils_2.CxxModelUtils.getStaticMethodWithName(methodName, arkClass)) !== null && _a !== void 0 ? _a : arkMethod.getFunctionLocal(methodName)) !== null && _b !== void 0 ? _b : ModelUtils_1.ModelUtils.findDeclaredLocal(new Local_1.Local(methodName), arkMethod)) !== null && _c !== void 0 ? _c : ModelUtils_2.CxxModelUtils.getArkExportInImportInfoWithName(methodName, arkClass.getDeclaringArkFile(), arkClass)) !== null && _d !== void 0 ? _d : arkClass.getDeclaringArkFile().getScene().getSdkGlobal(methodName);
169
+ const arkExport = (_d = (_c = (_b = (_a = ModelUtils_2.CxxModelUtils.getStaticMethodWithName(methodName, arkClass)) !== null && _a !== void 0 ? _a : arkMethod.getFunctionLocal(methodName)) !== null && _b !== void 0 ? _b : ModelUtils_1.ModelUtils.findDeclaredLocal(new Local_1.Local(methodName), arkMethod)) !== null && _c !== void 0 ? _c : ModelUtils_2.CxxModelUtils.getArkExportInImportInfoWithName(methodName, arkClass.getDeclaringArkFile(), arkClass)) !== null && _d !== void 0 ? _d : SdkUtils_1.SdkUtils.getSdkGlobal(methodName);
165
170
  let { mtd: method, sig: signature } = this.processArkExportForMethodAndSignature(arkExport, arkClass);
166
171
  if (method) {
167
172
  signature = method.matchMethodSignature(expr.getArgs());
@@ -274,16 +279,13 @@ class IRInference {
274
279
  this.inferBase(ref, arkMethod);
275
280
  const baseType = TypeInference_1.TypeInference.replaceAliasType(ref.getBase().getType());
276
281
  if (baseType instanceof Type_1.ArrayType && ref.getFieldName() !== 'length') {
282
+ // 替换埋葬:本 ref 即将被 ArkArrayRef 替换——纯 retire。
283
+ ref.retireTemp();
277
284
  return new Ref_1.ArkArrayRef(ref.getBase(), ValueUtil_1.ValueUtil.createConst(ref.getFieldName()));
278
285
  }
279
- let newFieldSignature = this.generateNewFieldSignature(ref, arkMethod.getDeclaringArkClass(), baseType);
280
- if (newFieldSignature) {
281
- if (newFieldSignature.isStatic()) {
282
- return new Ref_1.ArkStaticFieldRef(newFieldSignature);
283
- }
284
- ref.setFieldSignature(newFieldSignature);
285
- }
286
- return ref;
286
+ // 判别联合消费——终态执行统一走 core 的 applyFieldResolution(formal:graduate/static 转换;params:static probe 转换/就地演进)。
287
+ const resolution = this.generateNewFieldSignature(ref, arkMethod.getDeclaringArkClass(), baseType);
288
+ return IRInference_1.IRInference.applyFieldResolution(ref, resolution);
287
289
  }
288
290
  static inferBase(instance, arkMethod) {
289
291
  const base = instance.getBase();
@@ -466,7 +468,7 @@ class IRInference {
466
468
  return null;
467
469
  }
468
470
  static inferInvokeExprWithArray(methodName, expr, baseType, scene) {
469
- const arrayInterface = scene.getSdkGlobal(Builtin_1.Builtin.ARRAY);
471
+ const arrayInterface = SdkUtils_1.SdkUtils.getSdkGlobal(Builtin_1.Builtin.ARRAY);
470
472
  if (arrayInterface instanceof ArkClass_1.ArkClass) {
471
473
  return this.inferInvokeExpr(expr, new Type_1.ClassType(arrayInterface.getSignature(), [baseType.getBaseType()]), methodName, scene);
472
474
  }
@@ -482,7 +484,7 @@ class IRInference {
482
484
  expr.setMethodSignature(baseType.getMethodSignature());
483
485
  return expr;
484
486
  }
485
- const funcInterface = scene.getSdkGlobal(TSConst_1.FUNCTION);
487
+ const funcInterface = SdkUtils_1.SdkUtils.getSdkGlobal(TSConst_1.FUNCTION);
486
488
  if (funcInterface instanceof ArkClass_1.ArkClass) {
487
489
  const method = ModelUtils_1.ModelUtils.findPropertyInClass(methodName, funcInterface);
488
490
  if (method instanceof ArkMethod_1.ArkMethod) {
@@ -497,7 +499,7 @@ class IRInference {
497
499
  var _a, _b;
498
500
  let declaredClass = scene.getClass(baseType.getClassSignature());
499
501
  if (!declaredClass) {
500
- const globalClass = scene.getSdkGlobal(baseType.getClassSignature().getClassName());
502
+ const globalClass = SdkUtils_1.SdkUtils.getSdkGlobal(baseType.getClassSignature().getClassName());
501
503
  if (globalClass instanceof ArkClass_1.ArkClass) {
502
504
  declaredClass = globalClass;
503
505
  }
@@ -526,12 +528,16 @@ class IRInference {
526
528
  }
527
529
  else {
528
530
  const subSignature = new ArkSignature_1.MethodSubSignature(methodName, [], new Type_1.ClassType(baseType.getClassSignature()));
531
+ // getClassSignature() (not getClassSigID()): the class may still be unclear and live in
532
+ // the temp canonicalizer; the object overload interns it properly.
529
533
  expr.setMethodSignature(new ArkSignature_1.MethodSignature(baseType.getClassSignature(), subSignature));
530
534
  }
531
535
  return expr;
532
536
  }
533
537
  else if (methodName === Builtin_1.Builtin.ITERATOR_NEXT &&
534
- baseType.getClassSignature().getDeclaringFileSignature().getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
538
+ baseType.getClassSigID() === -1 &&
539
+ baseType.getClassSignature().getClassName() === Builtin_1.Builtin.ITERATOR) {
540
+ // Fires only on the UNRESOLVED iterator stub (old: virtual 'CXX/std' project check).
535
541
  expr.getMethodSignature().getMethodSubSignature().setReturnType(Builtin_1.Builtin.ITERATOR_RESULT_CLASS_TYPE);
536
542
  expr.setRealGenericTypes(baseType.getRealGenericTypes());
537
543
  return expr;
@@ -588,12 +594,20 @@ class IRInference {
588
594
  static replaceMethodSignature(init, declared) {
589
595
  const className = init.getDeclaringClassSignature().getClassName();
590
596
  let classSignature;
591
- if (declared.getDeclaringClassSignature().getClassName().endsWith('Interface')) {
597
+ // display 归一化:仅当 init 类名有信息量(非 %unk——组件 create/pop 的 init 由组件名直构)时包 alias。普通 interface 解析(init 为 %unk stub,
598
+ // 如 TestInterface.callf)直接用 declared——alias 会把显示退化为 %unk。
599
+ if (className !== Const_1.UNKNOWN_CLASS_NAME && declared.getDeclaringClassSignature().getClassName().endsWith('Interface')) {
592
600
  classSignature = new ArkSignature_1.AliasClassSignature(className, declared.getDeclaringClassSignature());
593
601
  }
594
602
  let newSubSignature;
595
603
  if (classSignature || newSubSignature) {
596
- return new ArkSignature_1.MethodSignature(classSignature !== null && classSignature !== void 0 ? classSignature : declared.getDeclaringClassSignature(), newSubSignature !== null && newSubSignature !== void 0 ? newSubSignature : declared.getMethodSubSignature());
604
+ const result = new ArkSignature_1.MethodSignature(classSignature !== null && classSignature !== void 0 ? classSignature : declared.getDeclaringClassSignature(), newSubSignature !== null && newSubSignature !== void 0 ? newSubSignature : declared.getMethodSubSignature());
605
+ // display 归一化:alias 产物 intern formal + 双注册 declared 的 ArkMethod model——expr 的 route() formal 命中持 SigID(display 由 formal
606
+ // canonical 自持,不再依赖 expr 锚定传入实例)。
607
+ if (classSignature !== undefined) {
608
+ (0, ArkSignature_1.internAliasMethodSignature)(result, declared);
609
+ }
610
+ return result;
597
611
  }
598
612
  return declared;
599
613
  }
@@ -641,6 +655,10 @@ class IRInference {
641
655
  base.setType(new Type_2.PointerType(baseType, 1));
642
656
  }
643
657
  }
658
+ /**
659
+ * 判别联合——定义点 canonical(formal 分支,终点确定)与新构造值(params 分支,终点不确定)分流;null = 未解析。
660
+ * 泛型守卫(泛型字段不走定义点)为 cpp 侧遗留语义,照搬不改。
661
+ */
644
662
  static generateNewFieldSignature(ref, arkClass, baseType) {
645
663
  if (baseType instanceof Type_1.AliasType) {
646
664
  return this.generateNewFieldSignature(ref, arkClass, baseType.getOriginalType());
@@ -658,17 +676,21 @@ class IRInference {
658
676
  if (typeWithoutPtrOrRef instanceof Type_1.ClassType) {
659
677
  const property = propertyAndType === null || propertyAndType === void 0 ? void 0 : propertyAndType[0];
660
678
  if (property instanceof ArkField_1.ArkField && property.getCategory() !== ArkField_1.FieldCategory.ENUM_MEMBER && !(property.getType() instanceof Type_1.GenericType)) {
661
- return property.getSignature();
679
+ // 定义点 canonical(formalId 直读)。
680
+ return { kind: 'formal', formalId: property.getFieldSigID(), staticFlag: property.isStatic(), type: property.getType() };
662
681
  }
663
682
  staticFlag =
664
683
  typeWithoutPtrOrRef.getClassSignature().getClassName() === Const_1.DEFAULT_ARK_CLASS_NAME ||
665
684
  ((property instanceof ArkField_1.ArkField || property instanceof ArkMethod_1.ArkMethod) && property.isStatic());
685
+ // Note: getClassSignature() (not getClassSigID()) — the class may still be unclear
686
+ // and live in the temp canonicalizer; the object overload interns it properly.
666
687
  signature = property instanceof ArkMethod_1.ArkMethod ? property.getSignature().getDeclaringClassSignature() : typeWithoutPtrOrRef.getClassSignature();
667
688
  }
668
689
  else if (typeWithoutPtrOrRef instanceof Type_1.ArrayType) {
669
690
  const property = propertyAndType === null || propertyAndType === void 0 ? void 0 : propertyAndType[0];
670
691
  if (property instanceof ArkField_1.ArkField) {
671
- return property.getSignature();
692
+ // 定义点 canonical(Array 字段)。
693
+ return { kind: 'formal', formalId: property.getFieldSigID(), staticFlag: property.isStatic(), type: property.getType() };
672
694
  }
673
695
  return null;
674
696
  }
@@ -679,7 +701,10 @@ class IRInference {
679
701
  else {
680
702
  return null;
681
703
  }
682
- return new ArkSignature_1.FieldSignature(fieldName, signature, propertyType !== null && propertyType !== void 0 ? propertyType : ref.getType(), staticFlag);
704
+ // 新构造值(终点不确定)——参数元组。
705
+ return signature instanceof ArkSignature_1.NamespaceSignature
706
+ ? { kind: 'params', fieldName, declaringOrID: signature.getNamespaceSigID(), type: propertyType !== null && propertyType !== void 0 ? propertyType : ref.getType(), staticFlag, namespaceDeclared: true }
707
+ : { kind: 'params', fieldName, declaringOrID: signature, type: propertyType !== null && propertyType !== void 0 ? propertyType : ref.getType(), staticFlag, namespaceDeclared: false };
683
708
  }
684
709
  static repairType(propertyType, fieldName, arkClass) {
685
710
  if (!propertyType || propertyType instanceof Type_1.UnknownType) {
@@ -723,7 +748,9 @@ class IRInference {
723
748
  this.assignAnonMethod(scene.getMethod(type.getMethodSignature()), property);
724
749
  }
725
750
  if (type instanceof Type_1.UnknownType) {
726
- anonField.setSignature(new ArkSignature_1.FieldSignature(anonField.getName(), property.getDeclaringArkClass().getSignature(), new Type_1.FunctionType(property.getSignature())));
751
+ // 类型对齐而非签名过户:同 assignAnonField——只补类型,不把匿名字段
752
+ // intern 到声明类名下(防 model 顶替写穿)。
753
+ anonField.getSignature().setType(new Type_1.FunctionType(property.getSignature()));
727
754
  }
728
755
  }
729
756
  }
@@ -765,10 +792,12 @@ class IRInference {
765
792
  }
766
793
  const leftOp = lastStmt.getLeftOp();
767
794
  if (leftOp instanceof Ref_1.AbstractFieldRef) {
768
- leftOp.setFieldSignature(property.getSignature());
795
+ // A2 快路径:定义点 canonical 回写(property 为 ArkField,ID 直读)。
796
+ leftOp.graduateToFormal(property.getFieldSigID());
769
797
  }
770
798
  }
771
- anonField.setSignature(property.getSignature());
799
+ // 类型对齐而非签名过户(同 core 侧 assignAnonField,防 model 顶替写穿)。
800
+ anonField.getSignature().setType(property.getSignature().getType());
772
801
  }
773
802
  static inferAliasTypeExpr(expr, arkMethod) {
774
803
  const originalObject = expr.getOriginalObject();
@@ -946,8 +975,10 @@ class IRInference {
946
975
  *@ param sortedRefFiles - sorted reference file array
947
976
  */
948
977
  static findMtdImpl(mtd, implClasses) {
949
- if (mtd.getImplementationSignature() || mtd.isDefaultArkMethod() ||
950
- mtd.getName() === Const_1.INSTANCE_INIT_METHOD_NAME || mtd.getName() === Const_1.STATIC_INIT_METHOD_NAME) {
978
+ if (mtd.getImplementationSignature() ||
979
+ mtd.isDefaultArkMethod() ||
980
+ mtd.getName() === Const_1.INSTANCE_INIT_METHOD_NAME ||
981
+ mtd.getName() === Const_1.STATIC_INIT_METHOD_NAME) {
951
982
  return;
952
983
  }
953
984
  this.mapHeaderToSource(mtd, implClasses);
@@ -1031,7 +1062,7 @@ class IRInference {
1031
1062
  static getClassWithNameAndNamespace(clsName, file, namespaceName) {
1032
1063
  let tgtNamespacesInFile = [];
1033
1064
  if (namespaceName) {
1034
- tgtNamespacesInFile = ModelUtils_1.ModelUtils.getAllNamespacesInFile(file).filter(ns => ns.getName() === namespaceName);
1065
+ tgtNamespacesInFile = file.getAllNamespacesUnderThisFile().filter(ns => ns.getName() === namespaceName);
1035
1066
  }
1036
1067
  const searchedClasses = [];
1037
1068
  if (tgtNamespacesInFile.length !== 0) {
@@ -1078,7 +1109,9 @@ class IRInference {
1078
1109
  const declSignature = mtdDecl.getDeclareSignatures();
1079
1110
  const declSignatureInMtdImpl = mtdImpl.getDeclareSignatures();
1080
1111
  if (declSignature) {
1081
- declSignatureInMtdImpl ? declSignatureInMtdImpl.push(...declSignature) : mtdImpl.setDeclareSignatures(declSignature);
1112
+ // getDeclareSignatures() returns a rebuilt copy — write the merged list back explicitly.
1113
+ const merged = declSignatureInMtdImpl ? [...declSignatureInMtdImpl, ...declSignature] : [...declSignature];
1114
+ mtdImpl.setDeclareSignatures(merged);
1082
1115
  }
1083
1116
  // 3.The function implementation may be missing the existing modifiers (such as static) in the function declaration. Here we add
1084
1117
  mtdImpl.setModifiers(mtdDecl.getModifiers() | mtdImpl.getModifiers());
@@ -15,6 +15,7 @@ export declare class IRUtils {
15
15
  static isTempLocal(value: Value): boolean;
16
16
  static findOperandIdx(stmt: Stmt, operand: Value): number;
17
17
  static adjustOperandOriginalPositions(stmt: Stmt, oldValue: Value, newValue: Value): void;
18
+ static generateDefaultPositionsPacked(count: number): number[];
18
19
  static generateDefaultPositions(count: number): FullPosition[];
19
20
  static buildLambdaCaptureListFromAst(lambdaExpr: CxxAstNode): string;
20
21
  private static formatLambdaCaptureEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"IRUtils.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/IRUtils.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAgC,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,OAAO;WACF,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAczC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;WAWvC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;WAYjH,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,gBAAgB;WAS1H,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAIlC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM;WAYlD,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;WAqClF,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;WAQvD,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAc3E,OAAO,CAAC,MAAM,CAAC,wBAAwB;WAezB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;WAmB5C,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;WAc9E,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE;CAUnF"}
1
+ {"version":3,"file":"IRUtils.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/IRUtils.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAgC,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,OAAO;WACF,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAczC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;WAWvC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;WAYjH,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,gBAAgB;WAS1H,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAIlC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM;WAYlD,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;WAqClF,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;WAUvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;WAQvD,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAc3E,OAAO,CAAC,MAAM,CAAC,wBAAwB;WAezB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;WAmB5C,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;WAiB9E,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE;CAUnF"}
@@ -78,11 +78,11 @@ class IRUtils {
78
78
  return index;
79
79
  }
80
80
  static adjustOperandOriginalPositions(stmt, oldValue, newValue) {
81
- const operandOriginalPositions = stmt.getOperandOriginalPositions();
82
- if (!operandOriginalPositions) {
81
+ const packed = stmt.getOperandPositionsPacked();
82
+ if (!packed) {
83
83
  return;
84
84
  }
85
- const operandOriginalPositionSize = operandOriginalPositions.length;
85
+ const operandOriginalPositionSize = packed.length >> 1;
86
86
  const defUseSize = stmt.getDefAndUses().length;
87
87
  const oldValueUseSize = oldValue.getUses().length;
88
88
  const newValueUseSize = newValue.getUses().length;
@@ -91,30 +91,39 @@ class IRUtils {
91
91
  const fieldValueOffset = 2;
92
92
  if (oldValue instanceof Ref_1.AbstractRef && newValue instanceof Ref_1.AbstractRef) {
93
93
  if (newValue instanceof Ref_1.ArkStaticFieldRef) {
94
- operandOriginalPositions.splice(oldValueIdx + baseValueOffset, oldValueUseSize - newValueUseSize);
94
+ packed.splice(2 * (oldValueIdx + baseValueOffset), 2 * (oldValueUseSize - newValueUseSize));
95
95
  }
96
96
  else if (oldValue instanceof Ref_1.ArkStaticFieldRef) {
97
- operandOriginalPositions.splice(oldValueIdx + baseValueOffset, 0, ...IRUtils.generateDefaultPositions(newValueUseSize - oldValueUseSize));
97
+ packed.splice(2 * (oldValueIdx + baseValueOffset), 0, ...IRUtils.generateDefaultPositionsPacked(newValueUseSize - oldValueUseSize));
98
98
  }
99
99
  if (oldValue instanceof Ref_1.ArkInstanceFieldRef && newValue instanceof Ref_1.ArkArrayRef) {
100
100
  if (operandOriginalPositionSize === defUseSize) {
101
101
  // may not reserve positions for field name
102
- operandOriginalPositions.splice(oldValueIdx + fieldValueOffset, 0, ...IRUtils.generateDefaultPositions(newValueUseSize - oldValueUseSize));
102
+ packed.splice(2 * (oldValueIdx + fieldValueOffset), 0, ...IRUtils.generateDefaultPositionsPacked(newValueUseSize - oldValueUseSize));
103
103
  }
104
104
  }
105
105
  else if (oldValue instanceof Ref_1.ArkArrayRef && newValue instanceof Ref_1.ArkInstanceFieldRef) {
106
- operandOriginalPositions.splice(oldValueIdx + fieldValueOffset, oldValueUseSize - newValueUseSize);
106
+ packed.splice(2 * (oldValueIdx + fieldValueOffset), 2 * (oldValueUseSize - newValueUseSize));
107
107
  }
108
108
  }
109
109
  else if (oldValue instanceof Expr_1.AbstractInvokeExpr && newValue instanceof Expr_1.AbstractInvokeExpr) {
110
110
  if (oldValueUseSize === newValueUseSize + 1) {
111
- operandOriginalPositions.splice(oldValueIdx + baseValueOffset, 1);
111
+ packed.splice(2 * (oldValueIdx + baseValueOffset), 2);
112
112
  }
113
113
  else if (oldValueUseSize === newValueUseSize - 1) {
114
- operandOriginalPositions.splice(oldValueIdx + baseValueOffset, 0, Position_1.FullPosition.DEFAULT);
114
+ packed.splice(2 * (oldValueIdx + baseValueOffset), 0, Position_1.FullPosition.DEFAULT.getFirstPacked(), Position_1.FullPosition.DEFAULT.getLastPacked());
115
115
  }
116
116
  }
117
117
  }
118
+ static generateDefaultPositionsPacked(count) {
119
+ const packed = [];
120
+ const first = Position_1.FullPosition.DEFAULT.getFirstPacked();
121
+ const last = Position_1.FullPosition.DEFAULT.getLastPacked();
122
+ for (let i = 0; i < count; i++) {
123
+ packed.push(first, last);
124
+ }
125
+ return packed;
126
+ }
118
127
  static generateDefaultPositions(count) {
119
128
  const defaultPositions = [];
120
129
  for (let i = 0; i < count; i++) {
@@ -171,7 +180,10 @@ class IRUtils {
171
180
  return '';
172
181
  }
173
182
  static analyzeLambdaDefaultCapture(captureList) {
174
- const parts = captureList.split(',').map(p => p.trim()).filter(Boolean);
183
+ const parts = captureList
184
+ .split(',')
185
+ .map(p => p.trim())
186
+ .filter(Boolean);
175
187
  let defaultCaptureType = null;
176
188
  for (const part of parts) {
177
189
  if (part === '=') {
@@ -38,6 +38,25 @@ export declare class CxxModelUtils {
38
38
  static getStaticMethodInFileWithName(methodName: string, arkFile: ArkFile): ArkMethod | null;
39
39
  static getAccessibleAnonNamespacesInFile(file: ArkFile, namespace?: ArkNamespace): ArkNamespace[];
40
40
  static findPropertyInNamespace(name: string, namespace: ArkNamespace): ArkExport | undefined;
41
+ /**
42
+ * Resolve a nested class / local class referenced by its short (unqualified) name.
43
+ *
44
+ * C++ name lookup makes nested classes visible by their bare name inside the
45
+ * enclosing class, but the analyzer stores them under a composed top-level name
46
+ * (`Inner$Outer`, multi-level chains like `I$I2$Outer`, method-local classes as
47
+ * `L$Cls.m`). Instead of fuzzy prefix matching on the container's class list,
48
+ * this walks the enclosing-name chain of the context class and resolves each
49
+ * candidate by an exact ClassSignature lookup (O(1) per candidate).
50
+ *
51
+ * Candidate order follows C++ scoping (innermost first), so a same-name nested
52
+ * class correctly shadows an outer/top-level class.
53
+ * @param shortName - the bare source name of the nested class
54
+ * @param ctxClass - the class where the reference occurs (scope context)
55
+ * @param ctxMethod - optional; the method where the reference occurs. When present,
56
+ * classes declared inside the method body (`L$Cls.m`) are also considered.
57
+ * @returns The matching ArkClass, or null when no candidate resolves.
58
+ */
59
+ static findClassByShortName(shortName: string, ctxClass: ArkClass, ctxMethod?: ArkMethod): ArkClass | null;
41
60
  static findSymbolInFileWithName(symbolName: string, arkClass: ArkClass, onlyType?: boolean): ArkExport | null;
42
61
  static isIOStreamObjectMatched(parameters: MethodParameter[], args: Value[], scene: Scene): boolean;
43
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ModelUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAY,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAI5F,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAWjD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAiDvC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAanE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAe/F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAKrE;AAgHD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,CAqBnH;AA2FD,qBAAa,aAAa;WAER,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;WAmCvG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI;WAyClF,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;WAW3F,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;WAclF,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;WAgBrF,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE;WAY1F,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS;WAiBrF,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAE,OAAe,GAAG,SAAS,GAAG,IAAI;WA0C7G,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAiB7G"}
1
+ {"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../../src/frontend/cppFrontend/common/ModelUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAY,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAI5F,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAWjD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAiDvC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAanE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAe/F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAKrE;AAgHD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,CAqBnH;AA2FD,qBAAa,aAAa;WAER,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;WAmCvG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI;WAyClF,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;WAW3F,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;WAclF,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;WAgBrF,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE;WAY1F,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS;IAiBnG;;;;;;;;;;;;;;;;;OAiBG;WACW,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI;WAwDnG,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAE,OAAe,GAAG,SAAS,GAAG,IAAI;WAgD7G,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAiB7G"}