ranger-compiler 3.5.0 → 3.5.2

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 (338) hide show
  1. package/CHANGELOG.md +1160 -19
  2. package/LICENSE +3 -1
  3. package/README.md +124 -29
  4. package/dist/Lang.rgr +1188 -290
  5. package/dist/api.d.ts +2343 -879
  6. package/dist/api.js +79924 -56922
  7. package/dist/lib/JSON.rgr +102 -91
  8. package/dist/lib/Shell.rgr +4 -4
  9. package/dist/lib/apple/AppleToolchain.rgr +4 -4
  10. package/dist/lib/apple/README.md +5 -4
  11. package/dist/lib/apple/apple_test.rgr +1 -1
  12. package/dist/lib/core/README.md +1 -1
  13. package/dist/lib/evg/EVG.rgr +12 -0
  14. package/dist/lib/evg/EVGA11yFromTree.rgr +302 -0
  15. package/dist/lib/evg/EVGA11yTree.rgr +894 -0
  16. package/dist/lib/evg/EVGBox.rgr +267 -0
  17. package/dist/lib/evg/EVGBoxShorthandTest.rgr +220 -0
  18. package/dist/lib/evg/EVGCodepoint.rgr +316 -0
  19. package/dist/lib/evg/EVGColor.rgr +700 -0
  20. package/dist/lib/evg/EVGCommands.rgr +177 -0
  21. package/dist/lib/evg/EVGComponent.rgr +331 -0
  22. package/dist/lib/evg/EVGComponentTest.rgr +387 -0
  23. package/dist/lib/evg/EVGConnector.rgr +541 -0
  24. package/dist/lib/evg/EVGConnectorTest.rgr +306 -0
  25. package/dist/lib/evg/EVGDisplayList.rgr +4186 -0
  26. package/dist/lib/evg/EVGEasing.rgr +370 -0
  27. package/dist/lib/evg/EVGEffectTest.rgr +253 -0
  28. package/dist/lib/evg/EVGElement.rgr +4914 -0
  29. package/dist/lib/evg/EVGFixedTest.rgr +289 -0
  30. package/dist/lib/evg/EVGFlexRulesTest.rgr +317 -0
  31. package/dist/lib/evg/EVGFlexWrapTest.rgr +246 -0
  32. package/dist/lib/evg/EVGFling.rgr +244 -0
  33. package/dist/lib/evg/EVGFocus.rgr +400 -0
  34. package/dist/lib/evg/EVGFocusTest.rgr +399 -0
  35. package/dist/lib/evg/EVGGradient.rgr +322 -0
  36. package/dist/lib/evg/EVGGrapheme.rgr +190 -0
  37. package/dist/lib/evg/EVGGrid.rgr +975 -0
  38. package/dist/lib/evg/EVGHitTest.rgr +208 -0
  39. package/dist/lib/evg/EVGHoles.rgr +294 -0
  40. package/dist/lib/evg/EVGHostMeasurerTest.rgr +281 -0
  41. package/dist/lib/evg/EVGHostTextMeasurer.rgr +331 -0
  42. package/dist/lib/evg/EVGHostTree.rgr +834 -0
  43. package/dist/lib/evg/EVGHostTreeTest.rgr +447 -0
  44. package/dist/lib/evg/EVGImageDecode.rgr +117 -0
  45. package/dist/lib/evg/EVGImageMeasurer.rgr +86 -0
  46. package/dist/lib/evg/EVGInspect.rgr +883 -0
  47. package/dist/lib/evg/EVGInvalidateTest.rgr +432 -0
  48. package/dist/lib/evg/EVGJsonTest.rgr +535 -0
  49. package/dist/lib/evg/EVGLayout.rgr +4220 -0
  50. package/dist/lib/evg/EVGMeasure.rgr +1267 -0
  51. package/dist/lib/evg/EVGOverlayTest.rgr +626 -0
  52. package/dist/lib/evg/EVGPatch.rgr +1721 -0
  53. package/dist/lib/evg/EVGPatchTest.rgr +692 -0
  54. package/dist/lib/evg/EVGPopoverTest.rgr +395 -0
  55. package/dist/lib/evg/EVGReconcile.rgr +226 -0
  56. package/dist/lib/evg/EVGReconcileTest.rgr +421 -0
  57. package/dist/lib/evg/EVGReject.rgr +126 -0
  58. package/dist/lib/evg/EVGRelayoutTest.rgr +375 -0
  59. package/dist/lib/evg/EVGRtlLayoutTest.rgr +319 -0
  60. package/dist/lib/evg/EVGRuler.rgr +232 -0
  61. package/dist/lib/evg/EVGRulerTest.rgr +172 -0
  62. package/dist/lib/evg/EVGSelectChrome.rgr +178 -0
  63. package/dist/lib/evg/EVGStyleCacheTest.rgr +419 -0
  64. package/dist/lib/evg/EVGStyleSheet.rgr +2148 -0
  65. package/dist/lib/evg/EVGStyleStateTest.rgr +407 -0
  66. package/dist/lib/evg/EVGStyleVarTest.rgr +471 -0
  67. package/dist/lib/evg/EVGText.rgr +105 -0
  68. package/dist/lib/evg/EVGTextEngine.rgr +536 -0
  69. package/dist/lib/evg/EVGTextMeasurer.rgr +720 -0
  70. package/dist/lib/evg/EVGTimingTest.rgr +1417 -0
  71. package/dist/lib/evg/EVGToolbar.rgr +1369 -0
  72. package/dist/lib/evg/EVGTransition.rgr +728 -0
  73. package/dist/lib/evg/EVGTreeJson.rgr +721 -0
  74. package/dist/lib/evg/EVGUnit.rgr +554 -0
  75. package/dist/lib/evg/EVGViewportUnitTest.rgr +236 -0
  76. package/dist/lib/evg/EvgApp.rgr +189 -0
  77. package/dist/lib/evg/EvgBitmapTracer.rgr +4277 -0
  78. package/dist/lib/evg/EvgBitmapTracerTest.rgr +2119 -0
  79. package/dist/lib/evg/EvgHost.rgr +451 -0
  80. package/dist/lib/evg/EvgTest.rgr +91 -0
  81. package/dist/lib/evg/EvgTraceColor.rgr +236 -0
  82. package/dist/lib/evg/EvgTraceCurve.rgr +648 -0
  83. package/dist/lib/evg/EvgTraceFit.rgr +767 -0
  84. package/dist/lib/evg/EvgTracePath.rgr +435 -0
  85. package/dist/lib/evg/EvgTraceTypes.rgr +559 -0
  86. package/dist/lib/evg/EvgViewport.rgr +313 -0
  87. package/dist/lib/evg/FxDemoDoc.rgr +185 -0
  88. package/dist/lib/evg/HOSTS.md +227 -0
  89. package/dist/lib/evg/ISSUES.md +835 -0
  90. package/dist/lib/evg/PLAN_ACCESSIBILITY.md +650 -0
  91. package/dist/lib/evg/PLAN_CSS_LAYOUT_AND_FONTS.md +1124 -0
  92. package/dist/lib/evg/PLAN_EFFECTS.md +431 -0
  93. package/dist/lib/evg/PLAN_EVG.md +518 -0
  94. package/dist/lib/evg/PLAN_EVG_RENDERER.md +1674 -0
  95. package/dist/lib/evg/PLAN_INSPECTOR.md +788 -0
  96. package/dist/lib/evg/PLAN_LINKS_AND_FORMS.md +157 -0
  97. package/dist/lib/evg/PLAN_NATIVE_HOSTS.md +671 -0
  98. package/dist/lib/evg/PLAN_VECTOR_IR.md +664 -0
  99. package/dist/lib/evg/PLAN_VIEW_TRANSFORM.md +322 -0
  100. package/dist/lib/evg/PathBuilder.rgr +333 -0
  101. package/dist/lib/evg/README.md +1236 -0
  102. package/dist/lib/evg/SPEC.md +1252 -0
  103. package/dist/lib/evg/SVGPathParser.rgr +1199 -0
  104. package/dist/lib/evg/SvgParser.rgr +1736 -0
  105. package/dist/lib/evg/TODO_EVG_RENDERER.md +595 -0
  106. package/dist/lib/evg/VectorShapes.rgr +331 -0
  107. package/dist/lib/evg/VectorStroke.rgr +107 -0
  108. package/dist/lib/evg/VectorViewBox.rgr +380 -0
  109. package/dist/lib/evg/agent/README.md +290 -0
  110. package/dist/lib/evg/agent/evg_agent.rgr +899 -0
  111. package/dist/lib/evg/agent/fixtures/broken.evg.json +7 -0
  112. package/dist/lib/evg/agent/fixtures/card.evg.json +9 -0
  113. package/dist/lib/evg/agent/fixtures/connector.css +63 -0
  114. package/dist/lib/evg/agent/fixtures/connector.evg.json +14 -0
  115. package/dist/lib/evg/agent/fixtures/drawn.evg.json +129 -0
  116. package/dist/lib/evg/agent/fixtures/gradient.evg.json +4 -0
  117. package/dist/lib/evg/agent/fixtures/popover.css +99 -0
  118. package/dist/lib/evg/agent/fixtures/popover.evg.json +30 -0
  119. package/dist/lib/evg/agent/roundtrip.sh +74 -0
  120. package/dist/lib/evg/agent/smoke.sh +230 -0
  121. package/dist/lib/evg/android/README.md +97 -0
  122. package/dist/lib/evg/android/androidstubs/AndroidStubs.kt +175 -0
  123. package/dist/lib/evg/android/androidstubs/Annotation.kt +10 -0
  124. package/dist/lib/evg/android/androidstubs/App.kt +30 -0
  125. package/dist/lib/evg/android/androidstubs/Content.kt +41 -0
  126. package/dist/lib/evg/android/androidstubs/ContentRes.kt +12 -0
  127. package/dist/lib/evg/android/androidstubs/InputMethod.kt +46 -0
  128. package/dist/lib/evg/android/androidstubs/Net.kt +6 -0
  129. package/dist/lib/evg/android/androidstubs/Os.kt +30 -0
  130. package/dist/lib/evg/android/androidstubs/Util.kt +15 -0
  131. package/dist/lib/evg/android/androidstubs/View.kt +113 -0
  132. package/dist/lib/evg/android/androidstubs/Widget.kt +16 -0
  133. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidEvgSurface.kt +323 -0
  134. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidTextMeasurer.kt +56 -0
  135. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/RippleEffect.kt +262 -0
  136. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtEvgSurface.kt +238 -0
  137. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtTextMeasurer.kt +85 -0
  138. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgEngineThread.kt +115 -0
  139. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgPainter.kt +231 -0
  140. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgSurface.kt +117 -0
  141. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/RecordingSurface.kt +94 -0
  142. package/dist/lib/evg/apple/README.md +128 -0
  143. package/dist/lib/evg/apple/Sources/CoreGraphicsEvgSurface.swift +329 -0
  144. package/dist/lib/evg/apple/Sources/CoreTextMeasurer.swift +70 -0
  145. package/dist/lib/evg/apple/Sources/EvgEngineQueue.swift +105 -0
  146. package/dist/lib/evg/apple/Sources/EvgPainter.swift +225 -0
  147. package/dist/lib/evg/apple/Sources/EvgSurface.swift +163 -0
  148. package/dist/lib/evg/apple/Sources/RecordingSurface.swift +110 -0
  149. package/dist/lib/evg/bench/EvgLayoutBench.rgr +34 -0
  150. package/dist/lib/evg/bench/README.md +64 -0
  151. package/dist/lib/evg/bench/layout-bench.mjs +316 -0
  152. package/dist/lib/evg/bench/layout-cases.mjs +510 -0
  153. package/dist/lib/evg/bench/layout-conformance.mjs +254 -0
  154. package/dist/lib/evg/bin/.gitignore +17 -0
  155. package/dist/lib/evg/evg_test.rgr +313 -0
  156. package/dist/lib/evg/gl/README.md +198 -0
  157. package/dist/lib/evg/gl/a11y-paint-check.mjs +73 -0
  158. package/dist/lib/evg/gl/blur-check.mjs +399 -0
  159. package/dist/lib/evg/gl/boxmodel.json +1 -0
  160. package/dist/lib/evg/gl/demo.html +46 -0
  161. package/dist/lib/evg/gl/effect-presets.css +285 -0
  162. package/dist/lib/evg/gl/effect-presets.js +63 -0
  163. package/dist/lib/evg/gl/effect-shots.mjs +135 -0
  164. package/dist/lib/evg/gl/evg-a11y.js +566 -0
  165. package/dist/lib/evg/gl/evg-binary.js +160 -0
  166. package/dist/lib/evg/gl/evg-engine.js +296 -0
  167. package/dist/lib/evg/gl/evg-fx.js +237 -0
  168. package/dist/lib/evg/gl/evg-gestures.js +209 -0
  169. package/dist/lib/evg/gl/evg-list.js +167 -0
  170. package/dist/lib/evg/gl/evg-measure.js +186 -0
  171. package/dist/lib/evg/gl/evg-textinput.js +303 -0
  172. package/dist/lib/evg/gl/evg-view.js +144 -0
  173. package/dist/lib/evg/gl/evg-webgl.js +3942 -0
  174. package/dist/lib/evg/gl/fx-check.mjs +998 -0
  175. package/dist/lib/evg/gl/fx-demo.html +166 -0
  176. package/dist/lib/evg/gl/fx-demo.js +2 -0
  177. package/dist/lib/evg/gl/fx-serve.mjs +47 -0
  178. package/dist/lib/evg/gl/gestures-check.mjs +189 -0
  179. package/dist/lib/evg/gl/list-binary-check.mjs +152 -0
  180. package/dist/lib/evg/gl/measure-check.mjs +135 -0
  181. package/dist/lib/evg/gl/rotation-check.mjs +207 -0
  182. package/dist/lib/evg/gl/shift-check.mjs +113 -0
  183. package/dist/lib/evg/gl/stroke-check.mjs +168 -0
  184. package/dist/lib/evg/gl/text-snap-check.mjs +139 -0
  185. package/dist/lib/evg/gl/view-check.mjs +343 -0
  186. package/dist/lib/evg/gl/view-policy-check.mjs +184 -0
  187. package/dist/lib/evg/html/evg-dom.js +318 -0
  188. package/dist/lib/evg/html/evg-html.js +600 -0
  189. package/dist/lib/evg/inspect/README.md +415 -0
  190. package/dist/lib/evg/inspect/browser-smoke.mjs +115 -0
  191. package/dist/lib/evg/inspect/evg-inspect.js +947 -0
  192. package/dist/lib/evg/inspect/shots/css.png +0 -0
  193. package/dist/lib/evg/inspect/shots/dashboard.png +0 -0
  194. package/dist/lib/evg/inspect/shots/pptx-slide.png +0 -0
  195. package/dist/lib/evg/inspect/shots/state.png +0 -0
  196. package/dist/lib/evg/inspect/shots.mjs +226 -0
  197. package/dist/lib/evg/oracle/css-blur.json +576 -0
  198. package/dist/lib/evg/oracle/css-box.json +157 -0
  199. package/dist/lib/evg/oracle/css-timing.json +709 -0
  200. package/dist/lib/evg/oracle/css_blur_oracle.mjs +529 -0
  201. package/dist/lib/evg/oracle/css_box_oracle.mjs +106 -0
  202. package/dist/lib/evg/oracle/css_timing_oracle.mjs +389 -0
  203. package/dist/lib/evg/original/EVGColor.clj +310 -0
  204. package/dist/lib/evg/original/EVGColorContext.rgr +178 -0
  205. package/dist/lib/evg/original/SVGPath.rgr +627 -0
  206. package/dist/lib/evg/original/Vec2.crgr +103 -0
  207. package/dist/lib/evg/ranger.json +9 -0
  208. package/dist/lib/evg/showcase/README.md +246 -0
  209. package/dist/lib/evg/showcase/assets/emblem.svg +30 -0
  210. package/dist/lib/evg/showcase/assets/rosette.svg +22 -0
  211. package/dist/lib/evg/showcase/build.mjs +651 -0
  212. package/dist/lib/evg/showcase/pages/album.tsx +30 -0
  213. package/dist/lib/evg/showcase/pages/boxmodel.tsx +37 -0
  214. package/dist/lib/evg/showcase/pages/cards.tsx +41 -0
  215. package/dist/lib/evg/showcase/pages/chart_api.tsx +170 -0
  216. package/dist/lib/evg/showcase/pages/charts.tsx +219 -0
  217. package/dist/lib/evg/showcase/pages/drawing.tsx +160 -0
  218. package/dist/lib/evg/showcase/pages/emoji.tsx +91 -0
  219. package/dist/lib/evg/showcase/pages/flex.tsx +46 -0
  220. package/dist/lib/evg/showcase/pages/more.tsx +332 -0
  221. package/dist/lib/evg/showcase/pages/plots.tsx +262 -0
  222. package/dist/lib/evg/showcase/pages/svg.tsx +63 -0
  223. package/dist/lib/evg/showcase/pages/tables.tsx +209 -0
  224. package/dist/lib/evg/showcase/pages/typography.tsx +43 -0
  225. package/dist/lib/evg/showcase/pages/units.tsx +35 -0
  226. package/dist/lib/evg/showcase/pages/variants.tsx +233 -0
  227. package/dist/lib/evg/showcase/pages/vector.tsx +75 -0
  228. package/dist/lib/evg/showcase/pages/views.tsx +223 -0
  229. package/dist/lib/evg/showcase/tests/chart_api_smoke.mjs +339 -0
  230. package/dist/lib/evg/showcase/tests/gl_smoke.mjs +125 -0
  231. package/dist/lib/evg/showcase/themes/chart_api-default.css +15 -0
  232. package/dist/lib/evg/showcase/themes/charts-default.css +29 -0
  233. package/dist/lib/evg/showcase/themes/drawing-default.css +35 -0
  234. package/dist/lib/evg/showcase/themes/more-default.css +128 -0
  235. package/dist/lib/evg/showcase/themes/plots-default.css +18 -0
  236. package/dist/lib/evg/showcase/themes/showcase.css +508 -0
  237. package/dist/lib/evg/showcase/themes/tables-default.css +123 -0
  238. package/dist/lib/evg/showcase/themes/variants-default.css +15 -0
  239. package/dist/lib/evg/showcase/themes/views-default.css +15 -0
  240. package/dist/lib/evg/tools/bench_vs_potrace.mjs +290 -0
  241. package/dist/lib/evg/tools/evg_image_tool.rgr +488 -0
  242. package/dist/lib/evg/tools/evg_trace_bench.rgr +114 -0
  243. package/dist/lib/evg/tools/evg_trace_cli.rgr +662 -0
  244. package/dist/lib/evg/tools/evg_trace_cpp_bench.rgr +83 -0
  245. package/dist/lib/evg/tools/run_trace_bench.sh +74 -0
  246. package/dist/lib/evg/tools/run_trace_cli_smoke.sh +128 -0
  247. package/dist/lib/evg/web/responsive/EvgResponsiveCheck.rgr +271 -0
  248. package/dist/lib/evg/web/responsive/EvgResponsiveDemo.rgr +531 -0
  249. package/dist/lib/evg/web/responsive/README.md +97 -0
  250. package/dist/lib/evg/web/responsive/build.mjs +90 -0
  251. package/dist/lib/evg/web/responsive/dom-check.mjs +169 -0
  252. package/dist/lib/evg/web/responsive/index.html +177 -0
  253. package/dist/lib/evg/web/responsive/smoke.mjs +221 -0
  254. package/dist/lib/evg/web/tools/assets-client.mjs +95 -0
  255. package/dist/lib/evg/web/tools/boot-bench.mjs +189 -0
  256. package/dist/lib/evg/web/tools/inline-assets.mjs +119 -0
  257. package/dist/lib/evg/web/tools/minify.mjs +60 -0
  258. package/dist/lib/evg/web/tracer/build.mjs +87 -0
  259. package/dist/lib/evg/web/tracer/index.html +2805 -0
  260. package/dist/lib/evg/web/tracer/sample.png +0 -0
  261. package/dist/lib/evg/web/tracer/smoke.mjs +1162 -0
  262. package/dist/lib/evgr/Cargo.lock +21 -0
  263. package/dist/lib/evgr/Cargo.toml +19 -0
  264. package/dist/lib/evgr/README.md +140 -0
  265. package/dist/lib/evgr/bench/NativeBench.rgr +246 -0
  266. package/dist/lib/evgr/bench/compare.mjs +252 -0
  267. package/dist/lib/evgr/bench/speed.mjs +277 -0
  268. package/dist/lib/evgr/bin/.gitignore +3 -0
  269. package/dist/lib/evgr/src/bin/bench.rs +106 -0
  270. package/dist/lib/evgr/src/bin/smoke.rs +13 -0
  271. package/dist/lib/evgr/src/grid.rs +730 -0
  272. package/dist/lib/evgr/src/lib.rs +1003 -0
  273. package/dist/lib/evgr/src/style.rs +468 -0
  274. package/dist/lib/evgr/src/text.rs +83 -0
  275. package/dist/lib/image/BitReader.rgr +171 -0
  276. package/dist/lib/image/Buffer.rgr +173 -0
  277. package/dist/lib/image/DCT.rgr +283 -0
  278. package/dist/lib/image/Deflate.rgr +339 -0
  279. package/dist/lib/image/HuffmanDecoder.rgr +181 -0
  280. package/dist/lib/image/ImageBuffer.rgr +706 -0
  281. package/dist/lib/image/JPEGDecoder.rgr +808 -0
  282. package/dist/lib/image/PNGDecoder.rgr +544 -0
  283. package/dist/lib/image/PNGEncoder.rgr +388 -0
  284. package/dist/lib/image/PPMImage.rgr +224 -0
  285. package/dist/lib/image/ProgressiveJPEGDecoder.rgr +1154 -0
  286. package/dist/lib/image/README.md +33 -0
  287. package/dist/lib/image/RasterBuffer.rgr +294 -0
  288. package/dist/lib/image/VP8BoolDecoder.rgr +163 -0
  289. package/dist/lib/image/WebPDecoder.rgr +433 -0
  290. package/dist/lib/image/WebPLossless.rgr +1035 -0
  291. package/dist/lib/image/WebPLossy.rgr +1929 -0
  292. package/dist/lib/image/ranger.json +9 -0
  293. package/dist/lib/image/testdata/webp/anim_2f_24x16.webp +0 -0
  294. package/dist/lib/image/testdata/webp/fixtures.txt +33 -0
  295. package/dist/lib/image/testdata/webp/gen_fixtures.py +261 -0
  296. package/dist/lib/image/testdata/webp/ll_1x1.webp +0 -0
  297. package/dist/lib/image/testdata/webp/ll_alpha_29x21.webp +0 -0
  298. package/dist/lib/image/testdata/webp/ll_gradient_64x64.webp +0 -0
  299. package/dist/lib/image/testdata/webp/ll_meta_32x32.webp +0 -0
  300. package/dist/lib/image/testdata/webp/ll_noise_17x9.webp +0 -0
  301. package/dist/lib/image/testdata/webp/ll_pal11_23x11.webp +0 -0
  302. package/dist/lib/image/testdata/webp/ll_pal2_19x7.webp +0 -0
  303. package/dist/lib/image/testdata/webp/ll_pal40_16x16.webp +0 -0
  304. package/dist/lib/image/testdata/webp/ll_pal4_13x5.webp +0 -0
  305. package/dist/lib/image/testdata/webp/ll_photo_40x30.webp +0 -0
  306. package/dist/lib/image/testdata/webp/ll_predictors_64x32.webp +0 -0
  307. package/dist/lib/image/testdata/webp/ly_1x1.webp +0 -0
  308. package/dist/lib/image/testdata/webp/ly_alph_raw_f0_21x13.webp +0 -0
  309. package/dist/lib/image/testdata/webp/ly_alph_raw_f1_21x13.webp +0 -0
  310. package/dist/lib/image/testdata/webp/ly_alph_raw_f2_21x13.webp +0 -0
  311. package/dist/lib/image/testdata/webp/ly_alph_raw_f3_21x13.webp +0 -0
  312. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f0_21x13.webp +0 -0
  313. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f1_21x13.webp +0 -0
  314. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f2_21x13.webp +0 -0
  315. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f3_21x13.webp +0 -0
  316. package/dist/lib/image/testdata/webp/ly_alpha_33x17.webp +0 -0
  317. package/dist/lib/image/testdata/webp/ly_exif_15x11.webp +0 -0
  318. package/dist/lib/image/testdata/webp/ly_i16_96x80.webp +0 -0
  319. package/dist/lib/image/testdata/webp/ly_nofilter_24x20.webp +0 -0
  320. package/dist/lib/image/testdata/webp/ly_odd_17x9.webp +0 -0
  321. package/dist/lib/image/testdata/webp/ly_photo_48x40.webp +0 -0
  322. package/dist/lib/image/testdata/webp/ly_q100_20x18.webp +0 -0
  323. package/dist/lib/image/testdata/webp/ly_sharp_40x36.webp +0 -0
  324. package/dist/lib/image/testdata/webp/ly_simple_filter_33x31.webp +0 -0
  325. package/dist/lib/image/testdata/webp/ly_vpx_parts8_37x45.webp +0 -0
  326. package/dist/lib/image/testdata/webp/ly_vpx_skip_96x80.webp +0 -0
  327. package/dist/lib/image/tests/WebPDecodeTool.rgr +81 -0
  328. package/dist/lib/image/tests/WebPDecoderTest.rgr +1162 -0
  329. package/dist/lib/image/tests/run_webp_tests.sh +39 -0
  330. package/dist/lib/rust/RsJson.rgr +468 -0
  331. package/dist/lib/rust/RsPrelude.rgr +1663 -0
  332. package/dist/lib/shell_test.rgr +7 -7
  333. package/dist/lib/stdlib.rgr +21 -5
  334. package/dist/lib/zip/ranger.json +6 -0
  335. package/dist/rgrc.js +87318 -67610
  336. package/package.json +1010 -1040
  337. package/dist/README.md +0 -117
  338. package/dist/package.json +0 -47
package/dist/api.d.ts CHANGED
@@ -1,3 +1,54 @@
1
+ export declare enum RangerAnnType {
2
+ None = 0,
3
+ Expression = 1,
4
+ Type = 2,
5
+ VRef = 3
6
+ }
7
+ export declare enum RangerMethodCallType {
8
+ None = 0,
9
+ Method = 1,
10
+ Static = 2
11
+ }
12
+ export declare enum RangerWrap {
13
+ None = 0,
14
+ Optional = 1,
15
+ Unwrap = 2
16
+ }
17
+ export declare enum RangerVForce {
18
+ None = 0,
19
+ Weak = 1,
20
+ Strong = 2
21
+ }
22
+ export declare enum RangerNodeRefType {
23
+ NoType = 0,
24
+ Weak = 1,
25
+ Strong = 2,
26
+ Shared = 3,
27
+ StrongImmutable = 4
28
+ }
29
+ export declare enum RangerContextVarType {
30
+ NoType = 0,
31
+ This = 1,
32
+ ThisProperty = 2,
33
+ NewObject = 3,
34
+ FunctionParameter = 4,
35
+ LocalVariable = 5,
36
+ Array = 6,
37
+ Object = 7,
38
+ Property = 8,
39
+ Class = 9,
40
+ Function = 10
41
+ }
42
+ export declare enum DictNodeType {
43
+ NoType = 0,
44
+ Double = 1,
45
+ Integer = 2,
46
+ String = 3,
47
+ Boolean = 4,
48
+ Array = 5,
49
+ Object = 6,
50
+ Null = 7
51
+ }
1
52
  export declare class CmdParams {
2
53
  flags: {
3
54
  [key: string]: boolean;
@@ -14,7 +65,6 @@ export declare class CmdParams {
14
65
  static fromDictionary(dict: Record<string, any>): CmdParams;
15
66
  }
16
67
  export declare class test_cmdparams {
17
- constructor();
18
68
  run(): void;
19
69
  }
20
70
  export declare class InputFSFolder {
@@ -49,9 +99,9 @@ export declare class InputFileResolver {
49
99
  knownName(name: string): boolean;
50
100
  baseName(path: string): string;
51
101
  exists(path: string, name: string): boolean;
52
- tryRead(path: string, name: string): Promise<string> | undefined;
102
+ tryRead(path: string, name: string): string | undefined;
53
103
  hostHas(name: string): boolean;
54
- hostRead(name: string): Promise<string> | undefined;
104
+ hostRead(name: string): string | undefined;
55
105
  toDictionary(): Record<string, any>;
56
106
  static fromDictionary(dict: Record<string, any>): InputFileResolver;
57
107
  }
@@ -69,18 +119,12 @@ export declare class InputEnv {
69
119
  toDictionary(): Record<string, any>;
70
120
  static fromDictionary(dict: Record<string, any>): InputEnv;
71
121
  }
72
- export declare class test_input_filesystem {
73
- constructor();
74
- }
75
122
  export declare class RangerAppTodo {
76
123
  description: string;
77
124
  todonode?: CodeNode;
78
125
  constructor();
79
126
  }
80
127
  export declare class RangerCompilerMessage {
81
- error_level: number;
82
- code_line: number;
83
- fileName: string;
84
128
  description: string;
85
129
  node?: CodeNode;
86
130
  constructor();
@@ -126,7 +170,6 @@ export declare class RangerDocBlock {
126
170
  viewFor(name: string): RangerDocBlock;
127
171
  }
128
172
  export declare class RangerDocReader {
129
- constructor();
130
173
  wordAt(node: CodeNode, idx: number): string;
131
174
  textFrom(node: CodeNode, startIndex: number): string;
132
175
  blockArgOf(node: CodeNode): CodeNode;
@@ -146,7 +189,6 @@ export declare class RangerApiMethod {
146
189
  name: string;
147
190
  compiledName: string;
148
191
  is_static: boolean;
149
- is_constructor: boolean;
150
192
  is_public: boolean;
151
193
  returnType: string;
152
194
  returnDoc: string;
@@ -212,6 +254,38 @@ export declare class RangerApiBuilder {
212
254
  markExamplesOf(doc: RangerDocBlock, owner: CodeNode, ctx: RangerAppWriterContext): void;
213
255
  resolveExamples(model: RangerApiModel, ctx: RangerAppWriterContext): void;
214
256
  }
257
+ export declare class RangerApiPackageWriter {
258
+ settingOr(ctx: RangerAppWriterContext, key: string, fallback: string): string;
259
+ jsonEscape(value: string): string;
260
+ writeNpmPackage(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
261
+ xmlEscape(value: string): string;
262
+ writeCsProject(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
263
+ writeDocFxConfig(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
264
+ writeDocFxHome(model: RangerApiModel, ctx: RangerAppWriterContext, name: string, orig_wr: CodeWriter): void;
265
+ swiftModuleName(raw: string): string;
266
+ writeSwiftPackage(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
267
+ writeDocCCatalog(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
268
+ writeKotlinGradle(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
269
+ writeDokkaModuleDoc(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
270
+ writeDartBarrel(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter, node: CodeNode): void;
271
+ pyModuleName(raw: string): string;
272
+ writePyProject(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
273
+ writePyAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
274
+ writeReadme(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
275
+ writeDartPubspec(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
276
+ writeAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter, node: CodeNode): void;
277
+ }
278
+ export declare class RangerApiArtifactWriter {
279
+ jsonEscape(value: string): string;
280
+ jsonString(value: string): string;
281
+ jsonBool(value: boolean): string;
282
+ jsonStringList(items: Array<string>): string;
283
+ docFields(doc: RangerDocBlock, has: boolean): string;
284
+ writeJson(model: RangerApiModel, ctx: RangerAppWriterContext, wr: CodeWriter): void;
285
+ writeMarkdown(model: RangerApiModel, ctx: RangerAppWriterContext, wr: CodeWriter): void;
286
+ writeReport(model: RangerApiModel, wr: CodeWriter): void;
287
+ writeAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
288
+ }
215
289
  export declare class RangerDocCommentWriter {
216
290
  exampleTexts: Array<string>;
217
291
  constructor();
@@ -263,42 +337,7 @@ export declare class RangerDocCommentWriter {
263
337
  writeCsDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
264
338
  static lookupFn(ctx: RangerAppWriterContext, name: string): RangerAppFunctionDesc;
265
339
  }
266
- export declare class RangerApiArtifactWriter {
267
- constructor();
268
- jsonEscape(value: string): string;
269
- jsonString(value: string): string;
270
- jsonBool(value: boolean): string;
271
- jsonStringList(items: Array<string>): string;
272
- docFields(doc: RangerDocBlock, has: boolean): string;
273
- writeJson(model: RangerApiModel, ctx: RangerAppWriterContext, wr: CodeWriter): void;
274
- writeMarkdown(model: RangerApiModel, ctx: RangerAppWriterContext, wr: CodeWriter): void;
275
- writeReport(model: RangerApiModel, wr: CodeWriter): void;
276
- writeAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
277
- }
278
- export declare class RangerApiPackageWriter {
279
- constructor();
280
- settingOr(ctx: RangerAppWriterContext, key: string, fallback: string): string;
281
- jsonEscape(value: string): string;
282
- writeNpmPackage(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
283
- xmlEscape(value: string): string;
284
- writeCsProject(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
285
- writeDocFxConfig(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
286
- writeDocFxHome(model: RangerApiModel, ctx: RangerAppWriterContext, name: string, orig_wr: CodeWriter): void;
287
- swiftModuleName(raw: string): string;
288
- writeSwiftPackage(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
289
- writeDocCCatalog(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
290
- writeKotlinGradle(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
291
- writeDokkaModuleDoc(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
292
- writeDartBarrel(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter, node: CodeNode): void;
293
- pyModuleName(raw: string): string;
294
- writePyProject(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
295
- writePyAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
296
- writeReadme(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
297
- writeDartPubspec(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
298
- writeAll(model: RangerApiModel, ctx: RangerAppWriterContext, orig_wr: CodeWriter, node: CodeNode): void;
299
- }
300
340
  export declare class RangerParamEventHandler {
301
- constructor();
302
341
  callback(param: RangerAppParamDesc): void;
303
342
  }
304
343
  export declare class RangerParamEventList {
@@ -376,12 +415,13 @@ export declare class RangerAppParamDesc {
376
415
  propertyClass?: RangerAppClassDesc;
377
416
  fnDesc?: RangerAppFunctionDesc;
378
417
  ownerHistory: Array<RangerRefForce>;
379
- varType: number;
380
- refType: number;
381
- initRefType: number;
418
+ varType: RangerContextVarType;
419
+ refType: RangerNodeRefType;
420
+ initRefType: RangerNodeRefType;
382
421
  isParam?: boolean;
383
422
  paramIndex: number;
384
423
  is_optional: boolean;
424
+ implicit_optional: boolean;
385
425
  is_mutating: boolean;
386
426
  is_set: boolean;
387
427
  is_class_variable: boolean;
@@ -419,7 +459,7 @@ export declare class RangerAppParamDesc {
419
459
  is_doc_example: boolean;
420
460
  docExampleText: string;
421
461
  has_events: boolean;
422
- eMap?: RangerParamEventMap;
462
+ eMap: RangerParamEventMap;
423
463
  constructor();
424
464
  addEvent(name: string, e: RangerParamEventHandler): void;
425
465
  changeStrengthSelf(newStrength: number, lifeTime: number): void;
@@ -458,7 +498,7 @@ export declare class RangerAppFunctionDesc extends RangerAppParamDesc {
458
498
  is_unsed: boolean;
459
499
  is_called_from_main: boolean;
460
500
  container_class?: RangerAppClassDesc;
461
- refType: number;
501
+ refType: RangerNodeRefType;
462
502
  fnCtx?: RangerAppWriterContext;
463
503
  insideFn?: RangerAppFunctionDesc;
464
504
  call_graph_done: boolean;
@@ -484,9 +524,9 @@ export declare class RangerAppFunctionDesc extends RangerAppParamDesc {
484
524
  mutates_param_indices: Array<number>;
485
525
  constructor();
486
526
  addCallTo(m: RangerAppFunctionDesc): void;
487
- addIndirectClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): Promise<void>;
488
- addClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): Promise<void>;
489
- forOtherVersions(ctx: RangerAppWriterContext, cb: (item: RangerAppFunctionDesc) => void): Promise<void>;
527
+ addIndirectClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
528
+ addClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
529
+ forOtherVersions(ctx: RangerAppWriterContext, cb: (item: RangerAppFunctionDesc) => void): void;
490
530
  isFunction(): boolean;
491
531
  isClass(): boolean;
492
532
  isProperty(): boolean;
@@ -552,6 +592,12 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
552
592
  is_operator_class: boolean;
553
593
  is_generic_instance: boolean;
554
594
  is_union: boolean;
595
+ generic_template: string;
596
+ generic_args: Array<string>;
597
+ generic_has_placeholder: boolean;
598
+ is_generic_form: boolean;
599
+ is_type_param: boolean;
600
+ type_param_name: string;
555
601
  is_used_by_main: boolean;
556
602
  is_not_used: boolean;
557
603
  generic_params?: CodeNode;
@@ -595,6 +641,7 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
595
641
  };
596
642
  rust_trait_mut_ready: boolean;
597
643
  rust_needs_ref_semantics: boolean;
644
+ rust_trait_reentrant: boolean;
598
645
  rust_ref_reason: string;
599
646
  constructor();
600
647
  isClass(): boolean;
@@ -618,7 +665,9 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
618
665
  findStaticMethod(f_name: string): RangerAppFunctionDesc | undefined;
619
666
  findVariable(f_name: string): RangerAppParamDesc | undefined;
620
667
  addParentClass(p_name: string): void;
621
- createVariable(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
668
+ createVariable(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
669
+ isAssignedInConstructor(fieldName: string): boolean;
670
+ isAssignedInConstructorBefore(fieldName: string, readPos: number): boolean;
622
671
  addVariable(desc: RangerAppParamDesc): void;
623
672
  addMethod(desc: RangerAppFunctionDesc): void;
624
673
  addStaticMethod(desc: RangerAppFunctionDesc): void;
@@ -653,54 +702,25 @@ export declare class SourceCode {
653
702
  code: string;
654
703
  lines: Array<string>;
655
704
  filename: string;
705
+ lineStarts: Array<number>;
706
+ lineStartsReady: boolean;
656
707
  constructor(code_str: string);
657
708
  getLineString(line_index: number): string;
709
+ ensureLineStarts(): void;
658
710
  getLine(sp: number): number;
659
711
  getColumnStr(sp: number): string;
660
712
  getColumn(sp: number): number;
661
713
  }
662
- export declare class CodeNodeLiteral {
663
- expression: boolean;
664
- vref: string;
665
- is_block_node: boolean;
666
- type_name: string;
667
- key_type: string;
668
- array_type: string;
669
- ns: Array<string>;
670
- has_vref_annotation: boolean;
671
- vref_annotation?: CodeNodeLiteral;
672
- has_type_annotation: boolean;
673
- type_annotation?: CodeNodeLiteral;
674
- parsed_type: number;
675
- value_type: number;
676
- double_value: number;
677
- string_value: string;
678
- int_value: number;
679
- boolean_value: boolean;
680
- expression_value?: CodeNodeLiteral;
681
- props: {
682
- [key: string]: CodeNodeLiteral;
683
- };
684
- prop_keys: Array<string>;
685
- comments: Array<CodeNodeLiteral>;
686
- children: Array<CodeNodeLiteral>;
687
- attrs: Array<CodeNodeLiteral>;
688
- constructor();
689
- toDictionary(): Record<string, any>;
690
- static fromDictionary(dict: Record<string, any>): CodeNodeLiteral;
691
- }
692
714
  export declare class CodeNode {
693
715
  code?: SourceCode;
694
716
  sp: number;
695
717
  ep: number;
696
718
  row: number;
697
- col: number;
698
719
  has_operator: boolean;
699
720
  disabled_node: boolean;
700
721
  op_index: number;
701
722
  is_array_literal: boolean;
702
723
  is_system_class: boolean;
703
- is_plugin: boolean;
704
724
  is_direct_method_call: boolean;
705
725
  mutable_def: boolean;
706
726
  expression: boolean;
@@ -717,6 +737,13 @@ export declare class CodeNode {
717
737
  rust_preevaluated_args: Array<CodeNode>;
718
738
  rust_use_tmpvar: string;
719
739
  rust_is_tail_return: boolean;
740
+ rg_moved_here: boolean;
741
+ rg_init_fold: boolean;
742
+ rg_init_fields: Array<string>;
743
+ rg_init_values: Array<CodeNode>;
744
+ rg_init_stmts: Array<CodeNode>;
745
+ rg_init_covers_all: boolean;
746
+ rg_init_folded: boolean;
720
747
  operator_pred: number;
721
748
  to_the_right: boolean;
722
749
  right_node?: CodeNode;
@@ -731,8 +758,7 @@ export declare class CodeNode {
731
758
  type_annotation?: CodeNode;
732
759
  parsed_type: number;
733
760
  value_type: number;
734
- ref_type: number;
735
- ref_need_assign: number;
761
+ ref_type: RangerNodeRefType;
736
762
  double_value: number;
737
763
  string_value: string;
738
764
  int_value: number;
@@ -749,7 +775,6 @@ export declare class CodeNode {
749
775
  appGUID: string;
750
776
  register_name: string;
751
777
  register_expressions: Array<CodeNode>;
752
- after_expression: Array<CodeNode>;
753
778
  definedTypeClass?: RangerTypeClass;
754
779
  evalTypeClass?: RangerTypeClass;
755
780
  lambda_ctx?: RangerAppWriterContext;
@@ -780,18 +805,19 @@ export declare class CodeNode {
780
805
  operator_node?: CodeNode;
781
806
  flow_ctx?: RangerAppWriterContext;
782
807
  is_part_of_chain: boolean;
808
+ is_paren_member: boolean;
783
809
  methodChain: Array<CallChain>;
784
810
  chainTarget?: CodeNode;
785
811
  register_set: boolean;
786
- did_walk: boolean;
787
812
  reg_compiled_name: string;
788
813
  tag: string;
789
814
  matched_type: string;
790
815
  constructor(source: SourceCode, start: number, end: number);
816
+ IsOptional(): boolean;
791
817
  childCnt(): number;
792
818
  getChild(index: number): CodeNode | undefined;
793
819
  chlen(): number;
794
- forTree(callback: (item: CodeNode, i: number) => void): Promise<void>;
820
+ forTree(callback: (item: CodeNode, i: number) => void): void;
795
821
  parallelTree(otherTree: CodeNode, callback: (left: CodeNode, right: CodeNode, i: number) => void): void;
796
822
  walkTreeUntil(callback: (item: CodeNode, i: number) => boolean): void;
797
823
  getParsedString(): string;
@@ -842,8 +868,8 @@ export declare class CodeNode {
842
868
  inferDefExpressionTypeFromValue(node: CodeNode): void;
843
869
  inferDefTypeFromValue(node: CodeNode): void;
844
870
  getCode(): string;
845
- cleanNode(): Promise<void>;
846
- cleanCopy(): Promise<CodeNode>;
871
+ cleanNode(): void;
872
+ cleanCopy(): CodeNode;
847
873
  copy(): CodeNode;
848
874
  clone(): CodeNode;
849
875
  push(node: CodeNode): void;
@@ -884,7 +910,6 @@ export declare class CodeNode {
884
910
  static blockFromList(list: Array<CodeNode>): CodeNode;
885
911
  }
886
912
  export declare class TTypeRegistry {
887
- constructor();
888
913
  static scalarPrimitiveNames(): Array<string>;
889
914
  static isIntAlias(typeName: string): boolean;
890
915
  static isFloatAlias(typeName: string): boolean;
@@ -975,10 +1000,21 @@ export declare class RangerAppWriterContext {
975
1000
  op_list: {
976
1001
  [key: string]: RangerOperatorList;
977
1002
  };
1003
+ automatically_unwrapped: {
1004
+ [key: string]: boolean;
1005
+ };
1006
+ known_present: {
1007
+ [key: string]: boolean;
1008
+ };
1009
+ flow_narrowed: {
1010
+ [key: string]: number;
1011
+ };
1012
+ auto_unwrap_suppression: number;
978
1013
  reservedWords?: CodeNode;
979
1014
  intRootCounter: number;
980
1015
  targetLangName: string;
981
1016
  parent?: RangerAppWriterContext;
1017
+ cachedRoot?: RangerAppWriterContext;
982
1018
  defined_imports: Array<string>;
983
1019
  active_macros: {
984
1020
  [key: string]: boolean;
@@ -1043,6 +1079,12 @@ export declare class RangerAppWriterContext {
1043
1079
  templateClasses: {
1044
1080
  [key: string]: RangerAppClassDesc;
1045
1081
  };
1082
+ nativeGenerics: {
1083
+ [key: string]: boolean;
1084
+ };
1085
+ genericFormUses: {
1086
+ [key: string]: Array<string>;
1087
+ };
1046
1088
  classStaticWriters: {
1047
1089
  [key: string]: CodeWriter;
1048
1090
  };
@@ -1094,13 +1136,16 @@ export declare class RangerAppWriterContext {
1094
1136
  opNs: Array<string>;
1095
1137
  langFilePath: string;
1096
1138
  libraryPaths: Array<string>;
1139
+ moduleFunctions: {
1140
+ [key: string]: string;
1141
+ };
1142
+ fileModules: {
1143
+ [key: string]: string;
1144
+ };
1097
1145
  outputPath: string;
1098
1146
  counters: TypeCounts;
1099
1147
  parser?: RangerFlowParser;
1100
1148
  compiler?: LiveCompiler;
1101
- pluginNodes: {
1102
- [key: string]: RangerNodeList;
1103
- };
1104
1149
  typedNodes: {
1105
1150
  [key: string]: RangerNodeList;
1106
1151
  };
@@ -1128,6 +1173,17 @@ export declare class RangerAppWriterContext {
1128
1173
  rootFile: string;
1129
1174
  constructor();
1130
1175
  rustMarkMoved(varName: string): void;
1176
+ setKnownPresent(varName: string): void;
1177
+ isKnownPresent(varName: string): boolean;
1178
+ setFlowNarrowed(varName: string, state: number): void;
1179
+ isNarrowed(varName: string): boolean;
1180
+ isPresentForStrict(varName: string): boolean;
1181
+ setAutomaticallyUnwrapped(varName: string): void;
1182
+ getListOfAutomaticallyUnwrapped(): Array<string>;
1183
+ isAutomaticallyUnwrapped(varName: string): boolean;
1184
+ suppressAutoUnwrap(): void;
1185
+ restoreAutoUnwrap(): void;
1186
+ autoUnwrapIsSuppressed(): boolean;
1131
1187
  rustIsMoved(varName: string): boolean;
1132
1188
  rustClearMoved(varName: string): void;
1133
1189
  rustIncUsage(varName: string): void;
@@ -1139,7 +1195,8 @@ export declare class RangerAppWriterContext {
1139
1195
  unsetTestCompile(): void;
1140
1196
  isTestCompile(): boolean;
1141
1197
  addOpFn(name: string, code: CodeNode): void;
1142
- getOpFns(name: string): Promise<Array<CodeNode>>;
1198
+ isOptional(node: CodeNode): boolean;
1199
+ getOpFns(name: string): Array<CodeNode>;
1143
1200
  getLastBlockOp(): CodeNode | undefined;
1144
1201
  removePluginOp(name: string): void;
1145
1202
  isPluginOp(node: CodeNode): boolean;
@@ -1149,24 +1206,22 @@ export declare class RangerAppWriterContext {
1149
1206
  getTypeClass(name: string): RangerTypeClass | undefined;
1150
1207
  getParser(): RangerFlowParser | undefined;
1151
1208
  getCompiler(): LiveCompiler | undefined;
1152
- getTypedNodes(name: string): Promise<Array<CodeNode>>;
1209
+ getTypedNodes(name: string): Array<CodeNode>;
1153
1210
  addTypedNode(name: string, op: CodeNode): void;
1154
- getPluginNodes(name: string): Promise<Array<CodeNode>>;
1155
- addPluginNode(name: string, op: CodeNode): void;
1156
1211
  addOperator(op: RangerAppOperatorDesc): void;
1157
- getAllOperators(): Promise<Array<RangerAppOperatorDesc>>;
1212
+ getAllOperators(): Array<RangerAppOperatorDesc>;
1158
1213
  getOperatorsOf(name: string): Array<RangerAppOperatorDesc>;
1159
- initOpList(): Promise<void>;
1214
+ initOpList(): void;
1160
1215
  incLambdaCnt(): void;
1161
1216
  createNewRegName(): string;
1162
1217
  createNewOpFnName(): string;
1163
1218
  isTryBlock(): boolean;
1164
1219
  isCatchBlock(): boolean;
1165
- pushAndCollectAst(rootNode: CodeNode, wr: CodeWriter): Promise<void>;
1166
- pushAndCompileAst(rootNode: CodeNode, wr: CodeWriter): Promise<void>;
1220
+ pushAndCollectAst(rootNode: CodeNode, wr: CodeWriter): void;
1221
+ pushAndCompileAst(rootNode: CodeNode, wr: CodeWriter): void;
1167
1222
  pushAst(source_code: string, node: CodeNode, wr: CodeWriter): void;
1168
- pushAndCollectCode(source_code: string, wr: CodeWriter): Promise<void>;
1169
- pushCode(source_code: string, wr: CodeWriter): Promise<void>;
1223
+ pushAndCollectCode(source_code: string, wr: CodeWriter): void;
1224
+ pushCode(source_code: string, wr: CodeWriter): void;
1170
1225
  addViewClassBody(name: string, classDef: CodeNode): void;
1171
1226
  addPage(name: string, classDef: CodeNode): void;
1172
1227
  addService(name: string, classDef: CodeNode): void;
@@ -1174,14 +1229,14 @@ export declare class RangerAppWriterContext {
1174
1229
  addOpNs(n: string): void;
1175
1230
  removeOpNs(n: string): void;
1176
1231
  inLambda(): boolean;
1177
- variableTypeUsage(): Promise<Array<string>>;
1178
- writeContextVars(wr: CodeWriter): Promise<void>;
1179
- writeContextInfo(wr: CodeWriter): Promise<void>;
1180
- getContextInfo(): Promise<string>;
1232
+ variableTypeUsage(): Array<string>;
1233
+ writeContextVars(wr: CodeWriter): void;
1234
+ writeContextInfo(wr: CodeWriter): void;
1235
+ getContextInfo(): string;
1181
1236
  isCapturing(): boolean;
1182
1237
  forkWithOps(opNode: CodeNode): RangerAppWriterContext;
1183
1238
  getOperatorDef(): RangerActiveOperators;
1184
- getOperators(name: string): Promise<Array<CodeNode>>;
1239
+ getOperators(name: string): Array<CodeNode>;
1185
1240
  isLocalToCapture(name: string): boolean;
1186
1241
  addCapturedVariable(name: string): void;
1187
1242
  getCapturedVariables(): Array<string>;
@@ -1199,14 +1254,19 @@ export declare class RangerAppWriterContext {
1199
1254
  hadValidType(node: CodeNode): boolean;
1200
1255
  findOperator(node: CodeNode): CodeNode;
1201
1256
  getStdCommands(): CodeNode;
1202
- findOperatorsWithName(name: string): Promise<Array<CodeNode>>;
1257
+ findOperatorsWithName(name: string): Array<CodeNode>;
1203
1258
  findClassWithSign(node: CodeNode): RangerAppClassDesc;
1204
1259
  createSignature(origClass: string, classSig: string): string;
1205
- createStaticMethod(withName: string, currC: RangerAppClassDesc, nameNode: CodeNode, argsNode: CodeNode, fnBody: CodeNode, parser: RangerFlowParser, wr: CodeWriter): Promise<RangerAppFunctionDesc>;
1260
+ createStaticMethod(withName: string, currC: RangerAppClassDesc, nameNode: CodeNode, argsNode: CodeNode, fnBody: CodeNode, parser: RangerFlowParser, wr: CodeWriter): RangerAppFunctionDesc;
1206
1261
  canUseTypeInference(nameNode: CodeNode): boolean;
1207
1262
  createOpStaticClass(name: string): RangerAppClassDesc;
1208
- createTraitInstanceClass(traitName: string, instanceName: string, initParams: CodeNode, flowParser: RangerFlowParser, wr: CodeWriter): Promise<RangerAppClassDesc> | undefined;
1209
- createGenericClassInstance(templateName: string, instanceName: string, typeArgs: CodeNode, flowParser: RangerFlowParser, wr: CodeWriter): Promise<RangerAppClassDesc> | undefined;
1263
+ createTraitInstanceClass(traitName: string, instanceName: string, initParams: CodeNode, flowParser: RangerFlowParser, wr: CodeWriter): RangerAppClassDesc | undefined;
1264
+ createGenericClassInstance(templateName: string, instanceName: string, typeArgs: CodeNode, flowParser: RangerFlowParser, wr: CodeWriter): RangerAppClassDesc | undefined;
1265
+ markGenericInstance(made: RangerAppClassDesc, templateName: string, typeArgs: CodeNode): void;
1266
+ setNativeGeneric(templateName: string, isNative: boolean): void;
1267
+ isNativeGeneric(templateName: string): boolean;
1268
+ isNativeGenericInstance(cl: RangerAppClassDesc): boolean;
1269
+ isWrittenClass(cl: RangerAppClassDesc): boolean;
1210
1270
  createOperator(fromNode: CodeNode): void;
1211
1271
  findClassMethod(cname: string, fname: string): RangerAppFunctionDesc | undefined;
1212
1272
  getFileWriter(path: string, fileName: string): CodeWriter;
@@ -1316,7 +1376,6 @@ export declare class SourceMapBuilder {
1316
1376
  hasMappings(): boolean;
1317
1377
  }
1318
1378
  export declare class RangerSourceFormat {
1319
- constructor();
1320
1379
  static defaultWidthFor(ext: string): number;
1321
1380
  static dotLeadsLine(ext: string): boolean;
1322
1381
  static isSpaceCode(c: number): boolean;
@@ -1432,6 +1491,9 @@ export declare class CodeWriter {
1432
1491
  line_end(str: string): void;
1433
1492
  advanceColumnForString(str: string): void;
1434
1493
  syncColumnFromCurrentLine(): void;
1494
+ lineMark(): number;
1495
+ lineMarkIsParenGroup(mark: number): boolean;
1496
+ stripLineMarkParens(mark: number): boolean;
1435
1497
  writeSlice(str: string, newLine: boolean): void;
1436
1498
  out(str: string, newLine: boolean): void;
1437
1499
  raw(str: string, newLine: boolean): void;
@@ -1441,7 +1503,7 @@ export declare class CodeWriter {
1441
1503
  export declare class RangerLispParser {
1442
1504
  code?: SourceCode;
1443
1505
  source_text: string;
1444
- buff?: string;
1506
+ buff?: Uint8Array;
1445
1507
  __len: number;
1446
1508
  i: number;
1447
1509
  last_line_start: number;
@@ -1460,10 +1522,11 @@ export declare class RangerLispParser {
1460
1522
  constructor(code_module: SourceCode);
1461
1523
  joo(cm: SourceCode): void;
1462
1524
  parse_raw_annotation(): CodeNode;
1463
- skip_space(s: string, is_block_parent: boolean): boolean;
1525
+ skip_space(s: Uint8Array, is_block_parent: boolean): boolean;
1526
+ attachParenMember(closed: CodeNode, listNode: CodeNode): void;
1464
1527
  end_expression(consumeCurrent: boolean): boolean;
1465
- getOperator(s: string, disabled: boolean): number;
1466
- isOperator(s: string, disabled: boolean): number;
1528
+ getOperator(s: Uint8Array, disabled: boolean): number;
1529
+ isOperator(s: Uint8Array, disabled: boolean): number;
1467
1530
  getOperatorPred(str: string, disabled: boolean): number;
1468
1531
  isComparisonOpPred(pred: number): boolean;
1469
1532
  isFoldableInfixPred(pred: number): boolean;
@@ -1478,14 +1541,13 @@ export declare class RangerLispParser {
1478
1541
  tryCloseCallArgParenBeforeInfix(): boolean;
1479
1542
  insert_node(p_node: CodeNode): void;
1480
1543
  attachPendingComments(node: CodeNode): void;
1481
- parse_attributes(s: string): boolean;
1482
- parseXML(s: string): void;
1544
+ parse_attributes(s: Uint8Array): boolean;
1545
+ parseXML(s: Uint8Array): void;
1483
1546
  parse(disable_ops: boolean): void;
1484
- parseBuf(s: string, disable_ops: boolean): void;
1547
+ parseBuf(s: Uint8Array, disable_ops: boolean): void;
1485
1548
  static normalizeLineEndings(src: string): string;
1486
1549
  }
1487
1550
  export declare class TTypes {
1488
- constructor();
1489
1551
  static nameToValue(name: string): number;
1490
1552
  static isPrimitive(valueType: number): boolean;
1491
1553
  static valueAsString(valueType: number): string;
@@ -1530,7 +1592,7 @@ export declare class DictNode {
1530
1592
  is_property: boolean;
1531
1593
  is_property_value: boolean;
1532
1594
  vref: string;
1533
- value_type: number;
1595
+ value_type: DictNodeType;
1534
1596
  double_value: number;
1535
1597
  int_value: number;
1536
1598
  string_value: string;
@@ -1567,7 +1629,6 @@ export declare class DictNode {
1567
1629
  static createEmptyObject(): DictNode;
1568
1630
  }
1569
1631
  export declare class RangerSerializeClass {
1570
- constructor();
1571
1632
  isSerializedClass(cName: string, ctx: RangerAppWriterContext): boolean;
1572
1633
  canSerializeClass(cName: string, ctx: RangerAppWriterContext): boolean;
1573
1634
  missesSerializeSupport(cName: string, ctx: RangerAppWriterContext): boolean;
@@ -1580,17 +1641,14 @@ export declare class RangerSerializeClass {
1580
1641
  createJSONSerializerFn2(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1581
1642
  }
1582
1643
  export declare class RangerImmutableExtension {
1583
- constructor();
1584
1644
  typeDefOf(p: RangerAppParamDesc): string;
1585
1645
  createImmutableExtension(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1586
1646
  }
1587
1647
  export declare class RangerProcessLifecycle {
1588
- constructor();
1589
1648
  emitInvokeMethods(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter, regName: string): void;
1590
1649
  emitStopSubtree(cl: RangerAppClassDesc, wr: CodeWriter, regName: string): void;
1591
1650
  }
1592
1651
  export declare class RangerProcessClass {
1593
- constructor();
1594
1652
  emitAssignProcessId(wr: CodeWriter): void;
1595
1653
  createProcessExtension(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter, typeId: number): void;
1596
1654
  emitStaticHelpers(cl: RangerAppClassDesc, typeId: number, wr: CodeWriter, regName: string): void;
@@ -1599,45 +1657,37 @@ export declare class RangerProcessClass {
1599
1657
  emitProcessTypeScriptHelpers(processClasses: Array<RangerAppClassDesc>, wr: CodeWriter): void;
1600
1658
  }
1601
1659
  export declare class RangerProcessProcSend {
1602
- constructor();
1603
1660
  static isReservedHandler(name: string): boolean;
1604
1661
  static collectProcessClasses(ctx: RangerAppWriterContext): Array<RangerAppClassDesc>;
1605
1662
  static findClassByPath(pathLit: string, processClasses: Array<RangerAppClassDesc>): RangerAppClassDesc | undefined;
1606
- static resolveTargetClass(parser: RangerFlowParser, target: CodeNode, processClasses: Array<RangerAppClassDesc>, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): Promise<RangerAppClassDesc> | undefined;
1607
- static matchHandler(parser: RangerFlowParser, recvClass: RangerAppClassDesc, methodName: string, argNodes: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): Promise<RangerAppFunctionDesc> | undefined;
1663
+ static resolveTargetClass(parser: RangerFlowParser, target: CodeNode, processClasses: Array<RangerAppClassDesc>, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): RangerAppClassDesc | undefined;
1664
+ static matchHandler(parser: RangerFlowParser, recvClass: RangerAppClassDesc, methodName: string, argNodes: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): RangerAppFunctionDesc | undefined;
1608
1665
  static buildLiveGuard(targetVref: string): CodeNode;
1609
1666
  static buildHandlerCall(targetVref: string, handlerName: string, argNodes: Array<CodeNode>): CodeNode;
1610
1667
  static buildFindRootExpr(targetVref: string): CodeNode;
1611
1668
  static buildDispatchTurnBoundary(opName: string, rootExpr: CodeNode): CodeNode;
1612
- static transform(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1669
+ static transform(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1613
1670
  }
1614
1671
  export declare class RangerProcessProcStartCheck {
1615
- constructor();
1616
- static validate(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1672
+ static validate(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1617
1673
  }
1618
1674
  export declare class RangerProcessCodegen {
1619
- constructor();
1620
1675
  validateProcessNewSite(node: CodeNode, newCl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
1621
1676
  shouldWrapProcessNew(procNewNode: CodeNode, procNewCtx: RangerAppWriterContext): boolean;
1622
1677
  hasParentRegister(procNewCtx: RangerAppWriterContext): boolean;
1623
- writeNewArgs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): Promise<void>;
1678
+ writeNewArgs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): void;
1624
1679
  writeProcessInstanceRegisterCall(wr: CodeWriter, lang: string): void;
1625
1680
  shouldUseProcessInstanceRegister(procNewCtx: RangerAppWriterContext, newCl: RangerAppClassDesc): boolean;
1626
1681
  writeRegisterCall(procNewCtx: RangerAppWriterContext, wr: CodeWriter, lang: string, newCl: RangerAppClassDesc): void;
1627
- writeWrappedNewCallEs6(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): Promise<void>;
1628
- writeWrappedNewCallKotlin(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): Promise<void>;
1629
- writeWrappedNewCallSwift6(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): Promise<void>;
1630
- writeWrappedNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, lang: string, writer: RangerGenericClassWriter): Promise<void>;
1682
+ writeWrappedNewCallEs6(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): void;
1683
+ writeWrappedNewCallKotlin(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): void;
1684
+ writeWrappedNewCallSwift6(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): void;
1685
+ writeWrappedNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, lang: string, writer: RangerGenericClassWriter): void;
1631
1686
  static isNamedProcess(cl: RangerAppClassDesc): boolean;
1632
1687
  static isInProcessInstanceMethod(ctx: RangerAppWriterContext): boolean;
1633
1688
  static isBootstrapSite(ctx: RangerAppWriterContext): boolean;
1634
1689
  static isInsideNamedProcessMethod(ctx: RangerAppWriterContext): boolean;
1635
1690
  }
1636
- export declare class RangerServiceBuilder {
1637
- constructor();
1638
- createOpStaticClass(ctx: RangerAppWriterContext, name: string): RangerAppClassDesc;
1639
- CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1640
- }
1641
1691
  export declare class RangerAppOperatorDesc extends RangerAppParamDesc {
1642
1692
  name: string;
1643
1693
  ref_cnt: number;
@@ -1651,7 +1701,6 @@ export declare class RangerAppOperatorDesc extends RangerAppParamDesc {
1651
1701
  isProperty(): boolean;
1652
1702
  }
1653
1703
  export declare class TFiles {
1654
- constructor();
1655
1704
  static searchEnv(env: InputEnv, paths: Array<string>, fileName: string): string;
1656
1705
  static search(paths: Array<string>, fileName: string): string;
1657
1706
  }
@@ -1685,7 +1734,6 @@ export declare class PkgJRead {
1685
1734
  static strOf(obj: PkgJVal, key: string): string;
1686
1735
  }
1687
1736
  export declare class PkgImport {
1688
- constructor();
1689
1737
  static isPkg(spec: string): boolean;
1690
1738
  static stripDot(spec: string): string;
1691
1739
  static cacheRoot(): string;
@@ -1695,11 +1743,11 @@ export declare class PkgImport {
1695
1743
  static parentDir(dir: string): string;
1696
1744
  static findManifestDir(env: InputEnv, start: string, paths: Array<string>): string;
1697
1745
  static walkUp(env: InputEnv, start: string): string;
1698
- static readText(env: InputEnv, dir: string, name: string): Promise<string>;
1746
+ static readText(env: InputEnv, dir: string, name: string): string;
1699
1747
  static findChar(s: string, code: number): number;
1700
1748
  static manifestChain(env: InputEnv, startDir: string, libraryPaths: Array<string>): Array<string>;
1701
- static resolve(env: InputEnv, startDir: string, spec: string, libraryPaths: Array<string>): Promise<PkgHit>;
1702
- static resolveIn(env: InputEnv, manDir: string, spec: string): Promise<PkgHit>;
1749
+ static resolve(env: InputEnv, startDir: string, spec: string, libraryPaths: Array<string>): PkgHit;
1750
+ static resolveIn(env: InputEnv, manDir: string, spec: string): PkgHit;
1703
1751
  static lockRoot(env: InputEnv, lockText: string, pkgName: string, manDir: string): string;
1704
1752
  }
1705
1753
  export declare class ClassJoinPoint {
@@ -1792,6 +1840,7 @@ export declare class RangerFlowParser {
1792
1840
  lastProcessedNode?: CodeNode;
1793
1841
  collectWalkAtEnd: Array<CodeNode>;
1794
1842
  walkAlso: Array<CodeNode>;
1843
+ genericCheckNodes: Array<CodeNode>;
1795
1844
  serializedClasses: Array<RangerAppClassDesc>;
1796
1845
  immutableClasses: Array<RangerAppClassDesc>;
1797
1846
  processClasses: Array<RangerAppClassDesc>;
@@ -1820,90 +1869,92 @@ export declare class RangerFlowParser {
1820
1869
  };
1821
1870
  constructor();
1822
1871
  fixExpressionAssignmentChains(node: CodeNode): void;
1823
- WalkNodeChildren(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1824
- WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1872
+ hoistParenthesisedReceivers(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1873
+ WalkNodeChildren(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1874
+ WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1825
1875
  getVoidNameSignature(): string;
1826
1876
  getNameSignature(node: CodeNode): string;
1827
1877
  getArgsSignature(node: CodeNode): string;
1828
1878
  getThisName(): string;
1829
- GetProperty(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1830
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1831
- EnterFnParts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<RangerFnParts>;
1832
- Constructor(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1879
+ GetProperty(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1880
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1881
+ EnterFnParts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerFnParts;
1882
+ Constructor(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1833
1883
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1834
1884
  normalizeNewArgList(node: CodeNode): void;
1835
- cmdNew(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1885
+ cmdNew(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1836
1886
  transformParams(list: Array<CodeNode>, fnArgs: Array<RangerAppParamDesc>, ctx: RangerAppWriterContext): Array<CodeNode>;
1837
1887
  transformParams2(list: Array<CodeNode>, fnArgs: Array<CodeNode>, ctx: RangerAppWriterContext): Array<CodeNode>;
1838
- CreateCTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1839
- CreateRTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1840
- walkXmlCreate(xmlNode: CodeNode, regName: string, in_currCnt: number, opBody: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<number>;
1841
- markAsyncFrom(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>): Promise<void>;
1842
- markAsyncFromVariant(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>, ctx: RangerAppWriterContext): Promise<void>;
1843
- markCalledFromMain(f: RangerAppFunctionDesc, ctx: RangerAppWriterContext): Promise<void>;
1844
- SolveAsyncFuncs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1845
- matchMethodCall(cl: RangerAppClassDesc, methodName: string, callArgs: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): Promise<RangerAppFunctionDesc> | undefined;
1846
- cmdCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1847
- matchLambdaArgs(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1848
- testLambdaCallArgs(lambda_expression: CodeNode, callParams: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1849
- cmdLocalCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1888
+ CreateCTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
1889
+ CreateRTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
1890
+ walkXmlCreate(xmlNode: CodeNode, regName: string, in_currCnt: number, opBody: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): number;
1891
+ markAsyncFrom(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>): void;
1892
+ markAsyncFromVariant(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>, ctx: RangerAppWriterContext): void;
1893
+ markCalledFromMain(f: RangerAppFunctionDesc, ctx: RangerAppWriterContext): void;
1894
+ SolveAsyncFuncs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1895
+ matchMethodCall(cl: RangerAppClassDesc, methodName: string, callArgs: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): RangerAppFunctionDesc | undefined;
1896
+ cmdCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1897
+ matchLambdaArgs(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1898
+ testLambdaCallArgs(lambda_expression: CodeNode, callParams: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1899
+ cmdLocalCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1850
1900
  transformImmutableAssigment(node: CodeNode): CodeNode;
1851
- transformDotMethodCallExpr(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1901
+ transformDotMethodCallExpr(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1852
1902
  repairUnaryMinusExpr(node: CodeNode): void;
1853
1903
  repairAssignUnaryMinusRhs(node: CodeNode): void;
1854
1904
  repairAssignMethodCallRhs(node: CodeNode): void;
1855
1905
  checkInitializedObjectReceiver(receiverName: string, node: CodeNode, ctx: RangerAppWriterContext): void;
1856
- cmdAssign(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1906
+ cmdAssign(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1857
1907
  EnterTemplateClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1858
- EnterClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1859
- walkFunctionBody(m: RangerAppFunctionDesc, fnBody: CodeNode, ctx: RangerAppWriterContext, subCtx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1860
- EnterMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1861
- EnterStaticMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1862
- DefineArrowOpFn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1908
+ EnterClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1909
+ walkFunctionBody(m: RangerAppFunctionDesc, fnBody: CodeNode, ctx: RangerAppWriterContext, subCtx: RangerAppWriterContext, wr: CodeWriter): void;
1910
+ EnterMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1911
+ EnterStaticMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1912
+ DefineArrowOpFn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1863
1913
  DefineOpFn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1864
- testCompile(opFn: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<{
1914
+ testCompile(opFn: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): {
1865
1915
  [key: string]: CodeNode;
1866
- }>;
1867
- inlineStaticEligible(m: RangerAppFunctionDesc, fnNode: CodeNode, ctx: RangerAppWriterContext): Promise<boolean>;
1868
- tryInlineTrivialStatic(node: CodeNode, fnNode: CodeNode, m: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1869
- TransformOpFn(opFnList: Array<CodeNode>, origNode: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1870
- cmdArray(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1871
- EnterLambdaMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1916
+ };
1917
+ inlineStaticEligible(m: RangerAppFunctionDesc, fnNode: CodeNode, ctx: RangerAppWriterContext): boolean;
1918
+ tryInlineTrivialStatic(node: CodeNode, fnNode: CodeNode, m: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1919
+ TransformOpFn(opFnList: Array<CodeNode>, origNode: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1920
+ cmdArray(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1921
+ EnterLambdaMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1872
1922
  annotationIsTypeArgs(tAnn: CodeNode, ctx: RangerAppWriterContext): boolean;
1873
1923
  normalizeTypeArg(ch: CodeNode): void;
1874
- genericInstanceName(baseName: string, tAnn: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<string>;
1924
+ genericInstanceName(baseName: string, tAnn: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1925
+ nativeGenericsTarget(ctx: RangerAppWriterContext): boolean;
1926
+ genericOpaqueOperator(name: string, ctx: RangerAppWriterContext): boolean;
1927
+ genericFormFitsTarget(form: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
1928
+ genericUsesOptionalParam(node: CodeNode): boolean;
1929
+ genericTypeIsPlaceholder(n: CodeNode): boolean;
1930
+ genericBodyIsOpaque(node: CodeNode, ctx: RangerAppWriterContext): boolean;
1931
+ makeGenericPlaceholder(templateName: string, paramName: string, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1932
+ genericArgsFitTarget(templateName: string, ctx: RangerAppWriterContext): boolean;
1933
+ checkNativeGenerics(ctx: RangerAppWriterContext, wr: CodeWriter): void;
1934
+ checkGenericForm(tpl: string, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1875
1935
  typeArgKey(spelling: string): string;
1876
- CheckVRefTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1877
- CheckTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1878
- matchNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1879
- StartWalk(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1880
- clearImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1881
- registerLangSystemClasses(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1882
- walkLangDefinitions(node: CodeNode, ctx: RangerAppWriterContext): void;
1883
- registerSystemClassFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
1884
- registerSystemUnionFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
1885
- finalizeRecordClasses(ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1886
- expandRecordCtorArgsIfNeeded(cl: RangerAppClassDesc, fnDescr: RangerAppFunctionDesc, params: CodeNode, node: CodeNode): void;
1887
- buildRecordConstructor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1888
- prepareImport(ctx: RangerAppWriterContext, spec: string): Promise<PkgHit>;
1889
- mergeImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1890
- DesugarTrees(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1891
- reportStrayTrees(node: CodeNode, ctx: RangerAppWriterContext): void;
1892
- isTreeFactoryDeclaration(node: CodeNode): boolean;
1893
- collectTreeFactories(node: CodeNode, atTopLevel: boolean, ctx: RangerAppWriterContext): void;
1894
- registerTreeFactory(node: CodeNode, ctx: RangerAppWriterContext): void;
1895
- isTreeLiteral(node: CodeNode): boolean;
1896
- expandTreesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1897
- expandTreesInBlock(block: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1898
- lowerTreesIn(node: CodeNode, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1899
- rewriteAsVRef(node: CodeNode, name: string): void;
1900
- lowerTreeElement(el: CodeNode, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1901
- isTreeKeyword(node: CodeNode, word: string): boolean;
1902
- lowerComputedChildren(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1903
- treeCall(at_node: CodeNode, reg: string, method: string, arg: CodeNode): CodeNode;
1904
- lowerTreeProps(propsNode: CodeNode, reg: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1905
- treeAssign(at_node: CodeNode, reg: string, field: string, value: CodeNode): CodeNode;
1906
- lowerTreeChild(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1936
+ CheckVRefTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1937
+ CheckTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1938
+ matchNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1939
+ StartWalk(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1940
+ isClassMemberForm(node: CodeNode): boolean;
1941
+ markParentClass(ee: CodeNode, childName: string, ctx: RangerAppWriterContext): void;
1942
+ isJustVref(a: CodeNode): boolean;
1943
+ findLanguageOper(details: CodeNode, ctx: RangerAppWriterContext, opDef: CodeNode): CodeNode | undefined;
1944
+ buildMacro(langOper: CodeNode, args: CodeNode, ctx: RangerAppWriterContext): CodeNode;
1945
+ operandIsNonOptionalForNullCheck(node: CodeNode): boolean;
1946
+ markNotNullName(candidate: CodeNode, ctx: RangerAppWriterContext): void;
1947
+ markNotNullNarrowing(condition: CodeNode, ctx: RangerAppWriterContext): void;
1948
+ collectNullNames(condition: CodeNode, out: Array<string>): void;
1949
+ collectPresentNames(condition: CodeNode, ctx: RangerAppWriterContext, out: Array<string>): void;
1950
+ blockAlwaysExits(block: CodeNode): boolean;
1951
+ narrowAfterIf(callArgs: CodeNode, inCtx: RangerAppWriterContext): void;
1952
+ stdParamMatch(callArgs: CodeNode, inCtx: RangerAppWriterContext, wr: CodeWriter, require_all_match: boolean): boolean;
1953
+ readProcessPathFromClassTree(root: CodeNode): string;
1954
+ applyProcessClassMeta(cl: RangerAppClassDesc, classNameNode: CodeNode, node: CodeNode, ctx: RangerAppWriterContext): void;
1955
+ resolveProcessPathFromFields(cl: RangerAppClassDesc): void;
1956
+ validateProcessPaths(processClasses: Array<RangerAppClassDesc>, ctx: RangerAppWriterContext): void;
1957
+ isValidProcessPath(pathStr: string): boolean;
1907
1958
  DesugarShapes(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1908
1959
  isShapeDeclaration(node: CodeNode): boolean;
1909
1960
  expandShapesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, renames: {
@@ -1931,8 +1982,8 @@ export declare class RangerFlowParser {
1931
1982
  shapeTypeSpelling(typeName: string, arrayType: string, keyType: string): string;
1932
1983
  shapeGroupHasField(groupCls: string, fieldName: string): boolean;
1933
1984
  buildGroupFieldAccessorSrc(shapeName: string, gn: string, gClsName: string, mems: Array<string>, fieldNames: Array<string>, allowSet: boolean): string;
1934
- rewriteToGroupFieldGet(node: CodeNode, receiver: CodeNode, fieldName: string, groupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1935
- rewriteToGroupWiden(node: CodeNode, targetGroupCls: string, sourceGroupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1985
+ rewriteToGroupFieldGet(node: CodeNode, receiver: CodeNode, fieldName: string, groupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1986
+ rewriteToGroupWiden(node: CodeNode, targetGroupCls: string, sourceGroupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1936
1987
  expandShape(shapeNode: CodeNode, parent: CodeNode, shapeIndex: number, ctx: RangerAppWriterContext, wr: CodeWriter, renames: {
1937
1988
  [key: string]: string;
1938
1989
  }): void;
@@ -1949,38 +2000,65 @@ export declare class RangerFlowParser {
1949
2000
  rewriteShapeRefs(node: CodeNode, renames: {
1950
2001
  [key: string]: string;
1951
2002
  }): void;
1952
- isClassMemberForm(node: CodeNode): boolean;
1953
- markParentClass(ee: CodeNode, childName: string, ctx: RangerAppWriterContext): void;
1954
2003
  WalkCollectTemplates(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1955
2004
  isDocumentableHead(name: string): boolean;
1956
2005
  DetachDocBlocks(node: CodeNode, ctx: RangerAppWriterContext): void;
1957
- CollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1958
- defineFunctionParam(method: RangerAppFunctionDesc, arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2006
+ CheckTargetSupport(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2007
+ CheckNoLossyTry(node: CodeNode, ctx: RangerAppWriterContext, allowed: boolean): void;
2008
+ CollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2009
+ defineFunctionParam(method: RangerAppFunctionDesc, arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1959
2010
  spliceFunctionBody(startIndex: number, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): CodeNode;
1960
- CreateFunctionObject(orig_node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<RangerAppFunctionDesc>;
1961
- WalkCollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2011
+ CreateFunctionObject(orig_node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppFunctionDesc;
2012
+ WalkCollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1962
2013
  varShadowsSystemType(strname: string, ctx: RangerAppWriterContext): boolean;
1963
2014
  findFunctionDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppFunctionDesc | undefined;
2015
+ isConstructorAssignedField(field: RangerAppParamDesc, obj: CodeNode, ctx: RangerAppWriterContext): boolean;
2016
+ isNarrowedOptionalRead(n: CodeNode, ctx: RangerAppWriterContext): boolean;
2017
+ optionalPathIsWrapped(n: CodeNode, ctx: RangerAppWriterContext): boolean;
2018
+ isOptionalPath(n: CodeNode, ctx: RangerAppWriterContext): boolean;
2019
+ isConstructorAssignedRead(n: CodeNode, ctx: RangerAppWriterContext): boolean;
1964
2020
  findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc | undefined;
1965
- convertToUnion(unionName: string, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1966
- transformMethodToLambda(node: CodeNode, vFnDef: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1967
- areEqualTypes(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2021
+ convertToUnion(unionName: string, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2022
+ transformMethodToLambda(node: CodeNode, vFnDef: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2023
+ areEqualTypes(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
1968
2024
  shouldBeEqualTypes(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1969
2025
  shouldBeExpression(n1: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1970
2026
  shouldHaveChildCnt(cnt: number, n1: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1971
- readProcessPathFromClassTree(root: CodeNode): string;
1972
- applyProcessClassMeta(cl: RangerAppClassDesc, classNameNode: CodeNode, node: CodeNode, ctx: RangerAppWriterContext): void;
1973
- resolveProcessPathFromFields(cl: RangerAppClassDesc): void;
1974
- validateProcessPaths(processClasses: Array<RangerAppClassDesc>, ctx: RangerAppWriterContext): void;
1975
- isValidProcessPath(pathStr: string): boolean;
1976
- isJustVref(a: CodeNode): boolean;
1977
- findLanguageOper(details: CodeNode, ctx: RangerAppWriterContext, opDef: CodeNode): Promise<CodeNode> | undefined;
1978
- buildMacro(langOper: CodeNode, args: CodeNode, ctx: RangerAppWriterContext): Promise<CodeNode>;
1979
- operandIsNonOptionalForNullCheck(node: CodeNode): boolean;
1980
- stdParamMatch(callArgs: CodeNode, inCtx: RangerAppWriterContext, wr: CodeWriter, require_all_match: boolean): Promise<boolean>;
2027
+ DesugarTrees(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2028
+ reportStrayTrees(node: CodeNode, ctx: RangerAppWriterContext): void;
2029
+ isTreeFactoryDeclaration(node: CodeNode): boolean;
2030
+ collectTreeFactories(node: CodeNode, atTopLevel: boolean, ctx: RangerAppWriterContext): void;
2031
+ registerTreeFactory(node: CodeNode, ctx: RangerAppWriterContext): void;
2032
+ isTreeLiteral(node: CodeNode): boolean;
2033
+ expandTreesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2034
+ expandTreesInBlock(block: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2035
+ lowerTreesIn(node: CodeNode, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2036
+ rewriteAsVRef(node: CodeNode, name: string): void;
2037
+ lowerTreeElement(el: CodeNode, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2038
+ isTreeKeyword(node: CodeNode, word: string): boolean;
2039
+ lowerComputedChildren(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2040
+ treeCall(at_node: CodeNode, reg: string, method: string, arg: CodeNode): CodeNode;
2041
+ lowerTreeProps(propsNode: CodeNode, reg: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2042
+ treeAssign(at_node: CodeNode, reg: string, field: string, value: CodeNode): CodeNode;
2043
+ lowerTreeChild(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2044
+ clearImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2045
+ registerLangSystemClasses(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2046
+ walkLangDefinitions(node: CodeNode, ctx: RangerAppWriterContext): void;
2047
+ registerSystemClassFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
2048
+ registerSystemUnionFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
2049
+ finalizeRecordClasses(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2050
+ expandRecordCtorArgsIfNeeded(cl: RangerAppClassDesc, fnDescr: RangerAppFunctionDesc, params: CodeNode, node: CodeNode): void;
2051
+ buildRecordConstructor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2052
+ prepareImport(ctx: RangerAppWriterContext, spec: string): PkgHit;
2053
+ mergeImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2054
+ }
2055
+ export declare class ModuleFunctions {
2056
+ static moduleClassName(fileName: string): string;
2057
+ static isTopLevelFunction(ch: CodeNode): boolean;
2058
+ static hoist(root: CodeNode, fileName: string, ctx: RangerAppWriterContext): void;
2059
+ static resolve(name: string, fileName: string, ctx: RangerAppWriterContext): string;
1981
2060
  }
1982
2061
  export declare class TFactory {
1983
- constructor();
1984
2062
  static new_class_signature(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerTypeClass;
1985
2063
  static new_lambda_signature(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerTypeClass;
1986
2064
  static new_def_signature_from_simple_string(sig: string, ctx: RangerAppWriterContext, wr: CodeWriter): RangerTypeClass;
@@ -2026,6 +2104,10 @@ export declare class RangerGenericClassWriter {
2026
2104
  [key: string]: boolean;
2027
2105
  };
2028
2106
  fmtMode: number;
2107
+ unionIfaces: {
2108
+ [key: string]: Array<string>;
2109
+ };
2110
+ unionIfacesBuilt: boolean;
2029
2111
  constructor();
2030
2112
  bindingPowerOf(opName: string): number;
2031
2113
  operandNeedsParens(childBp: number, parentBp: number): boolean;
@@ -2035,7 +2117,7 @@ export declare class RangerGenericClassWriter {
2035
2117
  isPostfixExpression(s: string): boolean;
2036
2118
  isWrappedInParens(s: string): boolean;
2037
2119
  receiverNeedsParens(s: string): boolean;
2038
- writeCallReceiver(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2120
+ writeCallReceiver(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2039
2121
  unionIsSealable(ucl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2040
2122
  unionInterfaceName(unionName: string): string;
2041
2123
  sealableUnionNames(ctx: RangerAppWriterContext): Array<string>;
@@ -2044,13 +2126,13 @@ export declare class RangerGenericClassWriter {
2044
2126
  sealableUnionTypeOr(unionName: string, topType: string, ctx: RangerAppWriterContext): string;
2045
2127
  lineEnding(): string;
2046
2128
  opWritesOwnParens(opName: string, node: CodeNode, ctx: RangerAppWriterContext): boolean;
2047
- addSystemImport(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2129
+ addSystemImport(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2048
2130
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2049
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2050
- beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2051
- WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2131
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2132
+ beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2133
+ WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2052
2134
  writeArrayTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2053
- WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2135
+ WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2054
2136
  doubleNeedsPointZero(dd_str: string): boolean;
2055
2137
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2056
2138
  getTypeString(type_string: string): string;
@@ -2058,40 +2140,72 @@ export declare class RangerGenericClassWriter {
2058
2140
  import_lib(lib_name: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2059
2141
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2060
2142
  release_local_vars(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2061
- renderDocExample(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, outer: CodeWriter): Promise<string>;
2143
+ renderDocExample(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, outer: CodeWriter): string;
2062
2144
  trimTrailingBlank(text: string): string;
2063
- WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2064
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2065
- writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2145
+ WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2146
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2147
+ writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2066
2148
  adjustType(tn: string): string;
2067
2149
  defValueHasSideEffects(value: CodeNode): boolean;
2068
- writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2069
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2070
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2071
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2072
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2073
- CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2150
+ writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2151
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2152
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2153
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2154
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2155
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2074
2156
  isPackaged(ctx: RangerAppWriterContext): boolean;
2075
- CreateUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2076
- CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2077
- CreatePages(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2078
- CreatePage(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2079
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2080
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2081
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2082
- walkNewArgForProcess(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2083
- tryWriteProcessNewCall(procNewNode: CodeNode, procNewCtx: RangerAppWriterContext, outWr: CodeWriter): Promise<boolean>;
2084
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2085
- writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2086
- disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2087
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2088
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2089
- }
2090
- export declare class AndroidPageWriter {
2091
- classWriter?: RangerGenericClassWriter;
2157
+ CreateUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2158
+ CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2159
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2160
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2161
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2162
+ walkNewArgForProcess(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2163
+ tryWriteProcessNewCall(procNewNode: CodeNode, procNewCtx: RangerAppWriterContext, outWr: CodeWriter): boolean;
2164
+ genericClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2165
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2166
+ writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2167
+ disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2168
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2169
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2170
+ }
2171
+ export declare class TraitInterfaceAnalysis {
2172
+ ifaceTraits: {
2173
+ [key: string]: boolean;
2174
+ };
2175
+ computed: boolean;
2176
+ constructor();
2177
+ nodeNamesType(node: CodeNode, tName: string): boolean;
2178
+ fnsNameType(fns: Array<RangerAppFunctionDesc>, tName: string): boolean;
2179
+ compute(ctx: RangerAppWriterContext): void;
2180
+ isInterface(tName: string, ctx: RangerAppWriterContext): boolean;
2181
+ basesOf(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<string>;
2182
+ }
2183
+ export declare class ForLoopShape {
2184
+ treeMentions(node: CodeNode, name: string): boolean;
2185
+ bodyTouchesCollection(body: CodeNode, coll: CodeNode): boolean;
2186
+ bodyReadsIndex(node: CodeNode): boolean;
2187
+ canIterate(node: CodeNode): boolean;
2188
+ canIterateWithIndex(node: CodeNode): boolean;
2189
+ bodyAssignsElement(node: CodeNode): boolean;
2190
+ }
2191
+ export declare class EnumNativeAnalysis {
2192
+ nativeEnums: {
2193
+ [key: string]: boolean;
2194
+ };
2195
+ computed: boolean;
2196
+ targetName: string;
2197
+ fallbackType: string;
2092
2198
  constructor();
2093
- BuildAST(code_string: string): CodeNode;
2094
- CreatePage(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2199
+ nodeIsEnumOf(node: CodeNode, enumName: string, ctx: RangerAppWriterContext): boolean;
2200
+ enumNameOf(node: CodeNode, ctx: RangerAppWriterContext): string;
2201
+ collectCaseEnums(node: CodeNode, found: {
2202
+ [key: string]: boolean;
2203
+ }): void;
2204
+ operandIsSafe(headVref: string): boolean;
2205
+ unsafeReason(node: CodeNode, enumName: string, ctx: RangerAppWriterContext): string;
2206
+ compute(ctx: RangerAppWriterContext): void;
2207
+ scanFns(fns: Array<RangerAppFunctionDesc>, enumName: string, ctx: RangerAppWriterContext, reasonIn: string): string;
2208
+ isNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2095
2209
  }
2096
2210
  export declare class RangerJava7ClassWriter extends RangerGenericClassWriter {
2097
2211
  compiler?: LiveCompiler;
@@ -2102,98 +2216,147 @@ export declare class RangerJava7ClassWriter extends RangerGenericClassWriter {
2102
2216
  iface_created: {
2103
2217
  [key: string]: boolean;
2104
2218
  };
2219
+ javaTraits: TraitInterfaceAnalysis;
2220
+ javaLoops: ForLoopShape;
2221
+ java_traits_written: boolean;
2222
+ javaEnums: EnumNativeAnalysis;
2223
+ java_enums_written: boolean;
2224
+ java_json_written: boolean;
2225
+ java_args_written: boolean;
2105
2226
  constructor();
2106
2227
  getSignatureInterface(s: string): string;
2107
2228
  adjustType(tn: string): string;
2108
- getObjectTypeString2(type_string: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<string>;
2229
+ javaEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2230
+ writeJavaNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2231
+ writeJavaTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2232
+ javaProgramUsesJson(ctx: RangerAppWriterContext): boolean;
2233
+ writeJavaArgsHolder(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2234
+ writeJavaJsonSupport(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2235
+ javaClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2236
+ genericClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2237
+ javaDeclName(cl: RangerAppClassDesc): string;
2238
+ getObjectTypeString2(type_string: string, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2109
2239
  getTypeString(type_string: string): string;
2110
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2111
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2112
- disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2113
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2114
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2115
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2240
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2241
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2242
+ disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2243
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2244
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2245
+ javaWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2246
+ javaWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2247
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2116
2248
  buildLambdaSignature(node: CodeNode): string;
2117
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2118
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2119
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2249
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2250
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2251
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2120
2252
  getCounters(ctx: RangerAppWriterContext): TypeCounts;
2121
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2122
- CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2123
- CreatePages(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2124
- CreatePage(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2253
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2254
+ CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2125
2255
  }
2126
2256
  export declare class RangerSwift3ClassWriter extends RangerGenericClassWriter {
2127
2257
  compiler?: LiveCompiler;
2128
2258
  header_created: boolean;
2259
+ sw3Enums: EnumNativeAnalysis;
2260
+ swift3_enums_written: boolean;
2129
2261
  swift_unions_written: boolean;
2130
2262
  constructor();
2263
+ sw3EnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2264
+ writeSwiftNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2131
2265
  writeSwiftUnionEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2132
2266
  swiftDeclaredClassOf(nVal: CodeNode): string;
2133
2267
  swiftUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2134
- swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2135
- swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2268
+ swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2269
+ swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2136
2270
  adjustType(tn: string): string;
2137
2271
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2138
2272
  getTypeString(type_string: string): string;
2139
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2140
- WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2141
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2142
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2143
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2144
- writeArgsDefWithLocals(fnDesc: RangerAppFunctionDesc, localFnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2145
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2146
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2147
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2148
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2149
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2150
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2273
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2274
+ WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2275
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2276
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2277
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2278
+ writeArgsDefWithLocals(fnDesc: RangerAppFunctionDesc, localFnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2279
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2280
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2281
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2282
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2283
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2284
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2151
2285
  haveSameSig(fn1: RangerAppFunctionDesc, fn2: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2152
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2153
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2286
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2287
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2154
2288
  }
2155
2289
  export declare class RangerSwift6ClassWriter extends RangerGenericClassWriter {
2156
2290
  compiler?: LiveCompiler;
2157
2291
  header_created: boolean;
2158
2292
  swift_unions_written: boolean;
2293
+ swiftTraits: TraitInterfaceAnalysis;
2294
+ swiftLoopLoops: ForLoopShape;
2295
+ swift_traits_written: boolean;
2296
+ swEnums: EnumNativeAnalysis;
2297
+ swift_enums_written: boolean;
2159
2298
  constructor();
2299
+ swiftThrowsMark(variant: RangerAppFunctionDesc): string;
2160
2300
  adjustType(tn: string): string;
2161
2301
  isSwiftValueTypeOf(t: number): boolean;
2162
2302
  isSwiftValueCollection(nn: CodeNode): boolean;
2163
2303
  isSwiftValueType(nn: CodeNode): boolean;
2164
2304
  paramNeedsLocalCopy(arg: RangerAppParamDesc): boolean;
2165
- swiftWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2305
+ swiftWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2166
2306
  paramNeedsInout(arg: RangerAppParamDesc): boolean;
2307
+ swEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2308
+ writeSwiftNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2309
+ writeSwiftTraitProtocols(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2167
2310
  writeSwiftUnionEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2168
2311
  swiftDeclaredClassOf(nVal: CodeNode): string;
2169
2312
  swiftUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2170
- swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2171
- swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2313
+ swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2314
+ swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2172
2315
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2173
2316
  collectionTypeStringToSwift(type_string: string, ctx: RangerAppWriterContext): string;
2174
2317
  getTypeString(type_string: string): string;
2175
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2176
- WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2177
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2178
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2179
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2180
- writeArgsDefWithLocals(fnDesc: RangerAppFunctionDesc, localFnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2318
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2319
+ WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2320
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2321
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2322
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2323
+ writeArgsDefWithLocals(fnDesc: RangerAppFunctionDesc, localFnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2181
2324
  resolveCallReceiverClassName(obj: CodeNode, ctx: RangerAppWriterContext): string;
2182
2325
  isSimpleClassCallReceiver(obj: CodeNode, ctx: RangerAppWriterContext): boolean;
2183
2326
  receiverIsNullable(obj: CodeNode): boolean;
2184
2327
  callResultIsDiscarded(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2185
- writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2186
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2187
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2188
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2189
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2190
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2191
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2328
+ writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2329
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2330
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2331
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2332
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2333
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2334
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2192
2335
  haveSameSig(fn1: RangerAppFunctionDesc, fn2: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2193
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2194
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2336
+ swiftLoopWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2337
+ swiftLoopWriteBinding(arg: CodeNode, body: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2338
+ swiftLoopWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2339
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2340
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2195
2341
  resolveMethodFnDesc(methodNode: CodeNode, ctx: RangerAppWriterContext): RangerAppFunctionDesc | undefined;
2196
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2342
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2343
+ }
2344
+ export declare class CppValueClassAnalysis {
2345
+ valueClasses: {
2346
+ [key: string]: boolean;
2347
+ };
2348
+ computed: boolean;
2349
+ constructor();
2350
+ nodeIsClassOf(node: CodeNode, className: string): boolean;
2351
+ optionalOf(node: CodeNode, className: string): boolean;
2352
+ unsafeReason(node: CodeNode, className: string, ctx: RangerAppWriterContext): string;
2353
+ scanFns(fns: Array<RangerAppFunctionDesc>, className: string, ownName: string, ctx: RangerAppWriterContext, reasonIn: string): string;
2354
+ mentionsBareThis(node: CodeNode): boolean;
2355
+ fieldReason(cl: RangerAppClassDesc, className: string): string;
2356
+ classReason(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2357
+ compute(ctx: RangerAppWriterContext): void;
2358
+ fieldOfOtherReason(ocl: RangerAppClassDesc, className: string): string;
2359
+ isValue(className: string, ctx: RangerAppWriterContext): boolean;
2197
2360
  }
2198
2361
  export declare class RangerCppClassWriter extends RangerGenericClassWriter {
2199
2362
  compiler?: LiveCompiler;
@@ -2201,9 +2364,19 @@ export declare class RangerCppClassWriter extends RangerGenericClassWriter {
2201
2364
  buf_ret_seen: boolean;
2202
2365
  buf_ret_all_safe: boolean;
2203
2366
  cpp_single_thread: boolean;
2204
- constructor();
2367
+ cppEnums: EnumNativeAnalysis;
2368
+ cppTraits: TraitInterfaceAnalysis;
2369
+ cppValues: CppValueClassAnalysis;
2370
+ cppLoops: ForLoopShape;
2371
+ constructor();
2372
+ cppEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2373
+ cppTraitIsInterface(tName: string, ctx: RangerAppWriterContext): boolean;
2374
+ cppClassIfaceBases(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<string>;
2375
+ cppIsValueClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2376
+ writeCppTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2205
2377
  cppPtr(inner: string): string;
2206
2378
  cppPtrOpen(): string;
2379
+ cppPtrClose(): string;
2207
2380
  cppMakeOpen(): string;
2208
2381
  cppEsft(inner: string): string;
2209
2382
  readCppPtrFlag(ctx: RangerAppWriterContext): void;
@@ -2212,47 +2385,82 @@ export declare class RangerCppClassWriter extends RangerGenericClassWriter {
2212
2385
  adjustType(tn: string): string;
2213
2386
  escapeCppTrigraphs(s: string): string;
2214
2387
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2388
+ cppClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2389
+ cppDeclName(cl: RangerAppClassDesc): string;
2390
+ cppTemplatePrefix(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2215
2391
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2216
2392
  collectionTypeStringToCpp(type_string: string, ctx: RangerAppWriterContext): string;
2217
2393
  cppUnionValueCase(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2218
2394
  getTypeString2(type_string: string, ctx: RangerAppWriterContext): string;
2219
2395
  writePtr(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2220
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2396
+ cppEmitOptionalPrimitive(wr: CodeWriter): void;
2397
+ cppEmitArgRef(wr: CodeWriter): void;
2398
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2221
2399
  cppMemberPathOf(node: CodeNode): string;
2222
2400
  cppReturnIsSafeBufferLvalue(retValue: CodeNode): boolean;
2223
2401
  cppScanBufferReturns(node: CodeNode): void;
2224
2402
  cppBufferReturnByRef(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2225
- writeReturnTypeDef(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2403
+ writeReturnTypeDef(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2226
2404
  cppSegmentIsValueCase(node: CodeNode, idx: number, ctx: RangerAppWriterContext): boolean;
2227
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2228
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2229
- disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2230
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2231
- cppWriteCmpOperand(o: CodeNode, otherIsLiteral: boolean, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2232
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2233
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2234
- CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2235
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2236
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2405
+ cppOptionalIsWrapped(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2406
+ cppShouldAutoUnwrap(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2407
+ cppWriteVRefName(p: RangerAppParamDesc, node: CodeNode, index: number, wr: CodeWriter): void;
2408
+ cppWriteVRefPath(node: CodeNode, fromIndex: number, toIndex: number, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2409
+ cppSegmentNeedsValue(p: RangerAppParamDesc, node: CodeNode, index: number, ctx: RangerAppWriterContext): boolean;
2410
+ cppCallReceiverNeedsValue(obj: CodeNode, ctx: RangerAppWriterContext): boolean;
2411
+ cppVRefIsAssignmentTarget(node: CodeNode): boolean;
2412
+ cppVRefIsCallTarget(node: CodeNode): boolean;
2413
+ cppWriteSafeOptionalTail(node: CodeNode, currentIndex: number, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2414
+ cppWriteSafeOptionalAccess(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2415
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2416
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2417
+ disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2418
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2419
+ cppWriteCmpOperand(o: CodeNode, otherIsLiteral: boolean, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2420
+ cppWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2421
+ cppForItemIsScalar(item: CodeNode): boolean;
2422
+ cppWriteForItemType(item: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2423
+ cppWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2424
+ markNotNullVar(candidate: CodeNode, ctx: RangerAppWriterContext): void;
2425
+ markNotNullName(name: string, ctx: RangerAppWriterContext): void;
2426
+ walkNotNulls(condition: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2427
+ cppWriteIf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2428
+ cppWriteWhile(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2429
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2430
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2431
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2432
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2433
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2237
2434
  cppIsWeakField(nn: CodeNode, ctx: RangerAppWriterContext): boolean;
2435
+ cppNodeUsesHash(node: CodeNode): boolean;
2436
+ cppScanFnsForHash(fns: Array<RangerAppFunctionDesc>): boolean;
2437
+ cppProgramUsesHash(ctx: RangerAppWriterContext): boolean;
2438
+ cppNodeNamesType(node: CodeNode, tn: string): boolean;
2439
+ cppScanFnsForType(fns: Array<RangerAppFunctionDesc>, tn: string): boolean;
2440
+ cppProgramUsesType(tn: string, ctx: RangerAppWriterContext): boolean;
2441
+ cppNodeHasOptionalUnion(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2442
+ cppScanFnsForOptionalUnion(fns: Array<RangerAppFunctionDesc>, ctx: RangerAppWriterContext): boolean;
2443
+ cppProgramUsesOptionalUnion(ctx: RangerAppWriterContext): boolean;
2238
2444
  cppProgramHasWeakField(ctx: RangerAppWriterContext): boolean;
2239
2445
  writeCppWeakHelper(wr: CodeWriter): void;
2240
- writeCppHeaderVar(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, do_initialize: boolean): Promise<void>;
2446
+ writeCppOptionalAccessHelper(wr: CodeWriter): void;
2447
+ writeCppHeaderVar(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, do_initialize: boolean): void;
2241
2448
  cppReadonlyValueParam(arg: RangerAppParamDesc): boolean;
2242
2449
  cppReadonlyUnionParam(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2450
+ cppMutatedValueClassParam(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2243
2451
  cppBorrowedObjectParam(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2244
2452
  cppNeedsCallTempCopy(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, n: CodeNode, ctx: RangerAppWriterContext): boolean;
2245
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2453
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2246
2454
  cppCaptureByReference(vD: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2247
2455
  cppMutableRefParam(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2248
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2249
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2250
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2251
- cppUsesThisValue(body: CodeNode): Promise<boolean>;
2252
- cppNeedsSharedFromThis(node: CodeNode): Promise<boolean>;
2253
- writeClassHeader(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2254
- CreateUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2255
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2456
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2457
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2458
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2459
+ cppUsesThisValue(body: CodeNode): boolean;
2460
+ cppNeedsSharedFromThis(node: CodeNode): boolean;
2461
+ writeClassHeader(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2462
+ CreateUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2463
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2256
2464
  }
2257
2465
  export declare class MethodCallList {
2258
2466
  calls: Array<string>;
@@ -2268,6 +2476,7 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2268
2476
  rust_lhs_is_receiver: boolean;
2269
2477
  rust_writing_return_type: boolean;
2270
2478
  rust_receiverless_method: boolean;
2479
+ rust_trait_self_is_handle: boolean;
2271
2480
  rust_receiver_mut_known: boolean;
2272
2481
  rust_emit_class_name: string;
2273
2482
  rust_receiver_shared_known: boolean;
@@ -2277,29 +2486,52 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2277
2486
  rust_path_head_mut: boolean;
2278
2487
  rust_field_call_mut_ready: boolean;
2279
2488
  rust_writing_field_type: boolean;
2489
+ rust_lambda_boxed: boolean;
2280
2490
  compiler?: LiveCompiler;
2281
2491
  thisName: string;
2282
2492
  rustFnReturnsUnion: string;
2283
2493
  rustFnReturnNameNode?: CodeNode;
2284
2494
  fileHeaderWritten: boolean;
2495
+ rustAllowSeen: {
2496
+ [key: string]: boolean;
2497
+ };
2498
+ rustModuleOut: boolean;
2499
+ rustClippyNoteWritten: boolean;
2500
+ rustIdentNames: {
2501
+ [key: string]: boolean;
2502
+ };
2503
+ rustIdentNamesDone: boolean;
2504
+ rustEnums: EnumNativeAnalysis;
2285
2505
  rust_in_cell_assign: boolean;
2286
2506
  rust_last_recv_tmp: string;
2507
+ rust_selfrc_path_only: boolean;
2287
2508
  rust_computing_family_mut: boolean;
2288
2509
  constructor();
2289
2510
  lineEnding(): string;
2511
+ rustFillIdentNames(ctx: RangerAppWriterContext): void;
2512
+ rustCollectFnNames(fns: Array<RangerAppFunctionDesc>): void;
2513
+ rustCollectVrefs(node: CodeNode): void;
2514
+ rustSnakeCase(n: string): string;
2515
+ adjustIdentOrType(n: string, ctx: RangerAppWriterContext): string;
2290
2516
  adjustType(tn: string): string;
2517
+ adjustReserved(tn: string): string;
2291
2518
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2292
2519
  rustStaticStrRead(node: CodeNode): boolean;
2293
- rustWriteStaticStrValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2520
+ rustWriteStaticStrValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2294
2521
  rustTryBareStrLitArg(nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2295
2522
  rustArgIsNameRead(nVal: CodeNode): boolean;
2296
2523
  rustSliceRefRead(node: CodeNode): boolean;
2297
2524
  rustStrRefRead(node: CodeNode): boolean;
2298
2525
  rustLhsHoldsRc(left: CodeNode): boolean;
2299
2526
  rustValueIsBorrowedHandle(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2300
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2301
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2302
- writeRustLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2527
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2528
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2529
+ rustIsFnTyped(n: CodeNode): boolean;
2530
+ rustWriteBoxedFnType(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2531
+ rustBodyReturnsName(body: CodeNode, name: string): boolean;
2532
+ rustLocalFnEscapes(name: string, ctx: RangerAppWriterContext): boolean;
2533
+ rustCallReturnsFn(init: CodeNode, ctx: RangerAppWriterContext): boolean;
2534
+ writeRustLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2303
2535
  rustTraitCoerceName(targetType: string, value: CodeNode, ctx: RangerAppWriterContext): string;
2304
2536
  rustArgValueTypeName(nVal: CodeNode): string;
2305
2537
  rustNodeCollectionElemType(coll: CodeNode): string;
@@ -2311,54 +2543,47 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2311
2543
  rustCollectionTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2312
2544
  rustElementTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2313
2545
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2546
+ rustClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2547
+ rustGenericArgs(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2548
+ rustClassIsTypeParam(type_string: string, ctx: RangerAppWriterContext): boolean;
2549
+ rustClassPath(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2314
2550
  getTypeString(type_string: string): string;
2315
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2551
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2316
2552
  writeRustWeakVRefTail(node: CodeNode, p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2317
- rustMethodInTraitIface(cl: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2318
- rustClassMethodKnownShared(cls: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2319
- rustReceiverPathClass(fc: CodeNode, ctx: RangerAppWriterContext): RangerAppClassDesc | undefined;
2320
- rustReceiverKnownShared(fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2321
- rustReceiverKnownMut(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2322
- rustReceiverMutFor(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2323
2553
  rustThisPrefix(ctx: RangerAppWriterContext): string;
2324
2554
  rustThisPathPrefix(ctx: RangerAppWriterContext): string;
2325
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2326
- writeRustFnClose(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2327
- writeRustReturnType(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2555
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2556
+ writeRustFnClose(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2557
+ writeRustReturnType(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2328
2558
  rustExprReadsThrough(node: CodeNode, name: string): boolean;
2329
2559
  rustRhsReadsSharedCell(node: CodeNode): boolean;
2330
- rustCollectInheritedVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, seen: {
2331
- [key: string]: boolean;
2332
- }, into: Array<RangerAppParamDesc>): void;
2333
- rustAllStructVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<RangerAppParamDesc>;
2334
- writeStructFieldType(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2335
- writeStructFieldTypeInner(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2336
- rustSegThroughTrait(node: CodeNode, idx: number, ctx: RangerAppWriterContext): boolean;
2337
- writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2560
+ rustFoldedInitIsWritable(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2561
+ rustNeedsNonSnakeCase(): boolean;
2562
+ rustNeedAllow(name: string, wr: CodeWriter): void;
2563
+ rustModuleMode(wr: CodeWriter): boolean;
2564
+ rustNeedClippyAllow(name: string, wr: CodeWriter): void;
2565
+ rustNmIsName(seg: string, a: string, b: string): boolean;
2566
+ rustLocalNeedsMut(srcName: string, cName: string, typeName: string, ctx: RangerAppWriterContext): boolean;
2567
+ rustLocalPathUseAfter(srcName: string, cName: string, minLine: number, ctx: RangerAppWriterContext): boolean;
2568
+ rustFoldedLocalIsWrittenAgain(srcName: string, cName: string, node: CodeNode, ctx: RangerAppWriterContext): boolean;
2569
+ rustWriteFoldedInit(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2570
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2571
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2572
+ rustNodeIsCellField(node: CodeNode): boolean;
2573
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2574
+ rustExprIsOptional(inNode: CodeNode, ctx: RangerAppWriterContext): boolean;
2575
+ rustNodeIsLambda(node: CodeNode): boolean;
2576
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2577
+ rustTraitCoerceRoot(right: CodeNode, fieldTypeName: string, ctx: RangerAppWriterContext): string;
2578
+ rustReceiverPathClass(fc: CodeNode, ctx: RangerAppWriterContext): RangerAppClassDesc | undefined;
2579
+ rustReceiverKnownShared(fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2580
+ rustReceiverKnownMut(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2581
+ rustReceiverMutFor(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2582
+ rustStaticCallClassName(cc: RangerAppClassDesc, fc: CodeNode, ctx: RangerAppWriterContext): string;
2583
+ rustStaticCallBlockedByHandle(fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2338
2584
  rustFieldAccessorName(p: RangerAppParamDesc): string;
2339
2585
  rustFieldIsPlainString(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2340
2586
  rustFieldIsCopyScalar(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2341
- writeTraitFieldAccessorDecls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2342
- writeTraitFieldAccessorImpls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2343
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2344
- rustNewIntoUnion(value: CodeNode, ctx: RangerAppWriterContext): boolean;
2345
- rustUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2346
- rustDeclaredClassOf(nVal: CodeNode): string;
2347
- rustWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2348
- rustUnionReturnOf(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2349
- rustUnionValueCase(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2350
- rustArgNeedsUnionWrap(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext): boolean;
2351
- rustWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2352
- rustClassIsShared(typeName: string, ctx: RangerAppWriterContext): boolean;
2353
- rustNeedsSelfRc(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2354
- rustEnclosingMethod(fnDesc: RangerAppFunctionDesc): RangerAppFunctionDesc;
2355
- rustInitRcState(value: CodeNode, ctx: RangerAppWriterContext): number;
2356
- rustSelfRcParamType(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2357
- rustSelfRcCoerceTo(fc: CodeNode, fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2358
- writeSelfRcReceiverArg(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2359
- writeRustReceiver(mutSelf: boolean, wr: CodeWriter): void;
2360
- writeTraitForwardArgs(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter, lead: boolean): void;
2361
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2362
2587
  rustNodeContainsCall(node: CodeNode): boolean;
2363
2588
  containsSelfReference(node: CodeNode): boolean;
2364
2589
  rustThisSegIsMethod(segName: string, ctx: RangerAppWriterContext): boolean;
@@ -2393,7 +2618,6 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2393
2618
  rustCellIsCollection(p: RangerAppParamDesc): boolean;
2394
2619
  rustCellIsCopy(p: RangerAppParamDesc): boolean;
2395
2620
  rustCellFieldDesc(node: CodeNode): RangerAppParamDesc | undefined;
2396
- rustNodeIsCellField(node: CodeNode): boolean;
2397
2621
  rustMarkInteriorCells(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
2398
2622
  rustFillTraitMutations(root: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
2399
2623
  markTraitIfaceMutations(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, directMutations: {
@@ -2416,308 +2640,453 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2416
2640
  }): boolean;
2417
2641
  fnBodyMutatesThis(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2418
2642
  rustExprCallNeedsSelfRc(obj: CodeNode, methodName: string, recvIsThis: boolean, ctx: RangerAppWriterContext): boolean;
2419
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2643
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2420
2644
  rustBareArgNeedsClone(arg: CodeNode, ctx: RangerAppWriterContext): boolean;
2421
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2645
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2422
2646
  isSelfMethodCall(node: CodeNode): boolean;
2423
2647
  rustCollectNestedSelfCalls(node: CodeNode, into: Array<CodeNode>): void;
2424
2648
  findSelfCallInArgs(node: CodeNode): number;
2425
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2426
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2427
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2428
- writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2429
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2430
- rustProgramHasMainFlag(ctx: RangerAppWriterContext): boolean;
2649
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2650
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2651
+ rustHoistFieldReceiver(real: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2652
+ rustExtractSelfCallConflicts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2653
+ rustTailBorrowsLocal(node: CodeNode): boolean;
2654
+ walkRustFnBody(fnB: CodeNode, sCtx: RangerAppWriterContext, wr: CodeWriter): void;
2655
+ rustIsSelfCallNode(n: CodeNode): boolean;
2431
2656
  opWritesOwnParens(opName: string, node: CodeNode, ctx: RangerAppWriterContext): boolean;
2432
- rustWriteBitOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2657
+ rustWriteBitOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2658
+ rustWriteIDivLeft(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2433
2659
  rustArgIsAlreadyRef(nVal: CodeNode): boolean;
2434
2660
  rustArgIsBareThis(nValIn: CodeNode): boolean;
2435
2661
  rustArgIsPlainMutPath(nValIn: CodeNode): boolean;
2436
2662
  rustWriteMutArgPrefix(nVal: CodeNode, wr: CodeWriter): void;
2437
2663
  rustArgIsAlreadyMutRef(nVal: CodeNode): boolean;
2438
- rustWriteCmpOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2439
- rustWriteCastOperandF64(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2440
- rustExprIsOptional(inNode: CodeNode, ctx: RangerAppWriterContext): boolean;
2441
- rustNodeIsLambda(node: CodeNode): boolean;
2442
- CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2664
+ rustWriteCmpOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2665
+ rustWriteCastOperandF64(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2443
2666
  rustUnwrapParens(node: CodeNode): CodeNode;
2444
2667
  rustCollectConcatOperands(node: CodeNode, out: Array<CodeNode>): void;
2445
2668
  rustFmtInline(o: CodeNode): boolean;
2446
2669
  rustStripToString(o: CodeNode): CodeNode;
2447
- writeRustFormatOps(ops: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2448
- rustHoistFieldReceiver(real: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2449
- rustExtractSelfCallConflicts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2450
- rustTailBorrowsLocal(node: CodeNode): boolean;
2451
- walkRustFnBody(fnB: CodeNode, sCtx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2670
+ writeRustFormatOps(ops: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2452
2671
  rustPlainScalarPath(n: CodeNode): boolean;
2453
- rustTryCompoundAssign(left: CodeNode, right: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2672
+ rustTryCompoundAssign(left: CodeNode, right: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2454
2673
  rustArgNeedsCellWrap(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext): boolean;
2455
- rustTraitCoerceRoot(right: CodeNode, fieldTypeName: string, ctx: RangerAppWriterContext): string;
2456
- rustWalkOperand(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2457
- rustClassBlocksClone(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, depth: number): boolean;
2674
+ rustWalkOperand(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2458
2675
  rustIsIndexedWriteOp(n: string): boolean;
2459
2676
  rustExprMentionsName(node: CodeNode, name: string): boolean;
2460
2677
  rustArgIsOutParam(node: CodeNode, idx: number): boolean;
2461
- rustIsSelfCallNode(n: CodeNode): boolean;
2462
- beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2463
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2678
+ beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2679
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2680
+ rustWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2681
+ rustTreeMentions(node: CodeNode, name: string): boolean;
2682
+ rustForItemIsCopyScalar(item: CodeNode): boolean;
2683
+ rustForItemClassName(item: CodeNode, ctx: RangerAppWriterContext): string;
2684
+ rustClassFieldIsCopy(clName: string, field: string, ctx: RangerAppWriterContext): boolean;
2685
+ rustForBodyOnlyReadsCopyFields(body: CodeNode, itemName: string, clName: string, ctx: RangerAppWriterContext): boolean;
2686
+ rustForBodyTouchesCollection(body: CodeNode, coll: CodeNode): boolean;
2687
+ rustForCollBorrows(coll: CodeNode, ctx: RangerAppWriterContext): boolean;
2688
+ rustWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2689
+ rustMethodInTraitIface(cl: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2690
+ rustClassMethodKnownShared(cls: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2691
+ rustCollectInheritedVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, seen: {
2692
+ [key: string]: boolean;
2693
+ }, into: Array<RangerAppParamDesc>): void;
2694
+ rustAllStructVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<RangerAppParamDesc>;
2695
+ writeStructFieldType(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2696
+ writeStructFieldTypeInner(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2697
+ rustSegThroughTrait(node: CodeNode, idx: number, ctx: RangerAppWriterContext): boolean;
2698
+ writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2699
+ writeTraitFieldAccessorDecls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2700
+ writeTraitFieldAccessorImpls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2701
+ rustClassIsEmitted(cl: RangerAppClassDesc): boolean;
2702
+ rustIfWithoutElse(n: CodeNode): boolean;
2703
+ rustFnBodyHasCollapsibleIf(m: RangerAppFunctionDesc): boolean;
2704
+ rustNeedsCollapsibleIf(ctx: RangerAppWriterContext): boolean;
2705
+ rustParamIsVecRef(pa: RangerAppParamDesc): boolean;
2706
+ rustNeedsPtrArg(ctx: RangerAppWriterContext): boolean;
2707
+ rustFnHasDeadStore(m: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2708
+ rustNeedsUnusedAssignments(ctx: RangerAppWriterContext): boolean;
2709
+ rustNeedsUnusedVariables(ctx: RangerAppWriterContext): boolean;
2710
+ rustNeedsTooManyArgs(ctx: RangerAppWriterContext): boolean;
2711
+ rustNeedsRcHeader(ctx: RangerAppWriterContext): boolean;
2712
+ rustClassIsShared(typeName: string, ctx: RangerAppWriterContext): boolean;
2713
+ rustNeedsSelfRc(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2714
+ rustEnclosingMethod(fnDesc: RangerAppFunctionDesc): RangerAppFunctionDesc;
2715
+ rustInitRcState(value: CodeNode, ctx: RangerAppWriterContext): number;
2716
+ rustTraitFamilyIsReentrant(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2717
+ rustClassInReentrantTrait(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2718
+ rustSelfRcParamType(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2719
+ rustSelfRcCoerceTo(fc: CodeNode, fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2720
+ writeSelfRcReceiverArg(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2721
+ rustSelfRcArgBorrows(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2722
+ writeSelfRcReceiverHoist(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2723
+ closeSelfRcReceiverHoist(opened: boolean, wr: CodeWriter): void;
2724
+ writeRustReceiver(mutSelf: boolean, wr: CodeWriter): void;
2725
+ writeTraitForwardArgs(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter, lead: boolean): void;
2726
+ writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2727
+ rustLibraryMode(ctx: RangerAppWriterContext): boolean;
2728
+ rustPubPrefix(ctx: RangerAppWriterContext): string;
2729
+ rustTraitIsInterface(name: string, ctx: RangerAppWriterContext): boolean;
2730
+ rustEnumNameOf(node: CodeNode, ctx: RangerAppWriterContext): string;
2731
+ rustEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2732
+ rustNodeUsesHash(node: CodeNode): boolean;
2733
+ rustNodeUsesStringIndex(node: CodeNode): boolean;
2734
+ rustHeaderHelperNeeds(ctx: RangerAppWriterContext): number;
2735
+ rustScanFnList(fns: Array<RangerAppFunctionDesc>, resIn: number): number;
2736
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2737
+ rustProgramHasMainFlag(ctx: RangerAppWriterContext): boolean;
2738
+ rustClassBlocksClone(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, depth: number): boolean;
2739
+ rustNewIntoUnion(value: CodeNode, ctx: RangerAppWriterContext): boolean;
2740
+ rustUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2741
+ rustDeclaredClassOf(nVal: CodeNode): string;
2742
+ rustWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2743
+ rustUnionReturnOf(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2744
+ rustUnionValueCase(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2745
+ rustArgNeedsUnionWrap(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext): boolean;
2746
+ rustWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2747
+ rustWriteScrutineeType(scrut: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2748
+ rustWriteUnionCase(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2749
+ rustWriteCaseBody(body: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2464
2750
  }
2465
2751
  export declare class RangerKotlinClassWriter extends RangerGenericClassWriter {
2466
2752
  compiler?: LiveCompiler;
2467
2753
  kotlin_unions_written: boolean;
2754
+ ktTraits: TraitInterfaceAnalysis;
2755
+ ktLoops: ForLoopShape;
2756
+ kotlin_traits_written: boolean;
2757
+ ktEnums: EnumNativeAnalysis;
2758
+ kotlin_enums_written: boolean;
2468
2759
  kotlin_package_written: boolean;
2469
2760
  constructor();
2761
+ ktEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2762
+ writeKotlinNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2763
+ writeKotlinTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2470
2764
  writeKotlinUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2471
2765
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2472
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2766
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2473
2767
  adjustType(tn: string): string;
2768
+ ktClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2474
2769
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2475
2770
  collectionTypeStringToKotlin(type_string: string, ctx: RangerAppWriterContext): string;
2476
2771
  getTypeString(type_string: string): string;
2477
- writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2478
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2479
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2480
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2772
+ writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2773
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2774
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2775
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2481
2776
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2482
2777
  receiverIsNullable(obj: CodeNode): boolean;
2483
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2778
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2484
2779
  namesStaticMember(cl: RangerAppClassDesc, node: CodeNode): boolean;
2485
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2780
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2486
2781
  paramEmitName(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): string;
2487
2782
  paramIsMutated(arg: RangerAppParamDesc): boolean;
2488
- kotlinWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2489
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2490
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2491
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2492
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2783
+ kotlinWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2784
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2785
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2786
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2787
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2788
+ ktWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2789
+ ktWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2790
+ ktWriteSwitch(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2791
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2493
2792
  }
2494
2793
  export declare class RangerDartClassWriter extends RangerGenericClassWriter {
2495
2794
  compiler?: LiveCompiler;
2496
2795
  wrote_header: boolean;
2497
2796
  dart_unions_written: boolean;
2498
- constructor();
2797
+ dartTraits: TraitInterfaceAnalysis;
2798
+ dartLoops: ForLoopShape;
2799
+ dart_traits_written: boolean;
2800
+ dartEnums: EnumNativeAnalysis;
2801
+ dart_enums_written: boolean;
2802
+ constructor();
2803
+ dartEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2804
+ writeDartNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2805
+ writeDartTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2499
2806
  writeDartUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2500
2807
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2501
2808
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2502
2809
  adjustType(tn: string): string;
2810
+ dartClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2503
2811
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2504
2812
  collectionTypeStringToDart(type_string: string, ctx: RangerAppWriterContext): string;
2505
2813
  getTypeString(type_string: string): string;
2506
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2814
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2507
2815
  namesStaticMember(cl: RangerAppClassDesc, node: CodeNode): boolean;
2508
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2509
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2816
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2817
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2510
2818
  paramEmitName(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): string;
2511
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2819
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2512
2820
  receiverIsNullable(obj: CodeNode): boolean;
2513
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2514
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2515
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2516
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2517
- writePubspec(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2518
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2821
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2822
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2823
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2824
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2825
+ writePubspec(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2826
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2827
+ dartWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2828
+ dartWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2829
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2519
2830
  }
2520
2831
  export declare class RangerCSharpClassWriter extends RangerGenericClassWriter {
2521
2832
  compiler?: LiveCompiler;
2522
2833
  csharp_unions_written: boolean;
2523
2834
  csharp_namespace_written: boolean;
2524
2835
  csLambdaArgCounter: number;
2836
+ csTraits: TraitInterfaceAnalysis;
2837
+ csLoops: ForLoopShape;
2838
+ csharp_traits_written: boolean;
2839
+ csEnums: EnumNativeAnalysis;
2840
+ csharp_enums_written: boolean;
2525
2841
  constructor();
2526
2842
  adjustType(tn: string): string;
2843
+ csEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2844
+ writeCSharpNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2845
+ writeCSharpTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2527
2846
  writeCSharpUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2847
+ csClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2848
+ genericClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2528
2849
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2529
2850
  collectionTypeStringToCS(type_string: string, ctx: RangerAppWriterContext): string;
2530
2851
  getTypeString(type_string: string): string;
2531
- writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2852
+ writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2532
2853
  writeNullableMark(node: CodeNode, wr: CodeWriter): void;
2533
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2534
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2854
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2855
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2535
2856
  csNodeContainsCall(node: CodeNode): boolean;
2536
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2857
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2537
2858
  renameShadowedLambdaArg(arg: CodeNode, ctx: RangerAppWriterContext): void;
2538
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2539
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2540
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2859
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2860
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2861
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2541
2862
  csCollectInherited(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, vars: {
2542
2863
  [key: string]: boolean;
2543
2864
  }, methods: {
2544
2865
  [key: string]: number;
2545
2866
  }): void;
2546
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2867
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2868
+ csWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2869
+ csWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2870
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2547
2871
  }
2548
2872
  export declare class RangerScalaClassWriter extends RangerGenericClassWriter {
2549
2873
  compiler?: LiveCompiler;
2550
2874
  init_done: boolean;
2551
- constructor();
2875
+ scalaTraits: TraitInterfaceAnalysis;
2876
+ scala_traits_written: boolean;
2877
+ scEnums: EnumNativeAnalysis;
2878
+ scala_enums_written: boolean;
2879
+ scLoops: ForLoopShape;
2880
+ constructor();
2881
+ scClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2882
+ genericClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2883
+ collectionTypeStringToScala(type_string: string, ctx: RangerAppWriterContext): string;
2552
2884
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2553
2885
  getTypeString(type_string: string): string;
2554
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2555
- writeTypeDefNoOption(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2556
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2557
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2558
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2559
- writeFnEnd(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2886
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2887
+ writeTypeDefNoOption(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2888
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2889
+ scalaExprIsOptional(inNode: CodeNode): boolean;
2890
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2891
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2892
+ writeFnEnd(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2560
2893
  writeFnStart(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2561
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2562
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2563
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2564
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2894
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2895
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2896
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2897
+ scEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2898
+ writeScalaNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2899
+ writeScalaTraitDefs(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2900
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2565
2901
  }
2566
2902
  export declare class RangerGolangClassWriter extends RangerGenericClassWriter {
2567
2903
  compiler?: LiveCompiler;
2568
2904
  thisName: string;
2569
2905
  write_raw_type: boolean;
2906
+ goTraits: TraitInterfaceAnalysis;
2907
+ goLoops: ForLoopShape;
2570
2908
  did_write_nullable: boolean;
2571
2909
  did_write_sseclient: boolean;
2572
2910
  go_unions_written: boolean;
2573
- httpServerWriter: RangerGolangHttpServerWriter;
2911
+ goEnums: EnumNativeAnalysis;
2912
+ go_enums_written: boolean;
2574
2913
  constructor();
2914
+ goEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2915
+ goEnumMemberName(enumName: string, memberName: string, ctx: RangerAppWriterContext): string;
2916
+ writeGoNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2575
2917
  writeGoUnionStructs(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2576
2918
  goDeclaredClassOf(nVal: CodeNode): string;
2919
+ goOptTargetType(p: RangerAppParamDesc): string;
2577
2920
  goUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2578
- goWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2579
- goWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2921
+ goWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2922
+ goWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2580
2923
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2581
2924
  isCollectionTypeString(type_string: string): boolean;
2582
2925
  collectionTypeStringToGo(type_string: string, ctx: RangerAppWriterContext): string;
2583
2926
  goElementTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2927
+ goClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
2928
+ goIsTypeParam(type_string: string, ctx: RangerAppWriterContext): boolean;
2584
2929
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2585
2930
  getTypeString2(type_string: string, ctx: RangerAppWriterContext): string;
2586
- writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2587
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2931
+ writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2932
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2588
2933
  writeArrayTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2589
2934
  writeTypeDef2(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2590
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2591
- WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2592
- goExtractAssign(value: CodeNode, p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2935
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2936
+ WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2937
+ goExtractAssign(value: CodeNode, p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2593
2938
  goAncestors(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<string>;
2594
- writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2595
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2596
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2597
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2598
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2599
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2600
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2601
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2602
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2603
- CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2604
- writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2605
- writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2606
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2607
- }
2608
- export declare class RangerGolangHttpServerWriter {
2609
- didWriteSSEClient: boolean;
2610
- didWriteHttpTypes: boolean;
2611
- constructor();
2612
- isHttpServerClass(cl: RangerAppClassDesc): boolean;
2613
- getServerPort(cl: RangerAppClassDesc): number;
2614
- getRouteMethod(fnDesc: RangerAppFunctionDesc): string;
2615
- getRoutePath(fnDesc: RangerAppFunctionDesc): string;
2616
- writeSSEClientStruct(wr: CodeWriter): void;
2617
- addHttpImports(wr: CodeWriter): void;
2618
- writeServerStart(serverArg: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGolangClassWriter): void;
2619
- writeStartMethod(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2620
- writeStopMethod(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2621
- writeHttpServerClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2939
+ writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2940
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2941
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2942
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2943
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2944
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2945
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2946
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2947
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2948
+ goWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2949
+ goWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2950
+ goWriteIndexForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2951
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2952
+ writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2953
+ writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2954
+ goNodeUsesOptional(node: CodeNode): boolean;
2955
+ goScanFnsForOptional(fns: Array<RangerAppFunctionDesc>): boolean;
2956
+ goProgramUsesOptional(ctx: RangerAppWriterContext): boolean;
2957
+ writeGoTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2958
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2622
2959
  }
2623
2960
  export declare class RangerPHPClassWriter extends RangerGenericClassWriter {
2624
2961
  compiler?: LiveCompiler;
2625
2962
  thisName: string;
2626
2963
  wrote_header: boolean;
2627
- constructor();
2964
+ phpEnums: EnumNativeAnalysis;
2965
+ php_enums_written: boolean;
2966
+ phpLoops: ForLoopShape;
2967
+ constructor();
2968
+ phpWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2969
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2970
+ phpEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
2971
+ writePhpNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2628
2972
  adjustType(tn: string): string;
2629
2973
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2630
2974
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2631
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2632
- writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2633
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2634
- disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2635
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2636
- CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2637
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2638
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2975
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2976
+ writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2977
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2978
+ disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2979
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2980
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2981
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2982
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2983
+ phpTypeNameFor(tn: string, ctx: RangerAppWriterContext): string;
2984
+ phpPropertyType(nn: CodeNode, ctx: RangerAppWriterContext): string;
2985
+ phpPropertyDefault(pt: string): string;
2639
2986
  writeClassVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2640
2987
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2641
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2642
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2643
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2644
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2645
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2988
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2989
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2990
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2991
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2992
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2646
2993
  }
2647
2994
  export declare class RangerPythonClassWriter extends RangerGenericClassWriter {
2648
2995
  compiler?: LiveCompiler;
2649
2996
  thisName: string;
2650
2997
  wrote_header: boolean;
2998
+ pyTypeVarsWritten: Array<string>;
2999
+ pyGenericImported: boolean;
3000
+ pyEnums: EnumNativeAnalysis;
3001
+ python_enums_written: boolean;
3002
+ pyTraits: TraitInterfaceAnalysis;
3003
+ python_traits_written: boolean;
3004
+ pyLoops: ForLoopShape;
2651
3005
  pyHoistWriters: Array<CodeWriter>;
2652
3006
  pyLambdaCounter: number;
2653
3007
  constructor();
3008
+ writePythonTraitProtocols(ctx: RangerAppWriterContext, wr: CodeWriter): void;
3009
+ pyEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
3010
+ writePythonNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2654
3011
  emptyBlockFiller(): string;
2655
3012
  adjustType(tn: string): string;
2656
3013
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2657
3014
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2658
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3015
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2659
3016
  pyNodeContainsCall(node: CodeNode): boolean;
2660
- pyWalkBody(body: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2661
- writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2662
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2663
- CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2664
- CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2665
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3017
+ pyWalkBody(body: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3018
+ writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3019
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3020
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3021
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3022
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2666
3023
  pyEmittedName(n: CodeNode): string;
2667
3024
  pyCollectAssigned(node: CodeNode, assigned: {
2668
3025
  [key: string]: boolean;
2669
3026
  }, declared: {
2670
3027
  [key: string]: boolean;
2671
3028
  }): void;
2672
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3029
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2673
3030
  getPythonTypeName(node: CodeNode, ctx: RangerAppWriterContext): string;
2674
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3031
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3032
+ pyTypeNameFor(tn: string, ctx: RangerAppWriterContext): string;
3033
+ pyCollectionTypeFor(tn: string, ctx: RangerAppWriterContext): string;
3034
+ pyAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext): string;
2675
3035
  writeClassVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2676
3036
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2677
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2678
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2679
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2680
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2681
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2682
- }
2683
- export declare class WebPageWriter {
2684
- classWriter?: RangerGenericClassWriter;
2685
- constructor();
2686
- CreatePage(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
3037
+ pyWriteReturnAnnotation(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3038
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3039
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3040
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3041
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3042
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
3043
+ pyWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3044
+ pyWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3045
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2687
3046
  }
2688
3047
  export declare class RangerJavaScriptClassWriter extends RangerGenericClassWriter {
3048
+ jsLoops: ForLoopShape;
2689
3049
  compiler?: LiveCompiler;
2690
3050
  thisName: string;
2691
3051
  wrote_header: boolean;
2692
3052
  target_flow: boolean;
2693
3053
  target_typescript: boolean;
2694
3054
  target_esm: boolean;
2695
- constructor();
3055
+ tsTraits: TraitInterfaceAnalysis;
3056
+ ts_traits_written: boolean;
3057
+ tsEnums: EnumNativeAnalysis;
3058
+ ts_enums_written: boolean;
3059
+ constructor();
3060
+ jsWriteOperand(arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3061
+ jsWriteForLoop(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3062
+ CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2696
3063
  lineEnding(): string;
2697
3064
  writeTsOptionalReturnSuffix(variant: RangerAppFunctionDesc, wr: CodeWriter): void;
2698
3065
  adjustType(tn: string): string;
2699
- CreateTsUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3066
+ CreateTsUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2700
3067
  isOptionalReference(node: CodeNode): boolean;
2701
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2702
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3068
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3069
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3070
+ jsClassRef(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): string;
3071
+ jsDeclName(cl: RangerAppClassDesc): string;
2703
3072
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2704
3073
  collectionTypeStringToTs(type_string: string, ctx: RangerAppWriterContext): string;
2705
3074
  getTypeString(type_string: string): string;
2706
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2707
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2708
- writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2709
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2710
- writeClassVarDef(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2711
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2712
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2713
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2714
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2715
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
3075
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3076
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3077
+ writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3078
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3079
+ tsEnumIsNative(enumName: string, ctx: RangerAppWriterContext): boolean;
3080
+ writeTsNativeEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
3081
+ writeTsTraitInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
3082
+ writeClassVarDef(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3083
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3084
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3085
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3086
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3087
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2716
3088
  BuildAST(code_string: string): CodeNode;
2717
- CreateServices(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2718
- CreatePages(parser: RangerFlowParser, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2719
- CreatePage(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2720
- writeNpmPackage(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
3089
+ writeNpmPackage(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2721
3090
  }
2722
3091
  export declare class RangerRangerClassWriter extends RangerGenericClassWriter {
2723
3092
  compiler?: LiveCompiler;
@@ -2725,21 +3094,20 @@ export declare class RangerRangerClassWriter extends RangerGenericClassWriter {
2725
3094
  adjustType(tn: string): string;
2726
3095
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2727
3096
  getTypeString(type_string: string): string;
2728
- writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2729
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2730
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3097
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3098
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3099
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2731
3100
  WriteVRefWithOpt(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2732
- writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2733
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2734
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2735
- writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2736
- writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2737
- writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2738
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2739
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
3101
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3102
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3103
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3104
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3105
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3106
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3107
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3108
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
2740
3109
  }
2741
3110
  export declare class LowIRUtil {
2742
- constructor();
2743
3111
  static typeFromRanger(typeName: string): string;
2744
3112
  static isSupportedPrimitive(typeName: string): boolean;
2745
3113
  static looksLikeUtf8Bytes(text: string): boolean;
@@ -2871,7 +3239,7 @@ export declare class LowIRSession {
2871
3239
  static __singleton(): LowIRSession;
2872
3240
  }
2873
3241
  export declare class LowIRBuilder {
2874
- irModule?: LowIRModule;
3242
+ irModule: LowIRModule;
2875
3243
  tempCounter: number;
2876
3244
  blockCounter: number;
2877
3245
  blocks: Array<LowIRBlock>;
@@ -2938,7 +3306,6 @@ export declare class LowIRBuilder {
2938
3306
  finishFunction(name: string, retType: string, params: Array<LowIRParam>, exportFn: boolean, isMain: boolean): string;
2939
3307
  }
2940
3308
  export declare class LowIRRuntimeGen {
2941
- constructor();
2942
3309
  static hasFunction(module: LowIRModule, name: string): boolean;
2943
3310
  static ensureArrayRuntime(module: LowIRModule): void;
2944
3311
  static ensureMapRuntime(module: LowIRModule): void;
@@ -3117,15 +3484,9 @@ export declare class LowIRBuilderPass {
3117
3484
  isLambdaTypeNode(node: CodeNode): boolean;
3118
3485
  canLowerFunction(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3119
3486
  isKeywordMarkerParam(p: RangerAppParamDesc): boolean;
3120
- canLowerMethod(fnDesc: RangerAppFunctionDesc): boolean;
3121
3487
  canLowerInstanceMethod(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3122
3488
  isMainEntry(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3123
3489
  shouldExport(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3124
- lowerModule(appCtx: RangerAppWriterContext): LowIRModule;
3125
- ensureExternDecl(fnName: string, retType: string, paramTypes: Array<string>, isVararg: boolean): void;
3126
- ensureLibcExtern(target: LowIRTarget): void;
3127
- ensureBufferExtern(target: LowIRTarget): void;
3128
- ensureMemExtern(target: LowIRTarget): void;
3129
3490
  memEnabled(lctx: LowIRLowerContext): boolean;
3130
3491
  objRcEnabled(lctx: LowIRLowerContext): boolean;
3131
3492
  strRcEnabled(lctx: LowIRLowerContext): boolean;
@@ -3134,20 +3495,13 @@ export declare class LowIRBuilderPass {
3134
3495
  isEnumTypeName(typeName: string): boolean;
3135
3496
  llvmTypeForRanger(typeName: string, ptrType: string): string;
3136
3497
  varTypeName(nameNode: CodeNode): string;
3137
- exprIsObjectPtr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3138
3498
  isRefCountedObjectType(typeName: string): boolean;
3139
- isObjectTypeName(typeName: string): boolean;
3140
- exprIsString(node: CodeNode): boolean;
3141
- exprMightBeString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3142
3499
  lowerConcatOperand(node: CodeNode, isStr: boolean, lctx: LowIRLowerContext): string;
3143
3500
  emitStrdupExpr(strPtr: string, lctx: LowIRLowerContext): string;
3144
- lowerStringConcat(aNode: CodeNode, bNode: CodeNode, lctx: LowIRLowerContext): string;
3145
3501
  hasExternDecl(fnName: string): boolean;
3146
- internStringGlobal(text: string, withNewline: boolean): string;
3147
3502
  utf8ByteLen(text: string): number;
3148
3503
  stringGlobalByteLen(gname: string): number;
3149
3504
  printTextFromNode(node: CodeNode): string;
3150
- emitIoString(text: string, withNewline: boolean, lctx: LowIRLowerContext): void;
3151
3505
  emitPrintfFmt(fmt: string, args: Array<string>, argTypes: Array<string>, lctx: LowIRLowerContext): void;
3152
3506
  lowerPrint(node: CodeNode, lctx: LowIRLowerContext): void;
3153
3507
  lowerWrite(node: CodeNode, lctx: LowIRLowerContext): void;
@@ -3167,10 +3521,7 @@ export declare class LowIRBuilderPass {
3167
3521
  lowerShellArg(node: CodeNode, lctx: LowIRLowerContext): string;
3168
3522
  lowerReadFile(node: CodeNode, lctx: LowIRLowerContext): string;
3169
3523
  lowerCreateDir(node: CodeNode, lctx: LowIRLowerContext): void;
3170
- lowerWriteFile(node: CodeNode, lctx: LowIRLowerContext): void;
3171
- lowerNullify(node: CodeNode, lctx: LowIRLowerContext): void;
3172
3524
  lowerBufferAlloc(node: CodeNode, lctx: LowIRLowerContext): string;
3173
- emitPtrArrayLenOrBufferLen(bufVal: string, lctx: LowIRLowerContext): string;
3174
3525
  lowerBufferLength(node: CodeNode, lctx: LowIRLowerContext): string;
3175
3526
  lowerBufferGet(node: CodeNode, lctx: LowIRLowerContext): string;
3176
3527
  lowerBufferSet(node: CodeNode, lctx: LowIRLowerContext): string;
@@ -3180,15 +3531,12 @@ export declare class LowIRBuilderPass {
3180
3531
  lowerIntBufferAlloc(node: CodeNode, lctx: LowIRLowerContext): string;
3181
3532
  lowerIntBufferGet(node: CodeNode, lctx: LowIRLowerContext): string;
3182
3533
  lowerIntBufferSet(node: CodeNode, lctx: LowIRLowerContext): string;
3183
- exprIsF64(node: CodeNode): boolean;
3184
3534
  promoteToF64(node: CodeNode, val: string, lctx: LowIRLowerContext): string;
3185
3535
  lowerToDouble(node: CodeNode, lctx: LowIRLowerContext): string;
3186
3536
  emitDoubleToString(value: string, lctx: LowIRLowerContext): string;
3187
3537
  emitLibmCall(fnName: string, value: string, lctx: LowIRLowerContext): string;
3188
3538
  lowerToInt(node: CodeNode, lctx: LowIRLowerContext): string;
3189
3539
  lowerFloor(node: CodeNode, lctx: LowIRLowerContext): string;
3190
- lowerStr2Double(node: CodeNode, lctx: LowIRLowerContext): string;
3191
- lowerStr2Int(node: CodeNode, lctx: LowIRLowerContext): string;
3192
3540
  lowerIntBufferFill(node: CodeNode, lctx: LowIRLowerContext): string;
3193
3541
  lowerCharAt(node: CodeNode, lctx: LowIRLowerContext): string;
3194
3542
  lowerSubstring(node: CodeNode, lctx: LowIRLowerContext): string;
@@ -3198,21 +3546,9 @@ export declare class LowIRBuilderPass {
3198
3546
  lowerPtrIsNull(ptr: string, lctx: LowIRLowerContext): string;
3199
3547
  lowerPtrIsNotNull(ptr: string, lctx: LowIRLowerContext): string;
3200
3548
  loadArrayDescExpr(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3201
- exprIsPtrSizedRead(rawNode: CodeNode, lctx: LowIRLowerContext): boolean;
3202
3549
  pushValueNeedsWiden(itemNode: CodeNode, value: string, lctx: LowIRLowerContext): boolean;
3203
- pushItemNeedsWiden(itemNode: CodeNode, lctx: LowIRLowerContext): boolean;
3204
- arrayElemTypeName(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3205
- nodeIsArrayExpr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3206
- lowerArrayIndexOf(node: CodeNode, lctx: LowIRLowerContext): string;
3207
3550
  isArrayLiteralValue(nameNode: CodeNode, val: CodeNode): boolean;
3208
3551
  isArrayLiteralShape(val: CodeNode): boolean;
3209
- arrayElemTypeOfTypeName(typeName: string): string;
3210
- arrayLiteralElemType(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3211
- lowerArrayLiteral(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3212
- lowerArrayLiteralTyped(elemType: string, node: CodeNode, lctx: LowIRLowerContext): string;
3213
- lowerPush(node: CodeNode, lctx: LowIRLowerContext): void;
3214
- lowerForMap(node: CodeNode, lctx: LowIRLowerContext): boolean;
3215
- lowerFor(node: CodeNode, lctx: LowIRLowerContext): void;
3216
3552
  emitStrcmpEq(lhs: string, rhs: string, ctx: LowIRLowerContext): string;
3217
3553
  propertyReadClass(node: CodeNode, lctx: LowIRLowerContext): string;
3218
3554
  isPropertyReadNode(node: CodeNode): boolean;
@@ -3221,65 +3557,28 @@ export declare class LowIRBuilderPass {
3221
3557
  isLibmBinaryOp(op: string): boolean;
3222
3558
  lowerLibmUnary(fnName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3223
3559
  lowerLibmBinary(fnName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3224
- lowerToString(node: CodeNode, lctx: LowIRLowerContext): string;
3225
- lowerStrFromCode(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3226
- lowerStrlenOn(textNode: CodeNode, lctx: LowIRLowerContext): string;
3227
3560
  unwrapUnwrapOper(node: CodeNode): CodeNode;
3228
- lowerStrlen(node: CodeNode, lctx: LowIRLowerContext): string;
3229
3561
  isIntArrayTypeNode(node: CodeNode): boolean;
3230
3562
  isIntKeyValueMapTypeNode(node: CodeNode): boolean;
3231
- ensureIMapExterns(): void;
3232
3563
  widenToI64(val: string, keyNode: CodeNode, lctx: LowIRLowerContext): string;
3233
3564
  emitIMapCall(fnName: string, retType: string, desc: string, rest: Array<string>, restTypes: Array<string>, lctx: LowIRLowerContext): string;
3234
- imapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3235
- imapValueKind(vref: string, lctx: LowIRLowerContext): string;
3236
- imapValueOwnKind(typeName: string): number;
3237
3565
  isIntIntMapTypeNode(node: CodeNode): boolean;
3238
- ensureSMapExterns(): void;
3239
3566
  emitSMapNew(lctx: LowIRLowerContext): string;
3240
3567
  emitSMapNewKind(valKind: number, lctx: LowIRLowerContext): string;
3241
- smapValueOwnKind(valueTypeName: string): number;
3242
3568
  emitSMapCall(fnName: string, retType: string, descIn: string, rest: Array<string>, restTypes: Array<string>, lctx: LowIRLowerContext): string;
3243
- lowerSMapKeys(node: CodeNode, lctx: LowIRLowerContext): string;
3244
- lowerEnumRef(node: CodeNode, lctx: LowIRLowerContext): string;
3245
- jsonTypeNameOfNode(node: CodeNode, lctx: LowIRLowerContext): string;
3246
3569
  nodeIsJson(node: CodeNode, lctx: LowIRLowerContext): boolean;
3247
3570
  jsonValueKind(valNode: CodeNode, lctx: LowIRLowerContext): string;
3248
- ensureJsonExtern(fnName: string, retType: string, params: Array<string>): void;
3249
3571
  emitAnsiConst(code: string, lctx: LowIRLowerContext): string;
3250
3572
  tryLowerAnsi(opName: string, lctx: LowIRLowerContext): string;
3251
3573
  emitJsonCall(fnName: string, retType: string, args: Array<string>, argTypes: Array<string>, cParams: Array<string>, lctx: LowIRLowerContext): string;
3252
- lowerJsonNew(fnName: string, lctx: LowIRLowerContext): string;
3253
- lowerJsonGet(node: CodeNode, fnName: string, retIr: string, cRet: string, lctx: LowIRLowerContext): string;
3254
- lowerJsonSet(node: CodeNode, lctx: LowIRLowerContext): void;
3255
- lowerJsonPush(node: CodeNode, lctx: LowIRLowerContext): void;
3256
- lowerJson1(node: CodeNode, fnName: string, cRet: string, lctx: LowIRLowerContext): string;
3257
- lowerJsonGetValue(node: CodeNode, lctx: LowIRLowerContext): string;
3258
3574
  jsonCaseKindFor(typeName: string): number;
3259
- lowerJsonCase(node: CodeNode, lctx: LowIRLowerContext): boolean;
3260
- lowerArraySort(node: CodeNode, lctx: LowIRLowerContext): string;
3261
- lowerArrayInsert(node: CodeNode, lctx: LowIRLowerContext): void;
3262
3575
  emitArrayRemoveCall(node: CodeNode, lctx: LowIRLowerContext): string;
3263
- lowerArrayRemove(node: CodeNode, lctx: LowIRLowerContext): void;
3264
- lowerArrayRemoveLast(node: CodeNode, lctx: LowIRLowerContext): void;
3265
- lowerArrayClear(node: CodeNode, lctx: LowIRLowerContext): void;
3266
- lowerArrayExtract(node: CodeNode, lctx: LowIRLowerContext): string;
3267
- lowerTernary(node: CodeNode, lctx: LowIRLowerContext): string;
3268
- lowerArrayReverse(node: CodeNode, lctx: LowIRLowerContext): string;
3269
3576
  toI1(v: string, lctx: LowIRLowerContext): string;
3270
- lowerStr2Fn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3271
- lowerStr3Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3272
- lowerStr2IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3273
- lowerStr1IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3274
- lowerStr0Fn(fnName: string, lctx: LowIRLowerContext): string;
3275
- lowerStr1Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3276
3577
  isStringKeyMapTypeNode(node: CodeNode): boolean;
3277
3578
  isObjectPtrArrayTypeNode(node: CodeNode): boolean;
3278
3579
  isPlainValueArrayTypeNode(node: CodeNode): boolean;
3279
3580
  isDoubleArrayTypeNode(node: CodeNode): boolean;
3280
- arrayElemIsDouble(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3281
3581
  isStringArrayTypeNode(node: CodeNode): boolean;
3282
- emitPtrArrayNewEmpty(lctx: LowIRLowerContext, elemKind: number): string;
3283
3582
  isOwnedCollectionLocal(varName: string, lctx: LowIRLowerContext): boolean;
3284
3583
  bindPtrArraySlot(varName: string, desc: string, lctx: LowIRLowerContext, owned: boolean): void;
3285
3584
  wasmCollectionRcEnabled(lctx: LowIRLowerContext): boolean;
@@ -3287,7 +3586,6 @@ export declare class LowIRBuilderPass {
3287
3586
  arrayLenOff(lctx: LowIRLowerContext): number;
3288
3587
  arrayCapOff(lctx: LowIRLowerContext): number;
3289
3588
  arrayDescBytes(lctx: LowIRLowerContext): number;
3290
- ptrArrayOwnedOff(lctx: LowIRLowerContext): number;
3291
3589
  bindCollectionSlot(varName: string, kind: string, desc: string, lctx: LowIRLowerContext): void;
3292
3590
  loadCollectionDesc(varName: string, lctx: LowIRLowerContext): string;
3293
3591
  emitDescLoad(desc: string, byteOff: number, lctx: LowIRLowerContext): string;
@@ -3300,18 +3598,10 @@ export declare class LowIRBuilderPass {
3300
3598
  emitRtMapPut(desc: string, key: string, val: string, lctx: LowIRLowerContext): void;
3301
3599
  emitRtMapGet(desc: string, key: string, lctx: LowIRLowerContext): string;
3302
3600
  emitRtMapHas(desc: string, key: string, lctx: LowIRLowerContext): string;
3303
- lowerCollectionMake(node: CodeNode, lctx: LowIRLowerContext): string;
3304
- lowerCollectionGet(node: CodeNode, lctx: LowIRLowerContext): string;
3305
- lowerCollectionLen(node: CodeNode, lctx: LowIRLowerContext): string;
3306
- lowerCollectionHas(node: CodeNode, lctx: LowIRLowerContext): string;
3307
- lowerCollectionSet(node: CodeNode, lctx: LowIRLowerContext): void;
3308
3601
  collectStructVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<RangerAppParamDesc>;
3309
3602
  collectStructVarsInto(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, out: Array<RangerAppParamDesc>, seen: {
3310
3603
  [key: string]: boolean;
3311
3604
  }, depth: number): void;
3312
- lowerStruct(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
3313
- lowerTypeDesc(st: LowIRStruct, target: LowIRTarget): void;
3314
- fieldByteOffset(className: string, fieldIndex: number, module: LowIRModule): number;
3315
3605
  shadowBind(varName: string, irType: string, value: string, lctx: LowIRLowerContext): string;
3316
3606
  restoreShadow(varName: string, prev: string, lctx: LowIRLowerContext): void;
3317
3607
  takeForceFresh(varName: string, lctx: LowIRLowerContext): boolean;
@@ -3323,38 +3613,23 @@ export declare class LowIRBuilderPass {
3323
3613
  fieldIsPtrArraySlot(className: string, fieldName: string): boolean;
3324
3614
  fieldIsObjectSlot(className: string, fieldName: string): boolean;
3325
3615
  strKeyPtr(keyNode: CodeNode, key: string, lctx: LowIRLowerContext): string;
3326
- smapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3327
- isStringMapVref(vref: string, lctx: LowIRLowerContext): boolean;
3328
- smapValueKind(vref: string, lctx: LowIRLowerContext): string;
3329
- smapValueIsInt(vref: string, lctx: LowIRLowerContext): boolean;
3330
3616
  fieldIsIntMapSlot(className: string, fieldName: string): boolean;
3331
3617
  fieldIsStringMapSlot(className: string, fieldName: string): boolean;
3332
3618
  fieldIsStringSlot(className: string, fieldName: string): boolean;
3333
3619
  fieldIsBufferSlot(className: string, fieldName: string): boolean;
3334
3620
  fieldIsBoolSlot(className: string, fieldName: string): boolean;
3335
- ptrArrayDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3336
3621
  loadPtrArrayDescExpr(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3337
- emitPtrArrayLen(desc: string, lctx: LowIRLowerContext): string;
3338
3622
  fieldArrayElemType(className: string, fieldName: string, lctx: LowIRLowerContext): string;
3339
- ptrArrayElemIsInt(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3340
3623
  lowerItemAt(node: CodeNode, lctx: LowIRLowerContext): string;
3341
- emitPtrArrayElemGet(desc: string, idx: string, arrNode: CodeNode, lctx: LowIRLowerContext): string;
3342
- emitPtrArrayElemSet(desc: string, idx: string, val: string, arrNode: CodeNode, lctx: LowIRLowerContext): void;
3343
3624
  emitFieldLoadOn(className: string, structPtr: string, fieldName: string, lctx: LowIRLowerContext): string;
3344
- emitReleaseFieldValue(className: string, fieldName: string, rawVal: string, lctx: LowIRLowerContext): void;
3345
- exprCarriesFreshRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3346
- exprIsBorrowedPtrArrayRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3347
3625
  retainAliasedArray(valNode: CodeNode, desc: string, lctx: LowIRLowerContext): void;
3348
3626
  isBorrowedArrayExpr(valNode: CodeNode): boolean;
3349
3627
  emitSMapRetain(desc: string, lctx: LowIRLowerContext): void;
3350
- emitPtrArrayRetain(desc: string, lctx: LowIRLowerContext): void;
3351
3628
  emitFieldStoreOn(className: string, structPtr: string, fieldName: string, value: string, lctx: LowIRLowerContext): void;
3352
- emitFieldStoreOnEx(className: string, structPtr: string, fieldName: string, value: string, srcIsFresh: boolean, lctx: LowIRLowerContext): void;
3353
3629
  emitObjRetainPtr(ptr: string, lctx: LowIRLowerContext): void;
3354
3630
  emitObjReleasePtr(ptr: string, lctx: LowIRLowerContext): void;
3355
3631
  emitFieldLoad(fieldName: string, lctx: LowIRLowerContext): string;
3356
3632
  emitFieldStore(fieldName: string, value: string, lctx: LowIRLowerContext): void;
3357
- fieldObjectClassName(className: string, fieldName: string, lctx: LowIRLowerContext): string;
3358
3633
  resolveObjectPtr(varName: string, className: string, lctx: LowIRLowerContext): string;
3359
3634
  joinDotPrefix(parts: Array<string>, count: number): string;
3360
3635
  resolveObjectClassChain(varName: string, lctx: LowIRLowerContext): string;
@@ -3362,32 +3637,18 @@ export declare class LowIRBuilderPass {
3362
3637
  resolveObjectClass(varName: string, lctx: LowIRLowerContext): string;
3363
3638
  resolveFieldPtrExpr(vref: string, lctx: LowIRLowerContext): string;
3364
3639
  isObjectArrayField(v: RangerAppParamDesc): boolean;
3365
- newTargetClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3366
3640
  emitFieldDefault(className: string, objPtr: string, fieldName: string, valNode: CodeNode, lctx: LowIRLowerContext): void;
3367
3641
  initFieldDefaultsInObject(className: string, objPtr: string, lctx: LowIRLowerContext): void;
3368
3642
  initFieldDefaultsInConstructor(className: string, lctx: LowIRLowerContext): void;
3369
- initArrayFieldsInObject(className: string, objPtr: string, lctx: LowIRLowerContext): void;
3370
3643
  initArrayFieldsInConstructor(className: string, lctx: LowIRLowerContext): void;
3371
- structByteSize(className: string, module: LowIRModule): number;
3372
3644
  classHasOwnedFields(className: string): boolean;
3373
3645
  newArgListOf(argsNode: CodeNode): CodeNode;
3374
- lowerNewObject(className: string, argsNodeIn: CodeNode, lctx: LowIRLowerContext): string;
3375
3646
  findFieldIndex(className: string, fieldName: string, module: LowIRModule): number;
3376
3647
  resolvesToField(fieldName: string, lctx: LowIRLowerContext): boolean;
3377
3648
  isRealConstructor(fnDesc: RangerAppFunctionDesc, className: string, appCtx: RangerAppWriterContext): boolean;
3378
3649
  isClassField(fieldName: string, className: string, module: LowIRModule): boolean;
3379
3650
  structFieldCount(className: string, module: LowIRModule): number;
3380
- lowerFunction(fnDesc: RangerAppFunctionDesc, className: string, appCtx: RangerAppWriterContext, exportFn: boolean, isMain: boolean, isInstance: boolean): void;
3381
- lowerSingletonAccessor(cl: RangerAppClassDesc, appCtx: RangerAppWriterContext): void;
3382
- collectLambdas(appCtx: RangerAppWriterContext): void;
3383
- collectMethodLambdas(m: RangerAppFunctionDesc, pt: string): void;
3384
- collectMethodLambdasAt(m: RangerAppFunctionDesc, pt: string, depth: number): void;
3385
- lambdaCallSig(lam: RangerAppFunctionDesc, pt: string): string;
3386
3651
  addLambdaSig(sig: string): void;
3387
- lowerLambdaBodies(appCtx: RangerAppWriterContext): void;
3388
- lowerLambdaFunction(lam: RangerAppFunctionDesc, fnName: string, appCtx: RangerAppWriterContext): void;
3389
- lambdaTableIndex(name: string): number;
3390
- nodeAssignsToName(node: CodeNode, name: string): boolean;
3391
3652
  boxedCellType(varName: string, lctx: LowIRLowerContext): string;
3392
3653
  emitBoxCell(lctx: LowIRLowerContext): string;
3393
3654
  boxInitValue(irType: string, value: string, lctx: LowIRLowerContext): string;
@@ -3399,15 +3660,8 @@ export declare class LowIRBuilderPass {
3399
3660
  computeBoxedCandidates(fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): void;
3400
3661
  collectBoxedCandidates(m: RangerAppFunctionDesc, lctx: LowIRLowerContext): void;
3401
3662
  irTypeBytes(irType: string, lctx: LowIRLowerContext): number;
3402
- lambdaOwnerClass(lam: RangerAppFunctionDesc, depth: number): string;
3403
- lambdaCaptureNames(node: CodeNode, lam: RangerAppFunctionDesc): Array<string>;
3404
- nestedCaptureNames(lam: RangerAppFunctionDesc, depth: number): Array<string>;
3405
- computeLambdaCaptures(node: CodeNode, lam: RangerAppFunctionDesc, lctx: LowIRLowerContext): LambdaCaptureInfo;
3406
- lowerLambdaValue(node: CodeNode, lctx: LowIRLowerContext): string;
3407
- lowerLambdaCall(node: CodeNode, lctx: LowIRLowerContext): string;
3408
3663
  isOwnedObjectLocal(varName: string, lctx: LowIRLowerContext): boolean;
3409
3664
  slotHoldsObject(varName: string, lctx: LowIRLowerContext): boolean;
3410
- releaseOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3411
3665
  isOwnedStringLocal(varName: string, lctx: LowIRLowerContext): boolean;
3412
3666
  registerFreshStringTemp(tmp: string, lctx: LowIRLowerContext): void;
3413
3667
  claimStringTemp(tmp: string, lctx: LowIRLowerContext): void;
@@ -3416,142 +3670,255 @@ export declare class LowIRBuilderPass {
3416
3670
  claimObjectTemp(tmp: string, lctx: LowIRLowerContext): void;
3417
3671
  flushObjectTempsFrom(mark: number, lctx: LowIRLowerContext): void;
3418
3672
  emitStrReleasePtr(ptr: string, lctx: LowIRLowerContext): void;
3419
- releaseOwnedString(varName: string, lctx: LowIRLowerContext): void;
3420
- releaseOwnedCollectionLocal(varName: string, lctx: LowIRLowerContext): void;
3421
- emitOwnedStringInit(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3422
3673
  isCapturedName(varName: string, lctx: LowIRLowerContext): boolean;
3423
- emitOwnedStringReassign(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3424
3674
  strictOwnershipEnabled(lctx: LowIRLowerContext): boolean;
3425
- emitOwnershipSummary(lctx: LowIRLowerContext): void;
3426
- emitReleaseOwnedLocals(lctx: LowIRLowerContext): void;
3427
3675
  withoutName(names: Array<string>, varName: string): Array<string>;
3428
- popReslots(mark: number, lctx: LowIRLowerContext): void;
3429
- lowerBlock(block: CodeNode, lctx: LowIRLowerContext): void;
3430
3676
  blockClosed(lctx: LowIRLowerContext): boolean;
3431
- lowerStmtList(stmts: Array<CodeNode>, lctx: LowIRLowerContext): void;
3432
- lowerBlockBody(block: CodeNode, lctx: LowIRLowerContext): void;
3433
3677
  isAssignNode(node: CodeNode): boolean;
3434
- lowerStmt(node: CodeNode, lctx: LowIRLowerContext): void;
3435
- lowerStmtDispatch(node: CodeNode, lctx: LowIRLowerContext): void;
3436
3678
  declaredIrTypeOf(nameNode: CodeNode, lctx: LowIRLowerContext): string;
3437
3679
  noteRedeclaration(varName: string, nameNode: CodeNode, lctx: LowIRLowerContext): void;
3438
- lowerVarDef(node: CodeNode, lctx: LowIRLowerContext): void;
3439
- lowerVarDefBody(node: CodeNode, lctx: LowIRLowerContext): void;
3440
- exprIsI64Operator(node: CodeNode): boolean;
3441
3680
  assignTargetFieldClass(varName: string, lctx: LowIRLowerContext): string;
3442
- lowerAssign(node: CodeNode, lctx: LowIRLowerContext): void;
3443
- lowerReturn(node: CodeNode, lctx: LowIRLowerContext): void;
3444
3681
  isCompareOp(op: string): boolean;
3445
3682
  unwrapInfixExpr(node: CodeNode): CodeNode;
3446
- unwrapCondExpr(node: CodeNode): CodeNode;
3447
- exprProducesI1(node: CodeNode, lctx: LowIRLowerContext): boolean;
3448
3683
  condVref(node: CodeNode): string;
3449
- lowerCondOperand(node: CodeNode, lctx: LowIRLowerContext): string;
3450
- lowerCond(node: CodeNode, lctx: LowIRLowerContext): string;
3451
3684
  emitSwitchCaseTest(subj: string, subjNode: CodeNode, caseNode: CodeNode, lctx: LowIRLowerContext): string;
3452
3685
  emitStrOrDefault(value: string, fallback: string, lctx: LowIRLowerContext): string;
3453
- lowerThrow(node: CodeNode, lctx: LowIRLowerContext): void;
3454
3686
  emptyStrList(): Array<string>;
3455
- lowerTry(node: CodeNode, lctx: LowIRLowerContext): void;
3456
3687
  guardUnwrapInTry(value: string, lctx: LowIRLowerContext): void;
3457
- lowerSwitch(node: CodeNode, lctx: LowIRLowerContext): void;
3458
3688
  shapeCaseClassName(itemNode: CodeNode): string;
3459
3689
  moduleHasTypeDesc(className: string): boolean;
3460
3690
  emitShapeKindTest(val: string, caseClass: string, lctx: LowIRLowerContext): string;
3461
3691
  lowerShapeIs(node: CodeNode, lctx: LowIRLowerContext): string;
3462
- lowerShapeCase(node: CodeNode, lctx: LowIRLowerContext): void;
3463
- lowerIf(node: CodeNode, lctx: LowIRLowerContext): void;
3464
- emitLoopBodyReleases(lctx: LowIRLowerContext): void;
3465
3692
  lowerLoopJump(target: string, lctx: LowIRLowerContext): void;
3466
- lowerWhile(node: CodeNode, lctx: LowIRLowerContext): void;
3467
- releaseAndClearOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3468
- releaseAndClearOwnedCollection(varName: string, lctx: LowIRLowerContext): void;
3469
- releaseLoopBodyOwned(ownedBefore: number, ownedStrBefore: number, ownedCollBefore: number, lctx: LowIRLowerContext): void;
3470
- lowerExpr(node: CodeNode, lctx: LowIRLowerContext): string;
3471
- operatorReturnsString(op: string): boolean;
3472
- exprIsFreshString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3473
- exprIsStringish(node: CodeNode, lctx: LowIRLowerContext): boolean;
3474
- lowerStringCompare(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3475
- lowerCompareI32(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3476
3693
  lowerArithF64OrI32(intKind: string, fpKind: string, node: CodeNode, lctx: LowIRLowerContext): string;
3477
- lowerBinaryOp(opName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3478
- lowerShortCircuit(node: CodeNode, isAnd: boolean, lctx: LowIRLowerContext): string;
3479
- tryLowerIntrinsic(fnName: string, argsNode: CodeNode, lctx: LowIRLowerContext): string;
3480
3694
  finishObjectCall(rv: string): string;
3481
- lowerCall(node: CodeNode, lctx: LowIRLowerContext): string;
3482
- exprRecvClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3483
- tryLowerObjectCall(node: CodeNode, lctx: LowIRLowerContext): string;
3484
3695
  fieldReceiverClass(recvName: string, lctx: LowIRLowerContext): string;
3485
3696
  callArgsNode(node: CodeNode): CodeNode;
3486
3697
  resolveMethodName(node: CodeNode, defaultName: string): string;
3487
3698
  argIrType(arg: CodeNode, lctx: LowIRLowerContext): string;
3488
- lowerCallArgValue(arg: CodeNode, paramIndex: number, fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): string;
3489
3699
  paramIrTypeFromDesc(paramIndex: number, fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): string;
3490
- coerceArg(value: string, wantType: string, lctx: LowIRLowerContext): string;
3491
3700
  methodOwnerClass(className: string, methodName: string, lctx: LowIRLowerContext): string;
3492
- methodOwnerClassIn(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3493
3701
  virtualKeyOf(className: string, methodName: string): string;
3494
- topmostDeclaringClass(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3495
3702
  classIsLowered(cl: RangerAppClassDesc): boolean;
3496
- collectVirtualMethods(appCtx: RangerAppWriterContext): void;
3497
3703
  classInheritsFrom(className: string, baseName: string, appCtx: RangerAppWriterContext, depth: number): boolean;
3498
3704
  virtualDispatcherName(className: string, methodName: string): string;
3499
3705
  hasVirtualDispatcher(className: string, methodName: string): boolean;
3500
3706
  emitVirtualDispatchers(appCtx: RangerAppWriterContext): void;
3501
- emitOneVirtualDispatcher(top: string, meth: string, fnDesc: RangerAppFunctionDesc, cases: Array<string>, appCtx: RangerAppWriterContext): void;
3502
3707
  emitDispatchTailCall(builder: LowIRBuilder, cls: string, meth: string, retType: string, argNames: Array<string>, argTypes: Array<string>): void;
3503
- lowerInstanceCallOn(node: CodeNode, receiverName: string, recvNode: CodeNode, methodName: string, lctx: LowIRLowerContext): string;
3504
3708
  registerCallObjectTemp(node: CodeNode, tmp: string, lctx: LowIRLowerContext): void;
3505
- lowerInstanceCall(node: CodeNode, lctx: LowIRLowerContext): string;
3506
- calleeReceiverIsUnknown(callee: CodeNode, lctx: LowIRLowerContext): boolean;
3507
3709
  moduleHasFunction(fnName: string): boolean;
3508
3710
  resolveCalleeName(callee: CodeNode): string;
3509
- }
3510
- export declare class LLVMIRWriter {
3511
- instrLineLen: number;
3512
- varargNames: Array<string>;
3513
- varargSigs: Array<string>;
3514
- constructor();
3515
- collectVarargFns(module: LowIRModule): void;
3516
- varargSigFor(fnName: string): string;
3517
- llTy(t: string): string;
3518
- normalizeDoubleLit(lit: string): string;
3519
- hexDigit(d: number): string;
3520
- hexByte(b: number): string;
3521
- llvmEscapeCString(text: string): string;
3522
- writeModule(module: LowIRModule, wr: CodeWriter): void;
3523
- writeBigStackMain(wr: CodeWriter): void;
3524
- writeLambdaTable(module: LowIRModule, wr: CodeWriter): void;
3525
- writeTypeDescs(module: LowIRModule, wr: CodeWriter): void;
3526
- writeOneTypeDesc(td: LowIRTypeDesc, wr: CodeWriter): void;
3527
- writeStruct(st: LowIRStruct, wr: CodeWriter): void;
3528
- writeFunction(fn: LowIRFunction, wr: CodeWriter): void;
3529
- writeInstr(ins: LowIRInstr, wr: CodeWriter): void;
3530
- writeInstrBody(ins: LowIRInstr, wr: CodeWriter): void;
3531
- writeTerminator(bb: LowIRBlock, wr: CodeWriter): void;
3532
- }
3533
- export declare class WATWriter {
3534
- strAddrs: {
3535
- [key: string]: number;
3536
- };
3537
- typeDescAddrs: {
3538
- [key: string]: number;
3539
- };
3540
- lambdaFuncs: Array<string>;
3541
- constructor();
3542
- lambdaFuncIndex(name: string): number;
3543
- sigTypeName(callSig: string): string;
3544
- sigTypeDecl(callSig: string): string;
3545
- utf8Encode(text: string): Array<number>;
3546
- hexDigit(d: number): string;
3547
- hexByte(b: number): string;
3548
- dataEscape(bytes: Array<number>): string;
3549
- leWord(v: number): string;
3550
- align4(a: number): number;
3551
- fieldOwnedFlag(fd: LowIRTypeFieldDesc): number;
3552
- descHasOwned(td: LowIRTypeDesc): boolean;
3553
- moduleHasOwnedTypeDescs(module: LowIRModule): boolean;
3554
- emitStaticData(module: LowIRModule, wr: CodeWriter): void;
3711
+ exprIsObjectPtr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3712
+ exprIsString(node: CodeNode): boolean;
3713
+ exprMightBeString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3714
+ lowerStringConcat(aNode: CodeNode, bNode: CodeNode, lctx: LowIRLowerContext): string;
3715
+ lowerNullify(node: CodeNode, lctx: LowIRLowerContext): void;
3716
+ exprIsF64(node: CodeNode): boolean;
3717
+ lowerStr2Double(node: CodeNode, lctx: LowIRLowerContext): string;
3718
+ lowerStr2Int(node: CodeNode, lctx: LowIRLowerContext): string;
3719
+ exprIsPtrSizedRead(rawNode: CodeNode, lctx: LowIRLowerContext): boolean;
3720
+ lowerToString(node: CodeNode, lctx: LowIRLowerContext): string;
3721
+ lowerStrFromCode(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3722
+ lowerStrlenOn(textNode: CodeNode, lctx: LowIRLowerContext): string;
3723
+ lowerStrlen(node: CodeNode, lctx: LowIRLowerContext): string;
3724
+ lowerEnumRef(node: CodeNode, lctx: LowIRLowerContext): string;
3725
+ lowerTernary(node: CodeNode, lctx: LowIRLowerContext): string;
3726
+ lowerStr2Fn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3727
+ lowerStr3Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3728
+ lowerStr2IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3729
+ lowerStr1IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3730
+ lowerStr0Fn(fnName: string, lctx: LowIRLowerContext): string;
3731
+ lowerStr1Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3732
+ lowerStruct(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
3733
+ exprCarriesFreshRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3734
+ exprIsBorrowedPtrArrayRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3735
+ exprIsI64Operator(node: CodeNode): boolean;
3736
+ unwrapCondExpr(node: CodeNode): CodeNode;
3737
+ exprProducesI1(node: CodeNode, lctx: LowIRLowerContext): boolean;
3738
+ lowerCondOperand(node: CodeNode, lctx: LowIRLowerContext): string;
3739
+ lowerCond(node: CodeNode, lctx: LowIRLowerContext): string;
3740
+ lowerExpr(node: CodeNode, lctx: LowIRLowerContext): string;
3741
+ operatorReturnsString(op: string): boolean;
3742
+ exprIsFreshString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3743
+ exprIsStringish(node: CodeNode, lctx: LowIRLowerContext): boolean;
3744
+ lowerStringCompare(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3745
+ lowerCompareI32(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3746
+ lowerBinaryOp(opName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3747
+ lowerShortCircuit(node: CodeNode, isAnd: boolean, lctx: LowIRLowerContext): string;
3748
+ lowerCall(node: CodeNode, lctx: LowIRLowerContext): string;
3749
+ exprRecvClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3750
+ lowerCallArgValue(arg: CodeNode, paramIndex: number, fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): string;
3751
+ coerceArg(value: string, wantType: string, lctx: LowIRLowerContext): string;
3752
+ lowerForMap(node: CodeNode, lctx: LowIRLowerContext): boolean;
3753
+ lowerFor(node: CodeNode, lctx: LowIRLowerContext): void;
3754
+ nodeAssignsToName(node: CodeNode, name: string): boolean;
3755
+ lowerBlock(block: CodeNode, lctx: LowIRLowerContext): void;
3756
+ lowerStmtList(stmts: Array<CodeNode>, lctx: LowIRLowerContext): void;
3757
+ lowerBlockBody(block: CodeNode, lctx: LowIRLowerContext): void;
3758
+ lowerStmt(node: CodeNode, lctx: LowIRLowerContext): void;
3759
+ lowerStmtDispatch(node: CodeNode, lctx: LowIRLowerContext): void;
3760
+ lowerVarDef(node: CodeNode, lctx: LowIRLowerContext): void;
3761
+ lowerVarDefBody(node: CodeNode, lctx: LowIRLowerContext): void;
3762
+ lowerAssign(node: CodeNode, lctx: LowIRLowerContext): void;
3763
+ lowerReturn(node: CodeNode, lctx: LowIRLowerContext): void;
3764
+ lowerThrow(node: CodeNode, lctx: LowIRLowerContext): void;
3765
+ lowerTry(node: CodeNode, lctx: LowIRLowerContext): void;
3766
+ lowerSwitch(node: CodeNode, lctx: LowIRLowerContext): void;
3767
+ lowerIf(node: CodeNode, lctx: LowIRLowerContext): void;
3768
+ lowerWhile(node: CodeNode, lctx: LowIRLowerContext): void;
3769
+ canLowerMethod(fnDesc: RangerAppFunctionDesc): boolean;
3770
+ isObjectTypeName(typeName: string): boolean;
3771
+ lowerTypeDesc(st: LowIRStruct, target: LowIRTarget): void;
3772
+ fieldByteOffset(className: string, fieldIndex: number, module: LowIRModule): number;
3773
+ emitFieldStoreOnEx(className: string, structPtr: string, fieldName: string, value: string, srcIsFresh: boolean, lctx: LowIRLowerContext): void;
3774
+ fieldObjectClassName(className: string, fieldName: string, lctx: LowIRLowerContext): string;
3775
+ newTargetClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3776
+ initArrayFieldsInObject(className: string, objPtr: string, lctx: LowIRLowerContext): void;
3777
+ structByteSize(className: string, module: LowIRModule): number;
3778
+ lowerNewObject(className: string, argsNodeIn: CodeNode, lctx: LowIRLowerContext): string;
3779
+ lowerSingletonAccessor(cl: RangerAppClassDesc, appCtx: RangerAppWriterContext): void;
3780
+ lowerShapeCase(node: CodeNode, lctx: LowIRLowerContext): void;
3781
+ tryLowerObjectCall(node: CodeNode, lctx: LowIRLowerContext): string;
3782
+ methodOwnerClassIn(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3783
+ topmostDeclaringClass(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3784
+ collectVirtualMethods(appCtx: RangerAppWriterContext): void;
3785
+ emitOneVirtualDispatcher(top: string, meth: string, fnDesc: RangerAppFunctionDesc, cases: Array<string>, appCtx: RangerAppWriterContext): void;
3786
+ lowerInstanceCallOn(node: CodeNode, receiverName: string, recvNode: CodeNode, methodName: string, lctx: LowIRLowerContext): string;
3787
+ lowerInstanceCall(node: CodeNode, lctx: LowIRLowerContext): string;
3788
+ calleeReceiverIsUnknown(callee: CodeNode, lctx: LowIRLowerContext): boolean;
3789
+ emitPtrArrayLenOrBufferLen(bufVal: string, lctx: LowIRLowerContext): string;
3790
+ pushItemNeedsWiden(itemNode: CodeNode, lctx: LowIRLowerContext): boolean;
3791
+ arrayElemTypeName(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3792
+ nodeIsArrayExpr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3793
+ lowerArrayIndexOf(node: CodeNode, lctx: LowIRLowerContext): string;
3794
+ arrayElemTypeOfTypeName(typeName: string): string;
3795
+ arrayLiteralElemType(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3796
+ lowerArrayLiteral(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3797
+ lowerArrayLiteralTyped(elemType: string, node: CodeNode, lctx: LowIRLowerContext): string;
3798
+ lowerPush(node: CodeNode, lctx: LowIRLowerContext): void;
3799
+ imapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3800
+ imapValueKind(vref: string, lctx: LowIRLowerContext): string;
3801
+ imapValueOwnKind(typeName: string): number;
3802
+ smapValueOwnKind(valueTypeName: string): number;
3803
+ lowerSMapKeys(node: CodeNode, lctx: LowIRLowerContext): string;
3804
+ jsonTypeNameOfNode(node: CodeNode, lctx: LowIRLowerContext): string;
3805
+ lowerJsonNew(fnName: string, lctx: LowIRLowerContext): string;
3806
+ lowerJsonGet(node: CodeNode, fnName: string, retIr: string, cRet: string, lctx: LowIRLowerContext): string;
3807
+ lowerJsonSet(node: CodeNode, lctx: LowIRLowerContext): void;
3808
+ lowerJsonPush(node: CodeNode, lctx: LowIRLowerContext): void;
3809
+ lowerJson1(node: CodeNode, fnName: string, cRet: string, lctx: LowIRLowerContext): string;
3810
+ lowerJsonGetValue(node: CodeNode, lctx: LowIRLowerContext): string;
3811
+ lowerJsonCase(node: CodeNode, lctx: LowIRLowerContext): boolean;
3812
+ lowerArraySort(node: CodeNode, lctx: LowIRLowerContext): string;
3813
+ lowerArrayInsert(node: CodeNode, lctx: LowIRLowerContext): void;
3814
+ lowerArrayRemove(node: CodeNode, lctx: LowIRLowerContext): void;
3815
+ lowerArrayRemoveLast(node: CodeNode, lctx: LowIRLowerContext): void;
3816
+ lowerArrayClear(node: CodeNode, lctx: LowIRLowerContext): void;
3817
+ lowerArrayExtract(node: CodeNode, lctx: LowIRLowerContext): string;
3818
+ lowerArrayReverse(node: CodeNode, lctx: LowIRLowerContext): string;
3819
+ arrayElemIsDouble(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3820
+ emitPtrArrayNewEmpty(lctx: LowIRLowerContext, elemKind: number): string;
3821
+ ptrArrayOwnedOff(lctx: LowIRLowerContext): number;
3822
+ lowerCollectionMake(node: CodeNode, lctx: LowIRLowerContext): string;
3823
+ lowerCollectionGet(node: CodeNode, lctx: LowIRLowerContext): string;
3824
+ lowerCollectionLen(node: CodeNode, lctx: LowIRLowerContext): string;
3825
+ lowerCollectionHas(node: CodeNode, lctx: LowIRLowerContext): string;
3826
+ lowerCollectionSet(node: CodeNode, lctx: LowIRLowerContext): void;
3827
+ smapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3828
+ isStringMapVref(vref: string, lctx: LowIRLowerContext): boolean;
3829
+ smapValueKind(vref: string, lctx: LowIRLowerContext): string;
3830
+ smapValueIsInt(vref: string, lctx: LowIRLowerContext): boolean;
3831
+ ptrArrayDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3832
+ emitPtrArrayLen(desc: string, lctx: LowIRLowerContext): string;
3833
+ ptrArrayElemIsInt(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3834
+ emitPtrArrayElemGet(desc: string, idx: string, arrNode: CodeNode, lctx: LowIRLowerContext): string;
3835
+ emitPtrArrayElemSet(desc: string, idx: string, val: string, arrNode: CodeNode, lctx: LowIRLowerContext): void;
3836
+ emitPtrArrayRetain(desc: string, lctx: LowIRLowerContext): void;
3837
+ lowerModule(appCtx: RangerAppWriterContext): LowIRModule;
3838
+ lowerFunction(fnDesc: RangerAppFunctionDesc, className: string, appCtx: RangerAppWriterContext, exportFn: boolean, isMain: boolean, isInstance: boolean): void;
3839
+ collectLambdas(appCtx: RangerAppWriterContext): void;
3840
+ collectMethodLambdas(m: RangerAppFunctionDesc, pt: string): void;
3841
+ collectMethodLambdasAt(m: RangerAppFunctionDesc, pt: string, depth: number): void;
3842
+ lambdaCallSig(lam: RangerAppFunctionDesc, pt: string): string;
3843
+ lowerLambdaBodies(appCtx: RangerAppWriterContext): void;
3844
+ lowerLambdaFunction(lam: RangerAppFunctionDesc, fnName: string, appCtx: RangerAppWriterContext): void;
3845
+ lambdaTableIndex(name: string): number;
3846
+ lambdaOwnerClass(lam: RangerAppFunctionDesc, depth: number): string;
3847
+ lambdaCaptureNames(node: CodeNode, lam: RangerAppFunctionDesc): Array<string>;
3848
+ nestedCaptureNames(lam: RangerAppFunctionDesc, depth: number): Array<string>;
3849
+ computeLambdaCaptures(node: CodeNode, lam: RangerAppFunctionDesc, lctx: LowIRLowerContext): LambdaCaptureInfo;
3850
+ lowerLambdaValue(node: CodeNode, lctx: LowIRLowerContext): string;
3851
+ lowerLambdaCall(node: CodeNode, lctx: LowIRLowerContext): string;
3852
+ emitReleaseFieldValue(className: string, fieldName: string, rawVal: string, lctx: LowIRLowerContext): void;
3853
+ releaseOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3854
+ releaseOwnedString(varName: string, lctx: LowIRLowerContext): void;
3855
+ releaseOwnedCollectionLocal(varName: string, lctx: LowIRLowerContext): void;
3856
+ emitOwnedStringInit(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3857
+ emitOwnedStringReassign(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3858
+ emitOwnershipSummary(lctx: LowIRLowerContext): void;
3859
+ emitReleaseOwnedLocals(lctx: LowIRLowerContext): void;
3860
+ popReslots(mark: number, lctx: LowIRLowerContext): void;
3861
+ emitLoopBodyReleases(lctx: LowIRLowerContext): void;
3862
+ releaseAndClearOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3863
+ releaseAndClearOwnedCollection(varName: string, lctx: LowIRLowerContext): void;
3864
+ releaseLoopBodyOwned(ownedBefore: number, ownedStrBefore: number, ownedCollBefore: number, lctx: LowIRLowerContext): void;
3865
+ ensureExternDecl(fnName: string, retType: string, paramTypes: Array<string>, isVararg: boolean): void;
3866
+ ensureLibcExtern(target: LowIRTarget): void;
3867
+ ensureBufferExtern(target: LowIRTarget): void;
3868
+ ensureMemExtern(target: LowIRTarget): void;
3869
+ internStringGlobal(text: string, withNewline: boolean): string;
3870
+ emitIoString(text: string, withNewline: boolean, lctx: LowIRLowerContext): void;
3871
+ lowerWriteFile(node: CodeNode, lctx: LowIRLowerContext): void;
3872
+ ensureIMapExterns(): void;
3873
+ ensureSMapExterns(): void;
3874
+ ensureJsonExtern(fnName: string, retType: string, params: Array<string>): void;
3875
+ tryLowerIntrinsic(fnName: string, argsNode: CodeNode, lctx: LowIRLowerContext): string;
3876
+ }
3877
+ export declare class LLVMIRWriter {
3878
+ instrLineLen: number;
3879
+ varargNames: Array<string>;
3880
+ varargSigs: Array<string>;
3881
+ constructor();
3882
+ collectVarargFns(module: LowIRModule): void;
3883
+ varargSigFor(fnName: string): string;
3884
+ llTy(t: string): string;
3885
+ normalizeDoubleLit(lit: string): string;
3886
+ hexDigit(d: number): string;
3887
+ hexByte(b: number): string;
3888
+ llvmEscapeCString(text: string): string;
3889
+ writeModule(module: LowIRModule, wr: CodeWriter): void;
3890
+ writeBigStackMain(wr: CodeWriter): void;
3891
+ writeLambdaTable(module: LowIRModule, wr: CodeWriter): void;
3892
+ writeTypeDescs(module: LowIRModule, wr: CodeWriter): void;
3893
+ writeOneTypeDesc(td: LowIRTypeDesc, wr: CodeWriter): void;
3894
+ writeStruct(st: LowIRStruct, wr: CodeWriter): void;
3895
+ writeFunction(fn: LowIRFunction, wr: CodeWriter): void;
3896
+ writeInstr(ins: LowIRInstr, wr: CodeWriter): void;
3897
+ writeInstrBody(ins: LowIRInstr, wr: CodeWriter): void;
3898
+ writeTerminator(bb: LowIRBlock, wr: CodeWriter): void;
3899
+ }
3900
+ export declare class WATWriter {
3901
+ strAddrs: {
3902
+ [key: string]: number;
3903
+ };
3904
+ typeDescAddrs: {
3905
+ [key: string]: number;
3906
+ };
3907
+ lambdaFuncs: Array<string>;
3908
+ constructor();
3909
+ lambdaFuncIndex(name: string): number;
3910
+ sigTypeName(callSig: string): string;
3911
+ sigTypeDecl(callSig: string): string;
3912
+ utf8Encode(text: string): Array<number>;
3913
+ hexDigit(d: number): string;
3914
+ hexByte(b: number): string;
3915
+ dataEscape(bytes: Array<number>): string;
3916
+ leWord(v: number): string;
3917
+ align4(a: number): number;
3918
+ fieldOwnedFlag(fd: LowIRTypeFieldDesc): number;
3919
+ descHasOwned(td: LowIRTypeDesc): boolean;
3920
+ moduleHasOwnedTypeDescs(module: LowIRModule): boolean;
3921
+ emitStaticData(module: LowIRModule, wr: CodeWriter): void;
3555
3922
  wasmName(llvmName: string): string;
3556
3923
  isGepTemp(name: string): boolean;
3557
3924
  moduleUsesHeap(module: LowIRModule): boolean;
@@ -3587,13 +3954,12 @@ export declare class WATWriter {
3587
3954
  writeInstr(ins: LowIRInstr, wr: CodeWriter): void;
3588
3955
  }
3589
3956
  export declare class RangerLLVMPipeline {
3590
- constructor();
3591
3957
  generateModule(appCtx: RangerAppWriterContext, wr: CodeWriter): void;
3592
3958
  }
3593
3959
  export declare class RangerLLVMClassWriter extends RangerGenericClassWriter {
3594
3960
  compiler?: LiveCompiler;
3595
3961
  constructor();
3596
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3962
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3597
3963
  }
3598
3964
  export declare class OpList {
3599
3965
  list: Array<CodeNode>;
@@ -3608,8 +3974,8 @@ export declare class RangerActiveOperators {
3608
3974
  initialized: boolean;
3609
3975
  constructor();
3610
3976
  fork(fromOperator: CodeNode): RangerActiveOperators;
3611
- initializeOpCache(): Promise<void>;
3612
- getOperators(name: string): Promise<Array<CodeNode>>;
3977
+ initializeOpCache(): void;
3978
+ getOperators(name: string): Array<CodeNode>;
3613
3979
  initFrom(main: CodeNode): void;
3614
3980
  }
3615
3981
  export declare class LiveCompiler {
@@ -3624,37 +3990,35 @@ export declare class LiveCompiler {
3624
3990
  [key: string]: boolean;
3625
3991
  };
3626
3992
  constructor();
3993
+ rustWritesTraitClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
3627
3994
  treeReferencesVRef(node: CodeNode, name: string): boolean;
3628
3995
  initWriter(ctx: RangerAppWriterContext): void;
3629
3996
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
3630
3997
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3631
3998
  adjustType(tn: string): string;
3632
- WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3633
- writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3634
- CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3635
- CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3636
- CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3999
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4000
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4001
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4002
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4003
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3637
4004
  getTypeString(str: string, ctx: RangerAppWriterContext): string;
3638
4005
  createPolyfill(location: string, code: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3639
4006
  createPolyfillLegacy(code: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3640
- installFile(filename: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3641
- findOpCode(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3642
- findOpTemplate(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<CodeNode> | undefined;
3643
- localCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
4007
+ installFile(filename: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4008
+ findOpCode(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4009
+ findOpTemplate(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): CodeNode | undefined;
4010
+ localCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
3644
4011
  finishWalkNode(wr: CodeWriter): void;
3645
- WalkNode(node: CodeNode, in_ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4012
+ WalkNode(node: CodeNode, in_ctx: RangerAppWriterContext, wr: CodeWriter): void;
3646
4013
  typeNameToIdentifier(ss: string): string;
3647
- walkCommandList(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4014
+ tmplDelimitedSlot(cmdList: CodeNode, idx: number): boolean;
4015
+ walkCommandList(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3648
4016
  isMutatingOpName(n: string): boolean;
3649
- walkCommand(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4017
+ walkCommand(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3650
4018
  compile(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
3651
4019
  findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc | undefined;
3652
4020
  }
3653
- export declare class ColorConsole {
3654
- constructor();
3655
- out(color: string, str: string): void;
3656
- }
3657
- export declare class CLIProgress {
4021
+ export declare class CLIConsole {
3658
4022
  useColors: boolean;
3659
4023
  totalSteps: number;
3660
4024
  currentStep: number;
@@ -3707,28 +4071,51 @@ export declare class CLIProgress {
3707
4071
  printSection(title: string): void;
3708
4072
  }
3709
4073
  export declare class GitSha1 {
3710
- constructor();
3711
4074
  static mask32(): number;
3712
4075
  static add32(a: number, b: number): number;
3713
4076
  static not32(x: number): number;
3714
4077
  static rotl(x: number, n: number): number;
3715
- static copyRange(data: Uint8Array, start: number, count: number): Uint8Array;
3716
- static ascii(data: Uint8Array, start: number, count: number): string;
3717
- static u32be(data: Uint8Array, i: number): number;
4078
+ static copyRange(data: (ArrayBuffer & {
4079
+ _view: DataView;
4080
+ }), start: number, count: number): (ArrayBuffer & {
4081
+ _view: DataView;
4082
+ });
4083
+ static ascii(data: (ArrayBuffer & {
4084
+ _view: DataView;
4085
+ }), start: number, count: number): string;
4086
+ static u32be(data: (ArrayBuffer & {
4087
+ _view: DataView;
4088
+ }), i: number): number;
3718
4089
  static hexDigit(d: number): string;
3719
- static toHex(data: Uint8Array): string;
3720
- static fromHex(hex: string): Uint8Array;
3721
- static hash(data: Uint8Array): Uint8Array;
3722
- static writeU32be(out: Uint8Array, i: number, v: number): void;
3723
- static hashHex(data: Uint8Array): string;
3724
- static objectId(kind: string, payload: Uint8Array): string;
4090
+ static toHex(data: (ArrayBuffer & {
4091
+ _view: DataView;
4092
+ })): string;
4093
+ static fromHex(hex: string): (ArrayBuffer & {
4094
+ _view: DataView;
4095
+ });
4096
+ static hash(data: (ArrayBuffer & {
4097
+ _view: DataView;
4098
+ })): (ArrayBuffer & {
4099
+ _view: DataView;
4100
+ });
4101
+ static writeU32be(out: (ArrayBuffer & {
4102
+ _view: DataView;
4103
+ }), i: number, v: number): void;
4104
+ static hashHex(data: (ArrayBuffer & {
4105
+ _view: DataView;
4106
+ })): string;
4107
+ static objectId(kind: string, payload: (ArrayBuffer & {
4108
+ _view: DataView;
4109
+ })): string;
3725
4110
  static hexEq(a: string, b: string): boolean;
3726
4111
  }
3727
4112
  export declare class GitPkt {
3728
4113
  ok: boolean;
3729
4114
  err: string;
3730
4115
  lines: Array<string>;
3731
- raw: Array<Uint8Array>;
4116
+ raw: Array<(ArrayBuffer & {
4117
+ _view: DataView;
4118
+ })>;
3732
4119
  isFlush: Array<boolean>;
3733
4120
  constructor();
3734
4121
  }
@@ -3751,45 +4138,72 @@ export declare class GitWant {
3751
4138
  ok: boolean;
3752
4139
  err: string;
3753
4140
  sha: string;
3754
- body: Uint8Array;
4141
+ body: (ArrayBuffer & {
4142
+ _view: DataView;
4143
+ });
3755
4144
  constructor();
3756
4145
  }
3757
4146
  export declare class GitSideband {
3758
4147
  ok: boolean;
3759
4148
  err: string;
3760
- pack: Uint8Array;
4149
+ pack: (ArrayBuffer & {
4150
+ _view: DataView;
4151
+ });
3761
4152
  progress: string;
3762
4153
  constructor();
3763
4154
  }
3764
4155
  export declare class GitPktIO {
3765
- constructor();
3766
4156
  static hexVal(ch: string): number;
3767
- static parseHex4(data: Uint8Array, at: number): number;
4157
+ static parseHex4(data: (ArrayBuffer & {
4158
+ _view: DataView;
4159
+ }), at: number): number;
3768
4160
  static hex4(n: number): string;
3769
- static encodeLine(text: string): Uint8Array;
3770
- static encodeFlush(): Uint8Array;
3771
- static parse(data: Uint8Array): GitPkt;
3772
- static parseAdvertisement(data: Uint8Array): GitAdvertisement;
4161
+ static encodeLine(text: string): (ArrayBuffer & {
4162
+ _view: DataView;
4163
+ });
4164
+ static encodeFlush(): (ArrayBuffer & {
4165
+ _view: DataView;
4166
+ });
4167
+ static parse(data: (ArrayBuffer & {
4168
+ _view: DataView;
4169
+ })): GitPkt;
4170
+ static parseAdvertisement(data: (ArrayBuffer & {
4171
+ _view: DataView;
4172
+ })): GitAdvertisement;
3773
4173
  static findRef(adv: GitAdvertisement, spec: string): string;
3774
4174
  static hasToken(caps: string, name: string): boolean;
3775
- static joinBuf(parts: Array<Uint8Array>): Uint8Array;
3776
- static encodeDelim(): Uint8Array;
4175
+ static joinBuf(parts: Array<(ArrayBuffer & {
4176
+ _view: DataView;
4177
+ })>): (ArrayBuffer & {
4178
+ _view: DataView;
4179
+ });
4180
+ static encodeDelim(): (ArrayBuffer & {
4181
+ _view: DataView;
4182
+ });
3777
4183
  static buildWant(adv: GitAdvertisement, spec: string): GitWant;
3778
4184
  static buildWantFetch(sha: string, deepen: number, filter: string, extras: Array<string>): GitWant;
3779
4185
  static buildWantTrees(adv: GitAdvertisement, spec: string): GitWant;
3780
4186
  static buildWantSha(sha: string): GitWant;
3781
4187
  static buildFetchV2(sha: string, deepen: number, filter: string): GitWant;
3782
- static demux(data: Uint8Array): GitSideband;
3783
- static indexOfPack(data: Uint8Array): number;
4188
+ static demux(data: (ArrayBuffer & {
4189
+ _view: DataView;
4190
+ })): GitSideband;
4191
+ static indexOfPack(data: (ArrayBuffer & {
4192
+ _view: DataView;
4193
+ })): number;
3784
4194
  static indexOfChar(s: string, code: number): number;
3785
4195
  static trimNl(s: string): string;
3786
4196
  }
3787
4197
  export declare class ZipBuffer {
3788
- data: Uint8Array;
4198
+ data: (ArrayBuffer & {
4199
+ _view: DataView;
4200
+ });
3789
4201
  pos: number;
3790
4202
  length: number;
3791
4203
  constructor();
3792
- initWithBuffer(buf: Uint8Array): void;
4204
+ initWithBuffer(buf: (ArrayBuffer & {
4205
+ _view: DataView;
4206
+ })): void;
3793
4207
  initWithSize(size: number): void;
3794
4208
  getPosition(): number;
3795
4209
  setPosition(newPos: number): void;
@@ -3800,25 +4214,37 @@ export declare class ZipBuffer {
3800
4214
  readUint8(): number;
3801
4215
  readUint16LE(): number;
3802
4216
  readUint32LE(): number;
3803
- readBytes(count: number): Uint8Array;
4217
+ readBytes(count: number): (ArrayBuffer & {
4218
+ _view: DataView;
4219
+ });
3804
4220
  readString(count: number): string;
3805
4221
  peekUint8(): number;
3806
4222
  peekUint32LE(): number;
3807
4223
  writeUint8(value: number): void;
3808
4224
  writeUint16LE(value: number): void;
3809
4225
  writeUint32LE(value: number): void;
3810
- writeBytes(src: Uint8Array, srcOffset: number, count: number): void;
3811
- writeBuffer(src: Uint8Array): void;
4226
+ writeBytes(src: (ArrayBuffer & {
4227
+ _view: DataView;
4228
+ }), srcOffset: number, count: number): void;
4229
+ writeBuffer(src: (ArrayBuffer & {
4230
+ _view: DataView;
4231
+ })): void;
3812
4232
  writeString(s: string): void;
3813
- getBuffer(): Uint8Array;
4233
+ getBuffer(): (ArrayBuffer & {
4234
+ _view: DataView;
4235
+ });
3814
4236
  getLength(): number;
3815
4237
  findSignatureBackward(sig: number, startPos: number): number;
3816
4238
  }
3817
4239
  export declare class GrowableZipBuffer {
3818
- chunks: Array<Uint8Array>;
4240
+ chunks: Array<(ArrayBuffer & {
4241
+ _view: DataView;
4242
+ })>;
3819
4243
  chunkLens: Array<number>;
3820
4244
  chunkSize: number;
3821
- currentChunk: Uint8Array;
4245
+ currentChunk: (ArrayBuffer & {
4246
+ _view: DataView;
4247
+ });
3822
4248
  currentPos: number;
3823
4249
  totalSize: number;
3824
4250
  constructor();
@@ -3827,11 +4253,17 @@ export declare class GrowableZipBuffer {
3827
4253
  writeUint8(value: number): void;
3828
4254
  writeUint16LE(value: number): void;
3829
4255
  writeUint32LE(value: number): void;
3830
- writeBytes(src: Uint8Array, srcOffset: number, count: number): void;
3831
- writeBuffer(src: Uint8Array): void;
4256
+ writeBytes(src: (ArrayBuffer & {
4257
+ _view: DataView;
4258
+ }), srcOffset: number, count: number): void;
4259
+ writeBuffer(src: (ArrayBuffer & {
4260
+ _view: DataView;
4261
+ })): void;
3832
4262
  writeString(s: string): void;
3833
4263
  getSize(): number;
3834
- toBuffer(): Uint8Array;
4264
+ toBuffer(): (ArrayBuffer & {
4265
+ _view: DataView;
4266
+ });
3835
4267
  }
3836
4268
  export declare class InflateHuffmanTable {
3837
4269
  counts: Array<number>;
@@ -3842,13 +4274,17 @@ export declare class InflateHuffmanTable {
3842
4274
  decode(reader: InflateBitReader): number;
3843
4275
  }
3844
4276
  export declare class InflateBitReader {
3845
- data: Uint8Array;
4277
+ data: (ArrayBuffer & {
4278
+ _view: DataView;
4279
+ });
3846
4280
  bytePos: number;
3847
4281
  bitPos: number;
3848
4282
  currentByte: number;
3849
4283
  dataLength: number;
3850
4284
  constructor();
3851
- init(buf: Uint8Array, offset: number, length: number): void;
4285
+ init(buf: (ArrayBuffer & {
4286
+ _view: DataView;
4287
+ }), offset: number, length: number): void;
3852
4288
  readBit(): number;
3853
4289
  readBits(count: number): number;
3854
4290
  alignToByte(): void;
@@ -3858,9 +4294,13 @@ export declare class InflateBitReader {
3858
4294
  isEOF(): boolean;
3859
4295
  }
3860
4296
  export declare class Inflate {
3861
- input: Uint8Array;
4297
+ input: (ArrayBuffer & {
4298
+ _view: DataView;
4299
+ });
3862
4300
  reader: InflateBitReader;
3863
- outBuf: Uint8Array;
4301
+ outBuf: (ArrayBuffer & {
4302
+ _view: DataView;
4303
+ });
3864
4304
  outLen: number;
3865
4305
  outCap: number;
3866
4306
  fixedLitLen: InflateHuffmanTable;
@@ -3874,11 +4314,21 @@ export declare class Inflate {
3874
4314
  resetOutput(hint: number): void;
3875
4315
  ensureCapacity(extra: number): void;
3876
4316
  pushByte(b: number): void;
3877
- finalOutput(): Uint8Array;
4317
+ finalOutput(): (ArrayBuffer & {
4318
+ _view: DataView;
4319
+ });
3878
4320
  buildLengthDistTables(): void;
3879
4321
  buildFixedTables(): void;
3880
- decompress(data: Uint8Array): Uint8Array;
3881
- decompressFrom(data: Uint8Array, offset: number): Uint8Array;
4322
+ decompress(data: (ArrayBuffer & {
4323
+ _view: DataView;
4324
+ })): (ArrayBuffer & {
4325
+ _view: DataView;
4326
+ });
4327
+ decompressFrom(data: (ArrayBuffer & {
4328
+ _view: DataView;
4329
+ }), offset: number): (ArrayBuffer & {
4330
+ _view: DataView;
4331
+ });
3882
4332
  inputPos(): number;
3883
4333
  decompressStored(): void;
3884
4334
  decompressHuffman(litLenTable: InflateHuffmanTable, distTable: InflateHuffmanTable): void;
@@ -3890,13 +4340,23 @@ export declare class GitZlib {
3890
4340
  err: string;
3891
4341
  nextPos: number;
3892
4342
  constructor();
3893
- inflateAt(data: Uint8Array, offset: number): Uint8Array;
3894
- inflate(data: Uint8Array): Uint8Array;
4343
+ inflateAt(data: (ArrayBuffer & {
4344
+ _view: DataView;
4345
+ }), offset: number): (ArrayBuffer & {
4346
+ _view: DataView;
4347
+ });
4348
+ inflate(data: (ArrayBuffer & {
4349
+ _view: DataView;
4350
+ })): (ArrayBuffer & {
4351
+ _view: DataView;
4352
+ });
3895
4353
  }
3896
4354
  export declare class GitObj {
3897
4355
  kind: number;
3898
4356
  sha: string;
3899
- data: Uint8Array;
4357
+ data: (ArrayBuffer & {
4358
+ _view: DataView;
4359
+ });
3900
4360
  packOff: number;
3901
4361
  resolved: boolean;
3902
4362
  delta: boolean;
@@ -3919,14 +4379,22 @@ export declare class GitPack {
3919
4379
  constructor();
3920
4380
  }
3921
4381
  export declare class GitDelta {
3922
- constructor();
3923
- static varInt(data: Uint8Array, pos: Array<number>): number;
3924
- static apply(src: Uint8Array, delta: Uint8Array): Uint8Array;
4382
+ static varInt(data: (ArrayBuffer & {
4383
+ _view: DataView;
4384
+ }), pos: Array<number>): number;
4385
+ static apply(src: (ArrayBuffer & {
4386
+ _view: DataView;
4387
+ }), delta: (ArrayBuffer & {
4388
+ _view: DataView;
4389
+ })): (ArrayBuffer & {
4390
+ _view: DataView;
4391
+ });
3925
4392
  }
3926
4393
  export declare class GitPackIO {
3927
- constructor();
3928
4394
  static kindName(kind: number): string;
3929
- static parse(data: Uint8Array): GitPack;
4395
+ static parse(data: (ArrayBuffer & {
4396
+ _view: DataView;
4397
+ })): GitPack;
3930
4398
  static resolveDeltas(pack: GitPack): void;
3931
4399
  static lookup(pack: GitPack, sha: string): GitObj | undefined;
3932
4400
  static merge(a: GitPack, b: GitPack): GitPack;
@@ -3940,7 +4408,9 @@ export declare class GitEntry {
3940
4408
  }
3941
4409
  export declare class GitFile {
3942
4410
  path: string;
3943
- data: Uint8Array;
4411
+ data: (ArrayBuffer & {
4412
+ _view: DataView;
4413
+ });
3944
4414
  constructor();
3945
4415
  }
3946
4416
  export declare class GitTree {
@@ -3962,8 +4432,12 @@ export declare class GitStore {
3962
4432
  err: string;
3963
4433
  constructor(p: GitPack);
3964
4434
  takeObj(sha: string): GitObj | undefined;
3965
- parseTree(payload: Uint8Array): GitTree;
3966
- commitTree(payload: Uint8Array): string;
4435
+ parseTree(payload: (ArrayBuffer & {
4436
+ _view: DataView;
4437
+ })): GitTree;
4438
+ commitTree(payload: (ArrayBuffer & {
4439
+ _view: DataView;
4440
+ })): string;
3967
4441
  checkout(sha: string, subdir: string): GitMem;
3968
4442
  walk(mem: GitMem, treeSha: string, prefix: string, want: string): void;
3969
4443
  mayEnter(path: string, want: string): boolean;
@@ -4040,7 +4514,6 @@ export declare class PkgLock {
4040
4514
  constructor();
4041
4515
  }
4042
4516
  export declare class PkgManifestIO {
4043
- constructor();
4044
4517
  static load(src: string): PkgManifest;
4045
4518
  static loadLock(src: string): PkgLock;
4046
4519
  static escape(s: string): string;
@@ -4048,7 +4521,6 @@ export declare class PkgManifestIO {
4048
4521
  static dumpManifest(m: PkgManifest): string;
4049
4522
  }
4050
4523
  export declare class PkgCache {
4051
- constructor();
4052
4524
  static lessStr(a: string, b: string): boolean;
4053
4525
  static hashMem(mem: GitMem): string;
4054
4526
  static put(mem: GitMem, cacheRoot: string): string;
@@ -4088,28 +4560,40 @@ export declare class PkgFetch {
4088
4560
  fetchInto(name: string, url: string, wantRev: string, subdir: string): string;
4089
4561
  storeMem(mem: GitMem): string;
4090
4562
  cachedFor(env: InputEnv, name: string, git: string, rev: string, subdir: string): string;
4091
- install(env: InputEnv, manDir: string): Promise<boolean>;
4092
- oneDep(env: InputEnv, pending: Array<PkgFetchWork>, w: PkgFetchWork, d: PkgDep): Promise<boolean>;
4563
+ install(env: InputEnv, manDir: string): boolean;
4564
+ oneDep(env: InputEnv, pending: Array<PkgFetchWork>, w: PkgFetchWork, d: PkgDep): boolean;
4093
4565
  static findHttpTool(env: InputEnv): string;
4094
4566
  static splitPath(path: string): Array<string>;
4095
- static readBytes(path: string): Uint8Array;
4096
- static writeBytes(path: string, data: Uint8Array): void;
4567
+ static readBytes(path: string): (ArrayBuffer & {
4568
+ _view: DataView;
4569
+ });
4570
+ static writeBytes(path: string, data: (ArrayBuffer & {
4571
+ _view: DataView;
4572
+ })): void;
4097
4573
  static loadPack(path: string): GitPack;
4098
4574
  }
4099
4575
  export declare class RangerDocGenerator {
4100
- constructor();
4101
- writeTypeDef(item: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4102
- writeArgDefs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4103
- createClassDoc(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
4104
- writeOpDesc(item: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4105
- writeTypeDoc(list: Array<RangerAppOperatorDesc>, tester: (item: RangerAppOperatorDesc) => boolean, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4106
- createOperatorDoc(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
4576
+ writeTypeDef(item: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4577
+ writeArgDefs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4578
+ createClassDoc(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
4579
+ writeOpDesc(item: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4580
+ writeTypeDoc(list: Array<RangerAppOperatorDesc>, tester: (item: RangerAppOperatorDesc) => boolean, ctx: RangerAppWriterContext, wr: CodeWriter): void;
4581
+ createOperatorDoc(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): void;
4107
4582
  }
4108
4583
  export declare class StaticAnalyzer {
4109
4584
  ctx?: RangerAppWriterContext;
4110
4585
  currentFunction?: RangerAppFunctionDesc;
4111
4586
  currentClass?: RangerAppClassDesc;
4112
4587
  debug: boolean;
4588
+ strictStringsTotal: number;
4589
+ strictStringsRisky: number;
4590
+ strictStringsSafe: number;
4591
+ strictStringsGuards: number;
4592
+ strictStringsNotes: Array<string>;
4593
+ strictStringsFiles: {
4594
+ [key: string]: number;
4595
+ };
4596
+ strictStringsFileOrder: Array<string>;
4113
4597
  mutatingOps: {
4114
4598
  [key: string]: boolean;
4115
4599
  };
@@ -4182,6 +4666,11 @@ export declare class StaticAnalyzer {
4182
4666
  reportOwnershipClass(cl: RangerAppClassDesc): void;
4183
4667
  analyzeOwnership(fn: RangerAppFunctionDesc): void;
4184
4668
  analyzeOwnershipClass(cl: RangerAppClassDesc): void;
4669
+ unionMemberIsMutatedName(v: string): boolean;
4670
+ nodeRootHasType(node: CodeNode, typeName: string): boolean;
4671
+ treeMutatesType(node: CodeNode, typeName: string): boolean;
4672
+ unionMemberIsMutated(typeName: string): boolean;
4673
+ scanFnsForMutation(fns: Array<RangerAppFunctionDesc>, typeName: string): boolean;
4185
4674
  unionMemberIsScalarOnly(typeName: string): boolean;
4186
4675
  markClassShared(typeName: string, reason: string): void;
4187
4676
  classNameOfDesc(p: RangerAppParamDesc): string;
@@ -4193,17 +4682,102 @@ export declare class StaticAnalyzer {
4193
4682
  nameIn(name: string, names: Array<string>): boolean;
4194
4683
  varIsMutated(name: string, fnCtx: RangerAppWriterContext, mutated: Array<string>): boolean;
4195
4684
  readsStoredObject(node: CodeNode): boolean;
4196
- walkForSharing(node: CodeNode, fnCtx: RangerAppWriterContext, fnName: string, mutated: Array<string>): void;
4685
+ nodeNamesLocal(node: CodeNode, name: string): boolean;
4686
+ nameUsedAfter(node: CodeNode, name: string, afterSp: number): boolean;
4687
+ nameIsAliased(node: CodeNode, name: string): boolean;
4688
+ countDefsOfName(node: CodeNode, name: string): number;
4689
+ findDefOfName(node: CodeNode, name: string): CodeNode | undefined;
4690
+ nearestBlockSp(node: CodeNode): number;
4691
+ storeIsLocalMove(body: CodeNode, storeNode: CodeNode, stored: CodeNode, name: string, fnCtx: RangerAppWriterContext): boolean;
4692
+ walkForSharing(body: CodeNode, node: CodeNode, fnCtx: RangerAppWriterContext, fnName: string, mutated: Array<string>): void;
4197
4693
  markIdenticalOperandsShared(node: CodeNode, fnName: string): void;
4198
4694
  analyzeClassSharingFn(fn: RangerAppFunctionDesc): void;
4199
4695
  analyzeClassSharing(): void;
4696
+ foldObjectInitsAll(): void;
4697
+ foldObjectInitsFn(fn: RangerAppFunctionDesc): void;
4698
+ foldObjectInitsIn(body: CodeNode, node: CodeNode, fnCtx: RangerAppWriterContext): void;
4699
+ countNameUses(node: CodeNode, name: string): number;
4700
+ plainNewClassName(value: CodeNode): string;
4701
+ classTakesFoldedInit(cl: RangerAppClassDesc): boolean;
4702
+ nodeHasEffect(node: CodeNode): boolean;
4703
+ classHasField(cl: RangerAppClassDesc, name: string): boolean;
4704
+ tryFoldObjectInit(body: CodeNode, block: CodeNode, idx: number, fnCtx: RangerAppWriterContext): void;
4200
4705
  reportClassSharing(): void;
4201
4706
  sharedClassOfDesc(p: RangerAppParamDesc): string;
4202
4707
  markDescRcWrap(p: RangerAppParamDesc): void;
4203
4708
  walkForSharedLocals(node: CodeNode): void;
4204
- fnUsesThisValue(fn: RangerAppFunctionDesc): Promise<boolean>;
4205
- fnSelfCallsNeedy(fn: RangerAppFunctionDesc): Promise<boolean>;
4206
- computeSelfRcNeeds(): Promise<void>;
4709
+ fnUsesThisValue(fn: RangerAppFunctionDesc): boolean;
4710
+ fnSelfCallsNeedy(fn: RangerAppFunctionDesc): boolean;
4711
+ stringIsAsciiOnly(s: string): boolean;
4712
+ strictStringsOpKind(name: string): string;
4713
+ ssSubjectName(n: CodeNode): string;
4714
+ ssUnwrap(n: CodeNode): CodeNode;
4715
+ ssIsIntLiteral(n: CodeNode): boolean;
4716
+ ssIsZeroLiteral(n: CodeNode): boolean;
4717
+ ssIsCodePointLabel(lbl: string): boolean;
4718
+ ssMergeTaint(a: string, b: string): string;
4719
+ ssIsCountOp(name: string): boolean;
4720
+ ssIsArith(name: string): boolean;
4721
+ ssIsCompare(name: string): boolean;
4722
+ ssTaintOf(nRaw: CodeNode, taint: {
4723
+ [key: string]: string;
4724
+ }): string;
4725
+ ssTieBound(vRaw: CodeNode, bound: CodeNode, taint: {
4726
+ [key: string]: string;
4727
+ }): void;
4728
+ ssTaintWalk(node: CodeNode, taint: {
4729
+ [key: string]: string;
4730
+ }, indexed: {
4731
+ [key: string]: boolean;
4732
+ }, zeroTested: {
4733
+ [key: string]: boolean;
4734
+ }, litGuarded: {
4735
+ [key: string]: boolean;
4736
+ }): void;
4737
+ ssCollectVars(n: CodeNode, out: {
4738
+ [key: string]: boolean;
4739
+ }): void;
4740
+ ssRefsAny(n: CodeNode, names: {
4741
+ [key: string]: boolean;
4742
+ }): boolean;
4743
+ ssCollectLabels(n: CodeNode, taint: {
4744
+ [key: string]: string;
4745
+ }, out: {
4746
+ [key: string]: boolean;
4747
+ }): void;
4748
+ ssIndexVarWalk(node: CodeNode, idxVars: {
4749
+ [key: string]: boolean;
4750
+ }): void;
4751
+ ssBoundWalk(node: CodeNode, taint: {
4752
+ [key: string]: string;
4753
+ }, idxVars: {
4754
+ [key: string]: boolean;
4755
+ }, indexed: {
4756
+ [key: string]: boolean;
4757
+ }): void;
4758
+ ssNoteGuard(v: CodeNode, lit: CodeNode, taint: {
4759
+ [key: string]: string;
4760
+ }, zeroTested: {
4761
+ [key: string]: boolean;
4762
+ }, litGuarded: {
4763
+ [key: string]: boolean;
4764
+ }): void;
4765
+ ssReportWalk(node: CodeNode, fnName: string, taint: {
4766
+ [key: string]: string;
4767
+ }, indexed: {
4768
+ [key: string]: boolean;
4769
+ }, zeroTested: {
4770
+ [key: string]: boolean;
4771
+ }, litGuarded: {
4772
+ [key: string]: boolean;
4773
+ }, sizeTest: boolean, fnUnits: boolean): void;
4774
+ strictStringsScanFns(fns: Array<RangerAppFunctionDesc>, clName: string): void;
4775
+ analyzeStringIndexing(): void;
4776
+ computeTraitReentrancy(): void;
4777
+ treeCallsThroughField(node: CodeNode, fieldName: string): boolean;
4778
+ classCallsThroughField(cl: RangerAppClassDesc, fieldName: string): boolean;
4779
+ classHasBackReference(cl: RangerAppClassDesc): boolean;
4780
+ computeSelfRcNeeds(): void;
4207
4781
  markLambdaParamsRec(fn: RangerAppFunctionDesc): void;
4208
4782
  applySharedClassRcWrap(): void;
4209
4783
  rustParamHasRefSemantics(param: RangerAppParamDesc): boolean;
@@ -4217,26 +4791,918 @@ export declare class StaticAnalyzer {
4217
4791
  rssWalkFn(fn: RangerAppFunctionDesc): void;
4218
4792
  analyzeRustStaticStrings(): void;
4219
4793
  applyOwnershipToRustBorrowsFn(cl: RangerAppClassDesc, fn: RangerAppFunctionDesc): void;
4794
+ settleRustNativeGenerics(): void;
4795
+ rustGenericFormFits(f: RangerAppClassDesc, members: Array<RangerAppClassDesc>): boolean;
4796
+ rustParamNamesTypeParam(p: RangerAppParamDesc): boolean;
4797
+ rustSettleGenericParams(fm: RangerAppFunctionDesc, im: RangerAppFunctionDesc): void;
4220
4798
  applyOwnershipToRustBorrows(): void;
4221
4799
  analyzeOwnershipAll(strict: boolean): void;
4222
4800
  analyzeAll(): void;
4223
4801
  }
4224
- export declare class viewbuilder_Android {
4802
+ export declare class RustNode {
4803
+ kind: string;
4804
+ name: string;
4805
+ value: string;
4806
+ mods: Array<string>;
4807
+ kids: Array<RustNode>;
4808
+ attrs: Array<RustNode>;
4809
+ start: number;
4810
+ end: number;
4811
+ line: number;
4812
+ col: number;
4813
+ constructor(k: string);
4814
+ add(n: RustNode): RustNode;
4815
+ addMod(m: string): void;
4816
+ hasMod(m: string): boolean;
4817
+ kid(idx: number): RustNode;
4818
+ isNone(): boolean;
4819
+ dump(indent: string): string;
4820
+ static quote(s: string): string;
4821
+ static needsQuote(s: string): boolean;
4822
+ }
4823
+ export declare class RustToken {
4824
+ kind: string;
4825
+ text: string;
4826
+ value: string;
4827
+ suffix: string;
4828
+ raw: boolean;
4829
+ joint: boolean;
4830
+ start: number;
4831
+ end: number;
4832
+ line: number;
4833
+ col: number;
4225
4834
  constructor();
4226
- _attr(wr: CodeWriter, name: string, value: string): void;
4227
- elWithText(name: string, node: CodeNode, wr: CodeWriter): Promise<void>;
4228
- WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4229
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
4835
+ is(k: string, t: string): boolean;
4230
4836
  }
4231
- export declare class viewbuilder_Web {
4837
+ export declare class RustLexer {
4838
+ src: string;
4839
+ buf: Uint8Array;
4840
+ __len: number;
4841
+ i: number;
4842
+ line: number;
4843
+ line_start: number;
4844
+ tokens: Array<RustToken>;
4845
+ errors: Array<string>;
4846
+ constructor(source: string);
4847
+ error(msg: string): void;
4848
+ at(p: number): number;
4849
+ text(a: number, b: number): string;
4850
+ newToken(kind: string, a: number): RustToken;
4851
+ countLines(a: number, b: number): void;
4852
+ tokenize(): Array<RustToken>;
4853
+ lineComment(): void;
4854
+ blockComment(): void;
4855
+ tryPrefixedLiteral(): boolean;
4856
+ rawString(a: number, prefix: string): boolean;
4857
+ ident(): void;
4858
+ number(): void;
4859
+ digits(): void;
4860
+ quoted(a: number, prefix: string): void;
4861
+ literalSuffix(t: RustToken): void;
4862
+ charOrLifetime(): void;
4863
+ charLiteral(a: number, prefix: string): void;
4864
+ unescape(a: number, b: number): string;
4865
+ punct(): void;
4866
+ markJoint(t: RustToken): void;
4867
+ static isIdentStart(c: number): boolean;
4868
+ static isIdentChar(c: number): boolean;
4869
+ static isDigit(c: number): boolean;
4870
+ static isHexDigit(c: number): boolean;
4871
+ static hexValue(c: number): number;
4872
+ }
4873
+ export declare class RustParser {
4874
+ lx?: RustLexer;
4875
+ toks: Array<RustToken>;
4876
+ pos: number;
4877
+ limit: number;
4878
+ errors: Array<string>;
4879
+ noStruct: boolean;
4880
+ eofTok: RustToken;
4881
+ constructor(source: string);
4882
+ tok(): RustToken;
4883
+ peek(k: number): RustToken;
4884
+ eofAt(p: number): RustToken;
4885
+ tokText(): string;
4886
+ tokKind(): string;
4887
+ tokValue(): string;
4888
+ peekKind(k: number): string;
4889
+ atEnd(): boolean;
4890
+ isP(s: string): boolean;
4891
+ isPAt(k: number, s: string): boolean;
4892
+ isKw(s: string): boolean;
4893
+ isKwAt(k: number, s: string): boolean;
4894
+ gluedAt(k: number): string;
4895
+ glued(): string;
4896
+ isOp(s: string): boolean;
4897
+ eatPrefix(s: string): boolean;
4898
+ eatOp(s: string): boolean;
4899
+ eatP(s: string): boolean;
4900
+ eatKw(s: string): boolean;
4901
+ error(msg: string): void;
4902
+ expectP(s: string): void;
4903
+ expectOp(s: string): void;
4904
+ expectKw(s: string): void;
4905
+ node(kind: string): RustNode;
4906
+ nodeAt(kind: string, from: RustNode): RustNode;
4907
+ done(n: RustNode): RustNode;
4908
+ none(): RustNode;
4909
+ identText(): string;
4910
+ matchingClose(from: number): number;
4911
+ textOf(a: number, b: number): string;
4912
+ parseNativeArms(): RustNode;
4913
+ parseFile(): RustNode;
4914
+ innerAttrs(owner: RustNode): void;
4915
+ outerAttrs(): Array<RustNode>;
4916
+ parseAttr(): RustNode;
4917
+ parseVis(): string;
4918
+ isItemStart(): boolean;
4919
+ parseItem(): RustNode;
4920
+ parseItemNoAttrs(): RustNode;
4921
+ parseItemKind(): RustNode;
4922
+ parseItemDispatch(): RustNode;
4923
+ parseFn(): RustNode;
4924
+ parseParams(): RustNode;
4925
+ parseParam(): RustNode;
4926
+ parseGenerics(): RustNode;
4927
+ parseWhere(): RustNode;
4928
+ parseStruct(): RustNode;
4929
+ parseNamedFields(): RustNode;
4930
+ parseTupleFields(): RustNode;
4931
+ parseEnum(): RustNode;
4932
+ parseTrait(): RustNode;
4933
+ parseImpl(): RustNode;
4934
+ looksLikeQPathAfterImpl(): boolean;
4935
+ parseAssocItems(owner: RustNode): void;
4936
+ parseMod(): RustNode;
4937
+ parseUse(): RustNode;
4938
+ parseUseTree(): RustNode;
4939
+ parseTypeAlias(): RustNode;
4940
+ parseConstStatic(kind: string): RustNode;
4941
+ parseExternCrate(): RustNode;
4942
+ parseExternBlock(abi: string): RustNode;
4943
+ parseMacroRules(): RustNode;
4944
+ parseType(): RustNode;
4945
+ parseTypeNoBounds(): RustNode;
4946
+ parseTypeImpl(allowPlus: boolean): RustNode;
4947
+ isOpAtPath(k: number): boolean;
4948
+ continueBounds(first: RustNode): RustNode;
4949
+ parseFnType(): RustNode;
4950
+ parseBounds(): RustNode;
4951
+ parseBoundList(allowPlus: boolean): Array<RustNode>;
4952
+ parseBound(): RustNode;
4953
+ parsePath(inType: boolean): RustNode;
4954
+ isFnSugarSegment(name: string): boolean;
4955
+ parseFnSugarArgs(): RustNode;
4956
+ parseQPath(inType: boolean): RustNode;
4957
+ parseGenericArgs(): RustNode;
4958
+ parseTypeOrConst(): RustNode;
4959
+ parseConstArg(): RustNode;
4960
+ parsePattern(): RustNode;
4961
+ parsePatternNoAlt(): RustNode;
4962
+ startsRangeEnd(): boolean;
4963
+ parsePatternAtom(): RustNode;
4964
+ isOpAt1Path(): boolean;
4965
+ startsRangeEndAfter(k: number): boolean;
4966
+ parseBlock(): RustNode;
4967
+ parseStatement(): RustNode;
4968
+ parseStatementNoAttrs(): RustNode;
4969
+ continueBinary(left: RustNode): RustNode;
4970
+ parseLet(): RustNode;
4971
+ startsBlockLike(): boolean;
4972
+ parseExpr(): RustNode;
4973
+ parseExprNoStruct(): RustNode;
4974
+ parseAssign(): RustNode;
4975
+ parseAssignRest(left: RustNode): RustNode;
4976
+ parseRange(): RustNode;
4977
+ parseRangeRest(lo: RustNode): RustNode;
4978
+ startsExpr(): boolean;
4979
+ parseBin(minPrec: number): RustNode;
4980
+ parseBinRest(left0: RustNode, minPrec: number): RustNode;
4981
+ parseCast(): RustNode;
4982
+ parseUnary(): RustNode;
4983
+ parsePostfix(e0: RustNode): RustNode;
4984
+ parseCallArgs(owner: RustNode): void;
4985
+ parseLiteral(): RustNode;
4986
+ parseBlockLike(): RustNode;
4987
+ parseBlockLikeInner(): RustNode;
4988
+ parseIf(): RustNode;
4989
+ parseCond(): RustNode;
4990
+ parseCondOr(): RustNode;
4991
+ parseCondAnd(): RustNode;
4992
+ parseCondAtom(): RustNode;
4993
+ parseMatch(): RustNode;
4994
+ parseClosure(): RustNode;
4995
+ parsePrimary(): RustNode;
4996
+ parsePathExpr(): RustNode;
4997
+ parseStructLit(p: RustNode, start: RustNode): RustNode;
4998
+ parseMacroCall(p: RustNode): RustNode;
4999
+ tryParseMacroArgs(m: RustNode, a: number, b: number): void;
5000
+ static isKnownOp(s: string): boolean;
5001
+ static assignOp(op: string): boolean;
5002
+ static binPrec(op: string): number;
5003
+ static isExprMacro(name: string): boolean;
5004
+ }
5005
+ export declare class RsType {
5006
+ kind: string;
5007
+ name: string;
5008
+ args: Array<RsType>;
5009
+ isRef: boolean;
5010
+ isMutRef: boolean;
5011
+ weak: boolean;
5012
+ shared: boolean;
5013
+ isDyn: boolean;
5014
+ late: boolean;
5015
+ constructor(k: string);
5016
+ arg(i: number): RsType;
5017
+ is(k: string): boolean;
5018
+ isUnknown(): boolean;
5019
+ isPrim(): boolean;
5020
+ copy(): RsType;
5021
+ key(): string;
5022
+ sameAs(o: RsType): boolean;
5023
+ rust(): string;
5024
+ static mk(k: string): RsType;
5025
+ static named(n: string): RsType;
5026
+ static of1(k: string, a: RsType): RsType;
5027
+ static of2(k: string, a: RsType, b: RsType): RsType;
5028
+ }
5029
+ export declare class RsField {
5030
+ name: string;
5031
+ ty: RsType;
5032
+ node?: RustNode;
5033
+ constructor();
5034
+ }
5035
+ export declare class RsParam {
5036
+ name: string;
5037
+ ty: RsType;
5038
+ pat?: RustNode;
5039
+ boxed: boolean;
4232
5040
  constructor();
4233
- _attr(wr: CodeWriter, name: string, value: string): void;
4234
- tagAttrs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4235
- tagText(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4236
- tag(name: string, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4237
- WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4238
- CreateViews(ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
4239
- writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
5041
+ static unknown(): RsParam;
5042
+ }
5043
+ export declare class RsFn {
5044
+ name: string;
5045
+ rname: string;
5046
+ generics: Array<string>;
5047
+ bounds: {
5048
+ [key: string]: string;
5049
+ };
5050
+ params: Array<RsParam>;
5051
+ ret: RsType;
5052
+ hasSelf: boolean;
5053
+ selfMut: boolean;
5054
+ selfByValue: boolean;
5055
+ owner: string;
5056
+ fromTrait: string;
5057
+ hasBody: boolean;
5058
+ ownerGenerics: Array<string>;
5059
+ node?: RustNode;
5060
+ modKey: string;
5061
+ modCls: string;
5062
+ rgrCtor: boolean;
5063
+ statName: string;
5064
+ constructor();
5065
+ }
5066
+ export declare class RsVariant {
5067
+ name: string;
5068
+ shape: string;
5069
+ fields: Array<RsField>;
5070
+ disc: number;
5071
+ constructor();
5072
+ }
5073
+ export declare class RsStruct {
5074
+ name: string;
5075
+ generics: Array<string>;
5076
+ fields: Array<RsField>;
5077
+ isTuple: boolean;
5078
+ derives: Array<string>;
5079
+ methods: Array<RsFn>;
5080
+ traits: Array<string>;
5081
+ node?: RustNode;
5082
+ rgr: boolean;
5083
+ serialize: boolean;
5084
+ constructor();
5085
+ derivesTrait(t: string): boolean;
5086
+ field(n: string): RsField | undefined;
5087
+ method(n: string): RsFn | undefined;
5088
+ }
5089
+ export declare class RsEnum {
5090
+ name: string;
5091
+ generics: Array<string>;
5092
+ variants: Array<RsVariant>;
5093
+ plain: boolean;
5094
+ derives: Array<string>;
5095
+ methods: Array<RsFn>;
5096
+ traits: Array<string>;
5097
+ node?: RustNode;
5098
+ constructor();
5099
+ variant(n: string): RsVariant | undefined;
5100
+ method(n: string): RsFn | undefined;
5101
+ }
5102
+ export declare class RsTrait {
5103
+ name: string;
5104
+ methods: Array<RsFn>;
5105
+ implementors: Array<string>;
5106
+ constructor();
5107
+ method(n: string): RsFn | undefined;
5108
+ }
5109
+ export declare class RsConst {
5110
+ name: string;
5111
+ ty: RsType;
5112
+ node?: RustNode;
5113
+ modKey: string;
5114
+ modCls: string;
5115
+ constructor();
5116
+ }
5117
+ export declare class RsLocal {
5118
+ name: string;
5119
+ rname: string;
5120
+ ty: RsType;
5121
+ moved: boolean;
5122
+ movedLine: number;
5123
+ movedCol: number;
5124
+ order: number;
5125
+ isAlias: boolean;
5126
+ iterVec: string;
5127
+ iterIdx: string;
5128
+ slotMap: string;
5129
+ slotKey: string;
5130
+ slotTy: RsType;
5131
+ constructor();
5132
+ }
5133
+ export declare class RsScope {
5134
+ vars: {
5135
+ [key: string]: RsLocal;
5136
+ };
5137
+ parent?: RsScope;
5138
+ constructor();
5139
+ lookup(n: string): RsLocal | undefined;
5140
+ }
5141
+ export declare class RsExpr {
5142
+ code: string;
5143
+ ty: RsType;
5144
+ simple: boolean;
5145
+ constructor();
5146
+ static of(c: string, t: RsType): RsExpr;
5147
+ }
5148
+ export declare class RsInst {
5149
+ name: string;
5150
+ fnDef?: RsFn;
5151
+ ty: RsType;
5152
+ env: {
5153
+ [key: string]: RsType;
5154
+ };
5155
+ constructor();
5156
+ }
5157
+ export declare class RustOut {
5158
+ lines: Array<string>;
5159
+ ind: string;
5160
+ constructor();
5161
+ line(s: string): void;
5162
+ indent(): void;
5163
+ dedent(): void;
5164
+ addAll(other: Array<string>): void;
5165
+ addIndented(other: Array<string>, baseInd: string): void;
5166
+ text(): string;
5167
+ }
5168
+ export declare class RustReserved {
5169
+ static build(): {
5170
+ [key: string]: boolean;
5171
+ };
5172
+ static operatorNames(): {
5173
+ [key: string]: boolean;
5174
+ };
5175
+ }
5176
+ export declare class RustPreludeOps {
5177
+ static arities(): {
5178
+ [key: string]: number;
5179
+ };
5180
+ static returns(): {
5181
+ [key: string]: string;
5182
+ };
5183
+ }
5184
+ export declare class RustDocParam {
5185
+ name: string;
5186
+ text: string;
5187
+ constructor();
5188
+ }
5189
+ export declare class RustDocInfo {
5190
+ description: string;
5191
+ params: Array<RustDocParam>;
5192
+ returns: string;
5193
+ throws: Array<string>;
5194
+ see: Array<string>;
5195
+ literalExamples: Array<string>;
5196
+ codeExamples: Array<string>;
5197
+ exampleNames: Array<string>;
5198
+ isPublic: boolean;
5199
+ isInternal: boolean;
5200
+ isExperimental: boolean;
5201
+ since: string;
5202
+ category: string;
5203
+ platform: string;
5204
+ deprecated: boolean;
5205
+ depSince: string;
5206
+ depNote: string;
5207
+ depUse: string;
5208
+ constructor();
5209
+ isEmpty(): boolean;
5210
+ }
5211
+ export declare class RustDocReader {
5212
+ static lit(s: string): string;
5213
+ static unquote(s0: string): string;
5214
+ static attrArgs(value: string): {
5215
+ [key: string]: string;
5216
+ };
5217
+ static docLines(attrs: Array<RustNode>): Array<string>;
5218
+ static joinTrim(lines: Array<string>): string;
5219
+ static readParams(info: RustDocInfo, lines: Array<string>): void;
5220
+ static readExamples(info: RustDocInfo, lines: Array<string>, textOut: Array<string>): void;
5221
+ static readLinks(info: RustDocInfo, text0: string): void;
5222
+ static read(attrs: Array<RustNode>, isPub: boolean): RustDocInfo;
5223
+ static tail(info: RustDocInfo, ind: string): string;
5224
+ }
5225
+ export declare class RsRgrScan {
5226
+ errors: Array<string>;
5227
+ classes: Array<RsStruct>;
5228
+ constructor();
5229
+ scan(src: string, file: string): void;
5230
+ defaultCtor(c: RsStruct): void;
5231
+ stripComment(s: string): string;
5232
+ braceDelta(s: string): number;
5233
+ startsWord(line: string, w: string): boolean;
5234
+ wordAt(line: string, from: number): string;
5235
+ nameType(decl: string): Array<string>;
5236
+ firstToken(s: string): string;
5237
+ rsType(t: string): RsType;
5238
+ withOpt(t: RsType, opt: string): RsType;
5239
+ params(line: string): Array<RsParam>;
5240
+ member(c: RsStruct, line: string, file: string, ln: number): void;
5241
+ }
5242
+ export declare class RustLower {
5243
+ errors: Array<string>;
5244
+ fileName: string;
5245
+ ownerGenerics: Array<string>;
5246
+ fnBoundTypes: {
5247
+ [key: string]: RsType;
5248
+ };
5249
+ selfArgs: Array<RsType>;
5250
+ fnInstQueue: Array<RsInst>;
5251
+ fnInstNames: {
5252
+ [key: string]: boolean;
5253
+ };
5254
+ structInstQueue: Array<RsInst>;
5255
+ structInstNames: {
5256
+ [key: string]: boolean;
5257
+ };
5258
+ dynQueue: Array<string>;
5259
+ dynNames: {
5260
+ [key: string]: boolean;
5261
+ };
5262
+ modClass: string;
5263
+ curMod: string;
5264
+ modRoots: Array<RustNode>;
5265
+ modKeys: Array<string>;
5266
+ modFiles: Array<string>;
5267
+ modDirs: Array<string>;
5268
+ modClasses: {
5269
+ [key: string]: string;
5270
+ };
5271
+ modFileOf: {
5272
+ [key: string]: string;
5273
+ };
5274
+ pendingKeys: Array<string>;
5275
+ pendingDirs: Array<string>;
5276
+ pendingNames: Array<string>;
5277
+ pendingNodes: Array<RustNode>;
5278
+ pendingPos: number;
5279
+ usesJson: boolean;
5280
+ jsonN: number;
5281
+ nativeN: number;
5282
+ target: string;
5283
+ declLate: boolean;
5284
+ pendingFiles: Array<string>;
5285
+ rgrImports: Array<string>;
5286
+ entryName: string;
5287
+ fnAlias: {
5288
+ [key: string]: string;
5289
+ };
5290
+ preludeOps: {
5291
+ [key: string]: number;
5292
+ };
5293
+ preludeRets: {
5294
+ [key: string]: string;
5295
+ };
5296
+ preludeLoaded: boolean;
5297
+ structs: {
5298
+ [key: string]: RsStruct;
5299
+ };
5300
+ structOrder: Array<string>;
5301
+ enums: {
5302
+ [key: string]: RsEnum;
5303
+ };
5304
+ enumOrder: Array<string>;
5305
+ traits: {
5306
+ [key: string]: RsTrait;
5307
+ };
5308
+ traitOrder: Array<string>;
5309
+ fns: {
5310
+ [key: string]: RsFn;
5311
+ };
5312
+ fnOrder: Array<string>;
5313
+ consts: {
5314
+ [key: string]: RsConst;
5315
+ };
5316
+ constOrder: Array<string>;
5317
+ aliases: {
5318
+ [key: string]: RustNode;
5319
+ };
5320
+ reserved: {
5321
+ [key: string]: boolean;
5322
+ };
5323
+ localReserved: {
5324
+ [key: string]: boolean;
5325
+ };
5326
+ genNames: {
5327
+ [key: string]: boolean;
5328
+ };
5329
+ genOut: Array<string>;
5330
+ hoisted: Array<string>;
5331
+ out: RustOut;
5332
+ scope: RsScope;
5333
+ used: {
5334
+ [key: string]: boolean;
5335
+ };
5336
+ tmpN: number;
5337
+ selfType: string;
5338
+ retType: RsType;
5339
+ loopVals: Array<string>;
5340
+ loopLabels: Array<string>;
5341
+ loopFlags: Array<string>;
5342
+ loopFlagKind: Array<string>;
5343
+ genericEnv: {
5344
+ [key: string]: RsType;
5345
+ };
5346
+ fnLocals: Array<RsLocal>;
5347
+ clonerOut: Array<string>;
5348
+ moduleDoc: RustDocInfo;
5349
+ docExamples: {
5350
+ [key: string]: string;
5351
+ };
5352
+ fnNameOverride: string;
5353
+ hoistQueue: Array<RsFn>;
5354
+ tempTypes: {
5355
+ [key: string]: RsType;
5356
+ };
5357
+ flagTargets: {
5358
+ [key: string]: string;
5359
+ };
5360
+ pendingFlags: Array<string>;
5361
+ forPat?: RustNode;
5362
+ forBody?: RustNode;
5363
+ armBefore: Array<RsLocal>;
5364
+ armAcc: Array<RsLocal>;
5365
+ armAny: boolean;
5366
+ variantAliases: {
5367
+ [key: string]: string;
5368
+ };
5369
+ optInCollectionReported: boolean;
5370
+ lastVecName: string;
5371
+ lastReturn: RsType;
5372
+ lastEntry: RsExpr;
5373
+ displayFormatter: string;
5374
+ lastCaptured: Array<string>;
5375
+ lastCapturedInd: string;
5376
+ loopStart: number;
5377
+ loopInd: string;
5378
+ noMoveCheck: boolean;
5379
+ iterRoots: Array<string>;
5380
+ constructor();
5381
+ err(n: RustNode, msg: string): void;
5382
+ unsupported(n: RustNode, what: string): void;
5383
+ staticName(n: string): string;
5384
+ methodName(n: string): string;
5385
+ fieldName(n: string): string;
5386
+ className(n: string): string;
5387
+ tmp(base: string): string;
5388
+ allocLocal(n: string): string;
5389
+ declare(n: string, t: RsType): RsLocal;
5390
+ alias(n: string, code: string, t: RsType): RsLocal;
5391
+ pushScope(): void;
5392
+ popScope(): void;
5393
+ translate(src: string, name: string): string;
5394
+ begin(src: string, name: string): void;
5395
+ setEntryName(name: string): void;
5396
+ registerModule(root: RustNode, key: string, file: string, dir: string): void;
5397
+ setTarget(t: string): void;
5398
+ targetKeeps(it: RustNode): boolean;
5399
+ filterTargets(root: RustNode, first: number): void;
5400
+ isImportRgr(name: string): boolean;
5401
+ macroString(m: RustNode): string;
5402
+ hasPendingModule(): boolean;
5403
+ nextModuleFiles(): Array<string>;
5404
+ addModule(path: string, src: string): void;
5405
+ addRgr(path: string, src: string, at: RustNode): void;
5406
+ moduleNotFound(): void;
5407
+ finish(): string;
5408
+ moduleClassOf(key: string): string;
5409
+ fnKey(mod: string, name: string): string;
5410
+ parentMod(mod: string): string;
5411
+ resolveItem(segs: Array<string>, table: string): string;
5412
+ modPath(segs: Array<string>, from: string): string;
5413
+ hasItem(key: string, table: string): boolean;
5414
+ deriveList(attrs: Array<RustNode>): Array<string>;
5415
+ genericNames(g: RustNode): Array<string>;
5416
+ collectModules(): void;
5417
+ enterModule(i: number): void;
5418
+ collectNames(root: RustNode): void;
5419
+ collectRest(): void;
5420
+ retarget(m: RsFn, owner: string): RsFn;
5421
+ collectItem(it: RustNode): void;
5422
+ fieldMarkers(f: RustNode, rf: RsField, s: RsStruct): void;
5423
+ hasStructAttr(s: RsStruct, name: string): boolean;
5424
+ noteTraitImpl(traitName: string, owner: string, it: RustNode): void;
5425
+ fnSig(m: RustNode, owner: string): RsFn;
5426
+ isFnBound(b: RustNode): boolean;
5427
+ typeNameOf(t: RustNode): string;
5428
+ typeOf(t: RustNode): RsType;
5429
+ typeOfIn(t: RustNode, generics: Array<string>): RsType;
5430
+ retTypeOf(ret: RustNode, generics: Array<string>): RsType;
5431
+ segArgs(seg: RustNode, generics: Array<string>): Array<RsType>;
5432
+ pathType(p: RustNode, generics: Array<string>, at: RustNode): RsType;
5433
+ argOr(args: Array<RsType>, i: number): RsType;
5434
+ rtype(t: RsType): string;
5435
+ declText(rname: string, t: RsType): string;
5436
+ isCopyStruct(t: RsType): boolean;
5437
+ tupleClass(t: RsType): string;
5438
+ mangleKey(t: RsType): string;
5439
+ fieldDecl(name: string, t: RsType): string;
5440
+ defaultValue(t: RsType): string;
5441
+ zeroCode(t: RsType): string;
5442
+ tempDecl(name: string, t: RsType): string;
5443
+ cloneCode(code: string, t: RsType): string;
5444
+ collectionCloner(t: RsType): string;
5445
+ instanceClass(t: RsType): string;
5446
+ envFor(names: Array<string>, args: Array<RsType>): {
5447
+ [key: string]: RsType;
5448
+ };
5449
+ subst(t: RsType, env: {
5450
+ [key: string]: RsType;
5451
+ }): RsType;
5452
+ unify(pt: RsType, at: RsType, env: {
5453
+ [key: string]: RsType;
5454
+ }): void;
5455
+ fieldTypeOf(s: RsStruct, f: RsField, owner: RsType): RsType;
5456
+ methodEnv(owner: RsType): {
5457
+ [key: string]: RsType;
5458
+ };
5459
+ lowerGenericCall(f: RsFn, args: Array<RustNode>, targs: RustNode, expect: RsType, at: RustNode): RsExpr;
5460
+ genericAssocCall(s: RsStruct, m: RsFn, args: Array<RustNode>, expect: RsType, at: RustNode): RsExpr;
5461
+ hasParam(t: RsType): boolean;
5462
+ dynUnion(traitName: string): string;
5463
+ emitDyn(traitName: string): string;
5464
+ tempDecl2(t: RsType): string;
5465
+ resultClass(t: RsType): string;
5466
+ makeResultValue(isOk: boolean, arg: RustNode, rt: RsType, at: RustNode): RsExpr;
5467
+ emitAll(): string;
5468
+ implClass(en: string): string;
5469
+ isDataEnum(t: RsType): boolean;
5470
+ isEnumType(t: RsType): boolean;
5471
+ emitEnum(e: RsEnum): string;
5472
+ caseType(en: string, v: string): string;
5473
+ emitEnumDebug(e: RsEnum, cname: string): string;
5474
+ emitEnumZero(e: RsEnum, cname: string): string;
5475
+ emitEnumClone(e: RsEnum, cname: string): string;
5476
+ emitEnumEq(e: RsEnum, cname: string): string;
5477
+ emitStruct(s: RsStruct): string;
5478
+ emitStructAs(s: RsStruct, cname: string): string;
5479
+ structCmp(a: string, b: string, t: RsType): string;
5480
+ emitStructZero(s: RsStruct, cname: string): string;
5481
+ emptyValueCode(t: RsType): string;
5482
+ emitStructInstance(inst: RsInst): string;
5483
+ andAll(conds: Array<string>): string;
5484
+ eqCode(a: string, b: string, t: RsType): string;
5485
+ emitDebugStruct(s: RsStruct, cname: string): string;
5486
+ concat(head: string, parts: Array<string>, sep: string, tail: string): string;
5487
+ dbgCode(code: string, t: RsType): string;
5488
+ vecDebugger(t: RsType): string;
5489
+ enumName(code: string, en: string): string;
5490
+ emitModules(): string;
5491
+ emitModuleItems(mk: string, lines: Array<string>): void;
5492
+ emitModule(): string;
5493
+ docKey(n: RustNode): string;
5494
+ helperDoc(text: string): string;
5495
+ docTail(n: RustNode, ind: string): string;
5496
+ addDocExamples(root: RustNode): void;
5497
+ docExampleStem(n: string): string;
5498
+ emitConst(c: RsConst): string;
5499
+ prependFlags(): void;
5500
+ beginFn(): void;
5501
+ emitFn(f: RsFn, owner: string): string;
5502
+ emitFnIn(f: RsFn, owner: string): string;
5503
+ lowerBody(body: RustNode, ret: RsType): void;
5504
+ isTail(st: RustNode): boolean;
5505
+ emitReturn(e: RustNode): void;
5506
+ lowerStmt(st: RustNode): void;
5507
+ hoistFn(st: RustNode): void;
5508
+ lowerLet(st: RustNode): void;
5509
+ lowerLetElse(pat: RustNode, init: RustNode, elseB: RustNode, declared: RsType): void;
5510
+ lowerStmtExpr(e: RustNode): void;
5511
+ discard(v: RsExpr): void;
5512
+ unparen(c: string): string;
5513
+ isCallCode(c: string): boolean;
5514
+ lowerBlockStmts(b: RustNode): void;
5515
+ lowerBlockValue(b: RustNode, mode: string, _var: string): void;
5516
+ lowerValueTo(e: RustNode, mode: string, _var: string): void;
5517
+ varType(_var: string): RsType;
5518
+ divergesAll(e: RustNode): boolean;
5519
+ isBranchy(e: RustNode): boolean;
5520
+ lowerBranchy(e: RustNode, mode: string, _var: string): void;
5521
+ lowerIf(e: RustNode, mode: string, _var: string): void;
5522
+ condText(c: string): string;
5523
+ hasLet(c: RustNode): boolean;
5524
+ lowerIfLet(e: RustNode, mode: string, _var: string): void;
5525
+ flattenAnd(c: RustNode, parts: Array<RustNode>): void;
5526
+ lowerCond(c: RustNode): RsExpr;
5527
+ pushLoop(label: string, valVar: string): void;
5528
+ popLoop(): void;
5529
+ lowerWhile(e: RustNode): void;
5530
+ whileLetNarrows(cond: RustNode): boolean;
5531
+ whileLetOpen(cond: RustNode, body: RustNode): void;
5532
+ whileLetHead(cond: RustNode): void;
5533
+ lowerLoopBody(body: RustNode): void;
5534
+ lowerLoop(e: RustNode, _var: string): void;
5535
+ afterLoop(): void;
5536
+ flagTarget(flag: string): string;
5537
+ loopIndexOf(label: string): number;
5538
+ lowerBreak(e: RustNode): void;
5539
+ lowerContinue(e: RustNode): void;
5540
+ labelledExit(target: number, kind: string): void;
5541
+ forNeedsChain(iter: RustNode): boolean;
5542
+ lowerFor(e: RustNode): void;
5543
+ lowerForRange(pat: RustNode, r: RustNode, rev: boolean, step: string, body: RustNode, label: string): void;
5544
+ bindForPattern(pat: RustNode, code: string, t: RsType): void;
5545
+ lowerForSeq(pat: RustNode, iter0: RustNode, rev: boolean, body: RustNode, label: string): void;
5546
+ replaceIdx(code: string, from: string, to: string): string;
5547
+ bindElem(pat: RustNode, code: string, t: RsType, mutElems: boolean, seq: string, cur: string): void;
5548
+ bindPairPattern(pat: RustNode, kc: string, kt: RsType, vc: string, vt: RsType, enumerate: boolean, cur: string): void;
5549
+ stripRefPat(p: RustNode): RustNode;
5550
+ sortStrings(seq: string, kt: RsType): void;
5551
+ lowerMatch(e: RustNode, mode: string, _var: string): void;
5552
+ armStart(): Array<RsLocal>;
5553
+ armEnd(body: RustNode): void;
5554
+ lowerArmsOpen(arms: Array<RustNode>, subj: string, t: RsType, mode: string, _var: string): void;
5555
+ patOpenOr(pat: RustNode, subj: string, t: RsType): number;
5556
+ lowerArms(arms: Array<RustNode>, i: number, subj: string, t: RsType, mode: string, _var: string, at: RustNode): void;
5557
+ patCond(pat: RustNode, subj: string, t: RsType): string;
5558
+ patValue(n: RustNode, t: RsType): RsExpr;
5559
+ lastSeg(p: RustNode): string;
5560
+ isUnitVariantName(n: string, t: RsType): boolean;
5561
+ variantTest(name: string, subj: string, t: RsType, at: RustNode): string;
5562
+ structPatCond(pat: RustNode, subj: string, t: RsType, name: string, tupleStyle: boolean): string;
5563
+ patBinds(pat: RustNode): boolean;
5564
+ bindPattern(pat: RustNode, subj: string, t: RsType): void;
5565
+ aliasPattern(pat: RustNode, subj: string, t: RsType): void;
5566
+ walkBindings(pat: RustNode, subj: string, t: RsType, aliasOnly: boolean): void;
5567
+ bindTemp(v: RsExpr, t: RsType, base: string): string;
5568
+ valueTemp(t: RsType): string;
5569
+ unionSafe(code: string, t: RsType): string;
5570
+ coerce(v: RsExpr, t: RsType, at: RustNode): RsExpr;
5571
+ lowerExprCopy(n: RustNode, expect: RsType): RsExpr;
5572
+ isPlace(n: RustNode): boolean;
5573
+ unit(): RsExpr;
5574
+ lowerExpr(n: RustNode, expect: RsType): RsExpr;
5575
+ lowerValueExpr(n: RustNode, expect: RsType): RsExpr;
5576
+ strLit(s: string): string;
5577
+ intValue(n: RustNode): number;
5578
+ floatText(v: string): string;
5579
+ lowerLit(n: RustNode, expect: RsType): RsExpr;
5580
+ pathSegs(p: RustNode): Array<string>;
5581
+ useEnum(path: string): string;
5582
+ collectUse(u: RustNode): void;
5583
+ useItems(prefix: string, u: RustNode): void;
5584
+ lowerPathExpr(n: RustNode, expect: RsType): RsExpr;
5585
+ stdConst(full: string): string;
5586
+ constValue(key: string): RsExpr;
5587
+ fnValue(name: string, at: RustNode): RsExpr;
5588
+ lowerBin(n: RustNode, expect: RsType): RsExpr;
5589
+ operatorMethod(op: string, l: RsExpr, r: RsExpr, t: RsType, at: RustNode): RsExpr;
5590
+ compare(op: string, l: RsExpr, r: RsExpr, t: RsType, at: RustNode): string;
5591
+ lowerLogic(n: RustNode): RsExpr;
5592
+ lowerUnary(n: RustNode, expect: RsType): RsExpr;
5593
+ lowerCast(n: RustNode): RsExpr;
5594
+ enumDisc(code: string, en: string): string;
5595
+ lowerArgs(args: Array<RustNode>, types: Array<RsType>): Array<string>;
5596
+ paramTypes(f: RsFn): Array<RsType>;
5597
+ callArgs(n: RustNode, from: number): Array<RustNode>;
5598
+ lowerCall(n: RustNode, expect: RsType): RsExpr;
5599
+ callModuleFn(fk: string, callee: RustNode, args: Array<RustNode>, expect: RsType, n: RustNode): RsExpr;
5600
+ callValue(fname: string, ft: RsType, args: Array<RustNode>, at: RustNode): RsExpr;
5601
+ makeSome(args: Array<RustNode>, expect: RsType, at: RustNode): RsExpr;
5602
+ makeResult(name: string, args: Array<RustNode>, expect: RsType, at: RustNode): RsExpr;
5603
+ lowerPathCall(segs: Array<string>, args: Array<RustNode>, expect: RsType, at: RustNode): RsExpr;
5604
+ emptyCollection(expect: RsType, at: RustNode): RsExpr;
5605
+ lowerSwap(a: RustNode, b: RustNode): void;
5606
+ lowerTake(full: string, args: Array<RustNode>, at: RustNode): RsExpr;
5607
+ lowerMethod(n: RustNode, expect: RsType): RsExpr;
5608
+ userMethodCall(rv: RsExpr, m: RsFn, args: Array<RustNode>, at: RustNode): RsExpr;
5609
+ displayCall(rv: RsExpr, t: RsType): RsExpr;
5610
+ lowerParse(parseCall: RustNode, expect: RsType): RsExpr;
5611
+ arg0(args: Array<RustNode>, t: RsType): RsExpr;
5612
+ stdMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5613
+ vecMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5614
+ writeBackElement(call: RustNode, rv: RsExpr): void;
5615
+ vecMethodInner(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5616
+ vecInserter(t: RsType): string;
5617
+ strMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5618
+ charMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode): RsExpr;
5619
+ numMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode): RsExpr;
5620
+ optMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5621
+ resultMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5622
+ entryMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode): RsExpr;
5623
+ newValueCode(t: RsType, at: RustNode): string;
5624
+ mapMethod(rv: RsExpr, name: string, args: Array<RustNode>, at: RustNode, expect: RsType): RsExpr;
5625
+ lowerField(n: RustNode): RsExpr;
5626
+ lowerIndex(n: RustNode): RsExpr;
5627
+ lowerAssign(n: RustNode): void;
5628
+ placeType(lhs: RustNode): RsExpr;
5629
+ assignTo(lhs: RustNode, v: RsExpr): void;
5630
+ lowerTuple(n: RustNode, expect: RsType): RsExpr;
5631
+ lowerArray(n: RustNode, expect: RsType): RsExpr;
5632
+ lowerStructLit(n: RustNode): RsExpr;
5633
+ lowerClosure(n: RustNode, expect: RsType): RsExpr;
5634
+ hasFmt(t: RsType, traitName: string): boolean;
5635
+ arith(op: string, a: RsExpr, b: RsExpr, t: RsType): string;
5636
+ applyClosure(f: RustNode, args: Array<RsExpr>, expect: RsType): RsExpr;
5637
+ captureClosure(f: RustNode, args: Array<RsExpr>, expect: RsType): RsExpr;
5638
+ captureExpr(e: RustNode, expect: RsType): RsExpr;
5639
+ resultErrOf(expect: RsType): RsType;
5640
+ isIterConsumer(n: string): boolean;
5641
+ isIterAdapter(n: string): boolean;
5642
+ isIterSource(n: string): boolean;
5643
+ isIterChain(n: RustNode): boolean;
5644
+ lowerIterChain(consumer: RustNode, expect: RsType): RsExpr;
5645
+ insertBeforeLoop(decls: Array<string>): void;
5646
+ iterOpen(src0: RustNode, rev: boolean, step: string): RsExpr;
5647
+ iterClose(): void;
5648
+ iterConsume(name: string, args: Array<RustNode>, e: RsExpr, res: string, pos: string, expect: RsType, at: RustNode, decls: Array<string>): RsExpr;
5649
+ simpleExpr(code: string, t: RsType): RsExpr;
5650
+ comparatorLambda(f: RustNode, et: RsType, keyed: boolean): string;
5651
+ comparatorFromMethod(et: RsType): string;
5652
+ cmpCode(a: string, b: string, t: RsType): string;
5653
+ writeBack(call: RustNode, v: string, t: RsType): void;
5654
+ lowerTry(n: RustNode, expect: RsType): RsExpr;
5655
+ lowerNative(m: RustNode, expect: RsType): RsExpr;
5656
+ addSerializeMethods(s: RsStruct): void;
5657
+ jsonTmp(base: string): string;
5658
+ emitJson(s: RsStruct, cname: string): string;
5659
+ jsonWrite(e: string, t: RsType, lines: Array<string>, ind: string): void;
5660
+ jsonRead(j: string, t: RsType, target: string, prefix: string, lines: Array<string>, ind: string): void;
5661
+ lowerTree(m: RustNode, expect: RsType): RsExpr;
5662
+ rangerString(s: string): string;
5663
+ lowerMacroStmt(m: RustNode): boolean;
5664
+ lowerMacroExpr(m: RustNode, expect: RsType): RsExpr;
5665
+ formatArgs(kids: Array<RustNode>, at: RustNode): string;
5666
+ formatString(fmt: string, args: Array<RsExpr>, at: RustNode): string;
5667
+ formatValue(v: RsExpr, spec: string, at: RustNode): string;
5668
+ fmtDisplay(v: RsExpr, prec: string): string;
5669
+ lowerVariantLit(n: RustNode, en: string, vn: string): RsExpr;
5670
+ variantCtorValue(e: RsEnum, v: RsVariant, at: RustNode): RsExpr;
5671
+ needsOpen(pat: RustNode, t: RsType): boolean;
5672
+ patOpen(pat: RustNode, subj0: string, t: RsType): number;
5673
+ closeBlocks(n: number): void;
5674
+ ownedString(): RsType;
5675
+ isCopy(t: RsType): boolean;
5676
+ noteMove(n0: RustNode, t: RsType): void;
5677
+ movedSnapshot(): Array<RsLocal>;
5678
+ movedRestore(list: Array<RsLocal>): void;
5679
+ movedUnion(a: Array<RsLocal>, b: Array<RsLocal>): Array<RsLocal>;
5680
+ blockDiverges(b: RustNode): boolean;
5681
+ checkLoopMoves(before: Array<RsLocal>, firstInside: number, body: RustNode): void;
5682
+ omapClass(t: RsType): string;
5683
+ isOrderedMap(t: RsType): boolean;
5684
+ mapR(m: string, t: RsType): string;
5685
+ mapSetLine(m: string, t: RsType, k: string, v: string): string;
5686
+ mapKeysCode(m: string, t: RsType): string;
5687
+ initSuffix(t: RsType): string;
5688
+ isPreludeOp(name: string, argc: number): boolean;
5689
+ preludeOpCall(name: string, args: Array<RustNode>, n: RustNode): RsExpr;
5690
+ placePath(n0: RustNode): string;
5691
+ pathsOverlap(a: string, b: string): boolean;
5692
+ checkCallBorrows(recv: RustNode, recvMut: boolean, recvBorrows: boolean, args: Array<RustNode>, at: RustNode): void;
5693
+ checkIterMutation(recvN: RustNode, at: RustNode): void;
5694
+ needsBox(t: RsType): boolean;
5695
+ hasBoxed(f: RsFn): boolean;
5696
+ boxClass(t: RsType): string;
5697
+ boxedCall(head: string, f: RsFn, args: Array<RustNode>, owner: RsType, extra: string, at: RustNode): RsExpr;
5698
+ static isRustFile(name: string): boolean;
5699
+ static moduleCamelFor(name: string): string;
5700
+ static moduleClassFor(name: string): string;
5701
+ static moduleFileName(path: string): string;
5702
+ static dirOf(path: string): string;
5703
+ static baseName(path: string): string;
5704
+ static joinPath(dir: string, name: string): string;
5705
+ static targetAlias(t: string): string;
4240
5706
  }
4241
5707
  export declare class CompilerResults {
4242
5708
  ctx?: RangerAppWriterContext;
@@ -4255,14 +5721,12 @@ export declare class VirtualCompiler {
4255
5721
  fillStr(cnt: number): string;
4256
5722
  detectLanguageFromExtension(filename: string): string;
4257
5723
  isTypeScriptExtension(filename: string): boolean;
4258
- runInstall(env: InputEnv, params: CmdParams, cli: CLIProgress): Promise<boolean>;
4259
- run(env: InputEnv): Promise<CompilerResults>;
5724
+ runInstall(env: InputEnv, params: CmdParams, cli: CLIConsole): boolean;
5725
+ run(env: InputEnv): CompilerResults;
4260
5726
  static create_env(): Promise<void>;
4261
- static displayCompilerErrorsWithCLI(appCtx: RangerAppWriterContext, cli: CLIProgress): void;
4262
- static displayCompilerErrors(appCtx: RangerAppWriterContext): void;
5727
+ static displayCompilerErrorsWithCLI(appCtx: RangerAppWriterContext, cli: CLIConsole): void;
4263
5728
  static displayParserErrors(appCtx: RangerAppWriterContext): void;
4264
5729
  }
4265
5730
  export declare class CompilerInterface {
4266
- constructor();
4267
5731
  static create_env(): InputEnv;
4268
5732
  }