ranger-compiler 3.1.1 → 3.4.0

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 (58) hide show
  1. package/CHANGELOG.md +2527 -0
  2. package/LICENSE +28 -0
  3. package/LICENSE-MIT +21 -0
  4. package/README.md +1650 -1875
  5. package/dist/Lang.rgr +10946 -5662
  6. package/dist/README.md +3 -2
  7. package/dist/api.d.ts +2023 -61
  8. package/dist/api.js +68930 -27355
  9. package/dist/lib/ACEEditor.rgr +2 -0
  10. package/dist/lib/Ajax.rgr +2 -0
  11. package/dist/lib/CmdParams.rgr +2 -0
  12. package/dist/lib/Crypto.rgr +2 -0
  13. package/dist/lib/DOMLib.rgr +2 -0
  14. package/dist/lib/Engine3D.rgr +2 -0
  15. package/dist/lib/ImmutableVector.rgr +2 -0
  16. package/dist/lib/IndexedDB.rgr +2 -0
  17. package/dist/lib/IsoDate/DateMath.rgr +2 -0
  18. package/dist/lib/IsoDate/IsoCalendar.rgr +2 -0
  19. package/dist/lib/IsoDate/IsoDateParse.rgr +2 -0
  20. package/dist/lib/IsoDateLib.rgr +2 -0
  21. package/dist/lib/JSON.rgr +4906 -48
  22. package/dist/lib/JinxProcess.rgr +2 -0
  23. package/dist/lib/RangerProcess.rgr +2 -0
  24. package/dist/lib/Regex/RegexMatch.rgr +2 -0
  25. package/dist/lib/RegexLib.rgr +2 -0
  26. package/dist/lib/SQL.rgr +2 -0
  27. package/dist/lib/ServiceLib.rgr +2 -0
  28. package/dist/lib/Shell.rgr +326 -0
  29. package/dist/lib/Storage.rgr +2 -0
  30. package/dist/lib/Time.rgr +2 -0
  31. package/dist/lib/Timers.rgr +2 -0
  32. package/dist/lib/TypedArrays.rgr +2 -0
  33. package/dist/lib/ViewLib.rgr +2 -0
  34. package/dist/lib/WebLib.rgr +2 -0
  35. package/dist/lib/WebServerLib.rgr +2 -0
  36. package/dist/lib/apple/AppleAppBuilder.rgr +572 -0
  37. package/dist/lib/apple/AppleAppSpec.rgr +201 -0
  38. package/dist/lib/apple/AppleDevice.rgr +295 -0
  39. package/dist/lib/apple/AppleDeviceDoctor.rgr +453 -0
  40. package/dist/lib/apple/AppleSigning.rgr +379 -0
  41. package/dist/lib/apple/AppleSimulator.rgr +248 -0
  42. package/dist/lib/apple/AppleTarget.rgr +185 -0
  43. package/dist/lib/apple/AppleToolchain.rgr +458 -0
  44. package/dist/lib/apple/README.md +311 -0
  45. package/dist/lib/apple/apple_test.rgr +669 -0
  46. package/dist/lib/core/README.md +251 -0
  47. package/dist/lib/core/RgBase.rgr +313 -0
  48. package/dist/lib/core/RgNum.rgr +653 -0
  49. package/dist/lib/core/RgText.rgr +680 -0
  50. package/dist/lib/core/RgU32.rgr +309 -0
  51. package/dist/lib/ranger-dir.rgr +27 -5
  52. package/dist/lib/shell_test.rgr +193 -0
  53. package/dist/lib/stdlib.rgr +1176 -665
  54. package/dist/lib/stdops.rgr +2 -0
  55. package/dist/package.json +1 -1
  56. package/dist/rgrc.js +73013 -37819
  57. package/dist/stdops.rgr +2 -0
  58. package/package.json +1121 -205
package/dist/api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- type union_Any = CmdParams | test_cmdparams | InputFSFolder | InputFSFile | InputEnv | test_input_filesystem | RangerAppTodo | RangerCompilerMessage | RangerParamEventHandler | RangerParamEventList | RangerParamEventMap | RangerAppArrayValue | RangerAppHashValue | RangerAppValue | RangerRefForce | RangerAppParamDesc | RangerAppFunctionDesc | RangerAppMethodVariants | RangerAppInterfaceImpl | RangerTraitParams | RangerAppClassDesc | RangerTypeClass | SourceCode | CodeNodeLiteral | CodeNode | TypeCounts | RangerNodeValue | RangerBackReference | RangerAppEnum | OpFindResult | RangerOperatorList | RangerNodeList | ContextTransaction | ContextTransactionMutation | RangerRegisteredPlugin | RangerAppWriterContext | CodeFile | CodeFileSystem | CodeSlice | CodeWriter | RangerLispParser | RangerArgMatch | DictNode | RangerSerializeClass | RangerImmutableExtension | RangerServiceBuilder | RangerAppOperatorDesc | TFiles | TTypes | ClassJoinPoint | WalkLater | RangerFlowParser | TFactory | CallChain | NodeEvalState | RangerGenericClassWriter | AndroidPageWriter | RangerJava7ClassWriter | RangerSwift3ClassWriter | RangerSwift6ClassWriter | RangerCppClassWriter | MethodCallList | RangerRustClassWriter | RangerKotlinClassWriter | RangerCSharpClassWriter | RangerScalaClassWriter | RangerGolangClassWriter | RangerGolangHttpServerWriter | RangerPHPClassWriter | RangerPythonClassWriter | WebPageWriter | RangerJavaScriptClassWriter | RangerRangerClassWriter | OpList | RangerActiveOperators | LiveCompiler | ColorConsole | CLIProgress | RangerDocGenerator | StaticAnalyzer | viewbuilder_Android | viewbuilder_Web | CompilerResults | VirtualCompiler | CompilerInterface | number | string | boolean | number;
2
1
  export declare class CmdParams {
3
2
  flags: {
4
3
  [key: string]: boolean;
@@ -9,10 +8,10 @@ export declare class CmdParams {
9
8
  values: Array<string>;
10
9
  constructor();
11
10
  hasParam(name: string): boolean;
12
- getParam(name: string): string;
11
+ getParam(name: string): string | undefined;
13
12
  collect(): void;
14
13
  toDictionary(): Record<string, any>;
15
- static fromDictionary(dict: Record<string, any>): Promise<CmdParams>;
14
+ static fromDictionary(dict: Record<string, any>): CmdParams;
16
15
  }
17
16
  export declare class test_cmdparams {
18
17
  constructor();
@@ -28,7 +27,7 @@ export declare class InputFSFolder {
28
27
  constructor();
29
28
  forTree(cb: (item: InputFSFolder) => void): void;
30
29
  toDictionary(): Record<string, any>;
31
- static fromDictionary(dict: Record<string, any>): Promise<InputFSFolder>;
30
+ static fromDictionary(dict: Record<string, any>): InputFSFolder;
32
31
  }
33
32
  export declare class InputFSFile {
34
33
  name: string;
@@ -39,6 +38,23 @@ export declare class InputFSFile {
39
38
  toDictionary(): Record<string, any>;
40
39
  static fromDictionary(dict: Record<string, any>): InputFSFile;
41
40
  }
41
+ export declare class InputFileResolver {
42
+ files: {
43
+ [key: string]: string;
44
+ };
45
+ hostDirs: Array<string>;
46
+ constructor();
47
+ putFile(name: string, data: string): void;
48
+ addHostDir(dir: string): void;
49
+ knownName(name: string): boolean;
50
+ baseName(path: string): string;
51
+ exists(path: string, name: string): boolean;
52
+ tryRead(path: string, name: string): Promise<string> | undefined;
53
+ hostHas(name: string): boolean;
54
+ hostRead(name: string): Promise<string> | undefined;
55
+ toDictionary(): Record<string, any>;
56
+ static fromDictionary(dict: Record<string, any>): InputFileResolver;
57
+ }
42
58
  export declare class InputEnv {
43
59
  use_real: boolean;
44
60
  filesystem?: InputFSFolder;
@@ -46,10 +62,12 @@ export declare class InputEnv {
46
62
  [key: string]: string;
47
63
  };
48
64
  commandLine?: CmdParams;
65
+ resolver?: InputFileResolver;
49
66
  constructor();
50
67
  setEnv(name: string, value: string): void;
68
+ setResolver(r: InputFileResolver): void;
51
69
  toDictionary(): Record<string, any>;
52
- static fromDictionary(dict: Record<string, any>): Promise<InputEnv>;
70
+ static fromDictionary(dict: Record<string, any>): InputEnv;
53
71
  }
54
72
  export declare class test_input_filesystem {
55
73
  constructor();
@@ -67,6 +85,218 @@ export declare class RangerCompilerMessage {
67
85
  node?: CodeNode;
68
86
  constructor();
69
87
  }
88
+ export declare class RangerDocParam {
89
+ name: string;
90
+ text: string;
91
+ node?: CodeNode;
92
+ constructor();
93
+ }
94
+ export declare class RangerDocDeprecation {
95
+ since: string;
96
+ use: string;
97
+ description: string;
98
+ constructor();
99
+ }
100
+ export declare class RangerDocBlock {
101
+ is_public: boolean;
102
+ is_internal: boolean;
103
+ is_experimental: boolean;
104
+ description: string;
105
+ params: Array<RangerDocParam>;
106
+ returns: string;
107
+ throws: Array<string>;
108
+ since: string;
109
+ is_deprecated: boolean;
110
+ deprecation?: RangerDocDeprecation;
111
+ see: Array<string>;
112
+ examples: Array<string>;
113
+ exampleRefs: Array<string>;
114
+ category: string;
115
+ platform: string;
116
+ attrs: Array<string>;
117
+ targets: {
118
+ [key: string]: RangerDocBlock;
119
+ };
120
+ targetNames: Array<string>;
121
+ node?: CodeNode;
122
+ constructor();
123
+ hasParamDoc(n: string): boolean;
124
+ paramText(n: string): string;
125
+ hasTargetView(name: string): boolean;
126
+ viewFor(name: string): RangerDocBlock;
127
+ }
128
+ export declare class RangerDocReader {
129
+ constructor();
130
+ wordAt(node: CodeNode, idx: number): string;
131
+ textFrom(node: CodeNode, startIndex: number): string;
132
+ blockArgOf(node: CodeNode): CodeNode;
133
+ hasBlockArg(node: CodeNode): boolean;
134
+ readDeprecation(blockNode: CodeNode, ctx: RangerAppWriterContext): RangerDocDeprecation;
135
+ fill(doc: RangerDocBlock, blockNode: CodeNode, ctx: RangerAppWriterContext, allowTargets: boolean): void;
136
+ read(blockNode: CodeNode, ctx: RangerAppWriterContext): RangerDocBlock;
137
+ }
138
+ export declare class RangerApiParam {
139
+ name: string;
140
+ compiledName: string;
141
+ typeName: string;
142
+ description: string;
143
+ constructor();
144
+ }
145
+ export declare class RangerApiMethod {
146
+ name: string;
147
+ compiledName: string;
148
+ is_static: boolean;
149
+ is_constructor: boolean;
150
+ is_public: boolean;
151
+ returnType: string;
152
+ returnDoc: string;
153
+ params: Array<RangerApiParam>;
154
+ doc?: RangerDocBlock;
155
+ has_doc: boolean;
156
+ node?: CodeNode;
157
+ constructor();
158
+ }
159
+ export declare class RangerApiField {
160
+ name: string;
161
+ compiledName: string;
162
+ typeName: string;
163
+ is_public: boolean;
164
+ is_static: boolean;
165
+ doc?: RangerDocBlock;
166
+ has_doc: boolean;
167
+ constructor();
168
+ }
169
+ export declare class RangerApiClass {
170
+ name: string;
171
+ compiledName: string;
172
+ kind: string;
173
+ is_public: boolean;
174
+ extendsName: string;
175
+ fields: Array<RangerApiField>;
176
+ methods: Array<RangerApiMethod>;
177
+ doc?: RangerDocBlock;
178
+ has_doc: boolean;
179
+ node?: CodeNode;
180
+ constructor();
181
+ hasPublicMember(): boolean;
182
+ }
183
+ export declare class RangerApiModel {
184
+ moduleName: string;
185
+ version: string;
186
+ description: string;
187
+ classes: Array<RangerApiClass>;
188
+ warnings: Array<string>;
189
+ constructor();
190
+ publicClassCount(): number;
191
+ }
192
+ export declare class RangerApiBuilder {
193
+ strict: boolean;
194
+ publicClassNames: {
195
+ [key: string]: boolean;
196
+ };
197
+ internalClassNames: {
198
+ [key: string]: boolean;
199
+ };
200
+ exampleFns: Array<RangerAppFunctionDesc>;
201
+ constructor();
202
+ typeNameOf(node: CodeNode): string;
203
+ readDocOf(node: CodeNode, ctx: RangerAppWriterContext): RangerDocBlock;
204
+ warn(model: RangerApiModel, ctx: RangerAppWriterContext, node: CodeNode, msg: string): void;
205
+ validateMethod(model: RangerApiModel, m: RangerApiMethod, ctx: RangerAppWriterContext): void;
206
+ typeNamesOf(node: CodeNode): Array<string>;
207
+ checkNoLeak(ctx: RangerAppWriterContext, node: CodeNode, what: string, role: string, typeNode: CodeNode): void;
208
+ buildMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, isStatic: boolean): RangerApiMethod;
209
+ checkMethodLeaks(m: RangerApiMethod, fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext): void;
210
+ build(ctx: RangerAppWriterContext): RangerApiModel;
211
+ findExampleFn(ctx: RangerAppWriterContext, name: string): RangerAppFunctionDesc;
212
+ markExamplesOf(doc: RangerDocBlock, owner: CodeNode, ctx: RangerAppWriterContext): void;
213
+ resolveExamples(model: RangerApiModel, ctx: RangerAppWriterContext): void;
214
+ }
215
+ export declare class RangerDocCommentWriter {
216
+ exampleTexts: Array<string>;
217
+ constructor();
218
+ clearExamples(): void;
219
+ loadExamples(doc: RangerDocBlock, ctx: RangerAppWriterContext): void;
220
+ allExamples(doc: RangerDocBlock): Array<string>;
221
+ jsTypeName(t: string): string;
222
+ jsTypeOf(node: CodeNode): string;
223
+ csTypeName(t: string): string;
224
+ xmlEscape(value: string): string;
225
+ linesOf(text: string): Array<string>;
226
+ writeJsDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
227
+ writeJsDocTyped(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, valueType: string, wr: CodeWriter): void;
228
+ writeXmlLines(tag: string, attrs: string, text: string, wr: CodeWriter): void;
229
+ writeCsDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
230
+ writeCsAttrs(doc: RangerDocBlock, wr: CodeWriter): void;
231
+ swiftTypeName(t: string): string;
232
+ writeSwiftDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
233
+ writeSwiftAttrs(doc: RangerDocBlock, wr: CodeWriter): void;
234
+ kotlinTypeName(t: string): string;
235
+ writeKotlinDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
236
+ writeKotlinAttrs(doc: RangerDocBlock, replaceWith: string, wr: CodeWriter): void;
237
+ pyTypeName(t: string): string;
238
+ pyTypeOf(node: CodeNode): string;
239
+ writePyDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
240
+ dartTypeName(t: string): string;
241
+ writeDartDoc(doc: RangerDocBlock, retType: string, params: Array<RangerApiParam>, wr: CodeWriter): void;
242
+ writeDartAttrs(doc: RangerDocBlock, wr: CodeWriter): void;
243
+ paramsOf(fd: RangerAppFunctionDesc, doc: RangerDocBlock, forJs: boolean): Array<RangerApiParam>;
244
+ writeJsDocForMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
245
+ writeCsDocForMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
246
+ writeJsDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
247
+ writeCsDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
248
+ writeSwiftDocForMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
249
+ writeSwiftDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
250
+ writeSwiftDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
251
+ kotlinReplaceWith(cl: RangerAppClassDesc, doc: RangerDocBlock): string;
252
+ writeKotlinDocForMethod(cl: RangerAppClassDesc, fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
253
+ writeKotlinDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
254
+ writeKotlinDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
255
+ writePyDocForMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
256
+ writePyDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
257
+ writeDartDocForMethod(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
258
+ writeDartDocForClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
259
+ writeDartDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
260
+ memberVisibility(cl: RangerAppClassDesc, member: RangerAppParamDesc, whenLegacy: string, whenPublic: string, whenInternal: string): string;
261
+ classVisibility(cl: RangerAppClassDesc, whenLegacy: string, whenPublic: string, whenInternal: string): string;
262
+ writeJsDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
263
+ writeCsDocForField(p: RangerAppParamDesc, wr: CodeWriter): void;
264
+ static lookupFn(ctx: RangerAppWriterContext, name: string): RangerAppFunctionDesc;
265
+ }
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
+ }
70
300
  export declare class RangerParamEventHandler {
71
301
  constructor();
72
302
  callback(param: RangerAppParamDesc): void;
@@ -130,6 +360,7 @@ export declare class RangerAppParamDesc {
130
360
  debugString: string;
131
361
  is_register: boolean;
132
362
  ref_cnt: number;
363
+ read_cnt: number;
133
364
  init_cnt: number;
134
365
  set_cnt: number;
135
366
  return_cnt: number;
@@ -162,9 +393,20 @@ export declare class RangerAppParamDesc {
162
393
  escapes_function: boolean;
163
394
  needs_cpp_reference: boolean;
164
395
  rust_borrow_type: number;
396
+ needs_swift_inout: boolean;
397
+ rust_static_str: boolean;
398
+ rust_interior_cell: boolean;
165
399
  rust_assigned_to_weak: boolean;
166
400
  rust_needs_rc_wrap: boolean;
167
401
  rust_assigned_to_field: boolean;
402
+ sharing_mutates: boolean;
403
+ ownership_kind: number;
404
+ ownership_resolved: boolean;
405
+ escapes_via: string;
406
+ escape_owners: Array<string>;
407
+ escape_via_call: boolean;
408
+ escape_return_only: boolean;
409
+ ownership_read_only: boolean;
168
410
  node?: CodeNode;
169
411
  nameNode?: CodeNode;
170
412
  fnBody?: CodeNode;
@@ -172,10 +414,15 @@ export declare class RangerAppParamDesc {
172
414
  return_value?: RangerAppParamDesc;
173
415
  description: string;
174
416
  git_doc: string;
417
+ has_doc: boolean;
418
+ docBlock?: RangerDocBlock;
419
+ is_doc_example: boolean;
420
+ docExampleText: string;
175
421
  has_events: boolean;
176
422
  eMap?: RangerParamEventMap;
177
423
  constructor();
178
424
  addEvent(name: string, e: RangerParamEventHandler): void;
425
+ changeStrengthSelf(newStrength: number, lifeTime: number): void;
179
426
  changeStrength(newStrength: number, lifeTime: number, changer: CodeNode): void;
180
427
  isFunction(): boolean;
181
428
  isProperty(): boolean;
@@ -225,6 +472,8 @@ export declare class RangerAppFunctionDesc extends RangerAppParamDesc {
225
472
  all_paths_return: boolean;
226
473
  mutates_self: boolean;
227
474
  static_analysis_done: boolean;
475
+ rust_needs_self_rc: boolean;
476
+ rust_mut_self: boolean;
228
477
  rust_uses_self: boolean;
229
478
  rust_passes_self_to_weak: boolean;
230
479
  rust_can_be_static: boolean;
@@ -235,13 +484,34 @@ export declare class RangerAppFunctionDesc extends RangerAppParamDesc {
235
484
  mutates_param_indices: Array<number>;
236
485
  constructor();
237
486
  addCallTo(m: RangerAppFunctionDesc): void;
238
- addIndirectClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
239
- addClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
487
+ addIndirectClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): Promise<void>;
488
+ addClassUsage(m: RangerAppClassDesc, ctx: RangerAppWriterContext): Promise<void>;
240
489
  forOtherVersions(ctx: RangerAppWriterContext, cb: (item: RangerAppFunctionDesc) => void): Promise<void>;
241
490
  isFunction(): boolean;
242
491
  isClass(): boolean;
243
492
  isProperty(): boolean;
244
493
  }
494
+ export declare class ShapeViewDesc {
495
+ shapeName: string;
496
+ viewKind: string;
497
+ viewName: string;
498
+ className: string;
499
+ allowedCases: Array<string>;
500
+ parentView: string;
501
+ methodNames: Array<string>;
502
+ requiredMethods: Array<string>;
503
+ constructor();
504
+ }
505
+ export declare class ShapeGroupMethodSlot {
506
+ declaringGroup: string;
507
+ methodName: string;
508
+ isRequired: boolean;
509
+ hasDefault: boolean;
510
+ defaultNode?: CodeNode;
511
+ implCaseNames: Array<string>;
512
+ implNodes: Array<CodeNode>;
513
+ constructor();
514
+ }
245
515
  export declare class RangerAppMethodVariants {
246
516
  name: string;
247
517
  variants: Array<RangerAppFunctionDesc>;
@@ -274,7 +544,11 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
274
544
  is_system_union: boolean;
275
545
  is_template: boolean;
276
546
  is_serialized: boolean;
547
+ is_process: boolean;
548
+ process_path: string;
549
+ is_singleton: boolean;
277
550
  is_trait: boolean;
551
+ is_record: boolean;
278
552
  is_operator_class: boolean;
279
553
  is_generic_instance: boolean;
280
554
  is_union: boolean;
@@ -297,6 +571,7 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
297
571
  [key: string]: RangerAppMethodVariants;
298
572
  };
299
573
  has_constructor: boolean;
574
+ is_collected: boolean;
300
575
  constructor_node?: CodeNode;
301
576
  constructor_fn?: RangerAppFunctionDesc;
302
577
  has_destructor: boolean;
@@ -315,21 +590,33 @@ export declare class RangerAppClassDesc extends RangerAppParamDesc {
315
590
  is_inherited: boolean;
316
591
  is_extended_by_children: boolean;
317
592
  child_classes: Array<string>;
593
+ rust_trait_mut: {
594
+ [key: string]: boolean;
595
+ };
596
+ rust_trait_mut_ready: boolean;
597
+ rust_needs_ref_semantics: boolean;
598
+ rust_ref_reason: string;
318
599
  constructor();
319
600
  isClass(): boolean;
320
601
  isProperty(): boolean;
321
602
  doesInherit(): boolean;
603
+ isDocExampleOnly(): boolean;
322
604
  isNormalClass(): boolean;
323
605
  getSystemclassType(): string;
324
606
  isSystemclassType(typeName: string): boolean;
325
- hasTrait(class_name: string, ctx: RangerAppWriterContext): RangerAppClassDesc;
607
+ hasTrait(class_name: string, ctx: RangerAppWriterContext): RangerAppClassDesc | undefined;
326
608
  isSameOrParentClass(class_name: string, ctx: RangerAppWriterContext): boolean;
327
609
  hasOwnMethod(m_name: string): boolean;
610
+ methodParamSignature(fnDesc: RangerAppFunctionDesc): string;
611
+ hasDuplicateMethodSignature(fnDesc: RangerAppFunctionDesc): boolean;
328
612
  hasMethod(m_name: string): boolean;
329
- findMethod(f_name: string): RangerAppFunctionDesc;
613
+ findMethod(f_name: string): RangerAppFunctionDesc | undefined;
614
+ findMethodByCompiledName(compiled: string): RangerAppFunctionDesc | undefined;
615
+ isSingletonClass(): boolean;
616
+ buildSingletonAccessor(): RangerAppFunctionDesc | undefined;
330
617
  hasStaticMethod(m_name: string): boolean;
331
- findStaticMethod(f_name: string): RangerAppFunctionDesc;
332
- findVariable(f_name: string): RangerAppParamDesc;
618
+ findStaticMethod(f_name: string): RangerAppFunctionDesc | undefined;
619
+ findVariable(f_name: string): RangerAppParamDesc | undefined;
333
620
  addParentClass(p_name: string): void;
334
621
  createVariable(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
335
622
  addVariable(desc: RangerAppParamDesc): void;
@@ -346,7 +633,7 @@ export declare class RangerTypeClass {
346
633
  implements_interfaces: Array<RangerTypeClass>;
347
634
  extends_classes: Array<RangerTypeClass>;
348
635
  belongs_to_union: Array<RangerTypeClass>;
349
- description?: union_Any;
636
+ description?: any;
350
637
  is_empty: boolean;
351
638
  is_primitive: boolean;
352
639
  is_mutable: boolean;
@@ -400,7 +687,7 @@ export declare class CodeNodeLiteral {
400
687
  attrs: Array<CodeNodeLiteral>;
401
688
  constructor();
402
689
  toDictionary(): Record<string, any>;
403
- static fromDictionary(dict: Record<string, any>): Promise<CodeNodeLiteral>;
690
+ static fromDictionary(dict: Record<string, any>): CodeNodeLiteral;
404
691
  }
405
692
  export declare class CodeNode {
406
693
  code?: SourceCode;
@@ -425,9 +712,11 @@ export declare class CodeNode {
425
712
  has_lambda: boolean;
426
713
  has_lambda_call: boolean;
427
714
  has_call: boolean;
715
+ is_call_args: boolean;
428
716
  rust_needs_preevaluate: boolean;
429
717
  rust_preevaluated_args: Array<CodeNode>;
430
718
  rust_use_tmpvar: string;
719
+ rust_is_tail_return: boolean;
431
720
  operator_pred: number;
432
721
  to_the_right: boolean;
433
722
  right_node?: CodeNode;
@@ -482,6 +771,8 @@ export declare class CodeNode {
482
771
  fnDesc?: RangerAppFunctionDesc;
483
772
  lambdaFnDesc?: RangerAppFunctionDesc;
484
773
  hasParamDesc: boolean;
774
+ has_doc_tail: boolean;
775
+ docNode?: CodeNode;
485
776
  paramDesc?: RangerAppParamDesc;
486
777
  ownParamDesc?: RangerAppParamDesc;
487
778
  evalCtx?: RangerAppWriterContext;
@@ -498,14 +789,14 @@ export declare class CodeNode {
498
789
  matched_type: string;
499
790
  constructor(source: SourceCode, start: number, end: number);
500
791
  childCnt(): number;
501
- getChild(index: number): CodeNode;
792
+ getChild(index: number): CodeNode | undefined;
502
793
  chlen(): number;
503
794
  forTree(callback: (item: CodeNode, i: number) => void): Promise<void>;
504
795
  parallelTree(otherTree: CodeNode, callback: (left: CodeNode, right: CodeNode, i: number) => void): void;
505
796
  walkTreeUntil(callback: (item: CodeNode, i: number) => boolean): void;
506
797
  getParsedString(): string;
507
798
  getFilename(): string;
508
- getFlag(flagName: string): CodeNode;
799
+ getFlag(flagName: string): CodeNode | undefined;
509
800
  hasFlag(flagName: string): boolean;
510
801
  setFlag(flagName: string): void;
511
802
  getFlagInt(flagName: string, paramName: string, defaultValue: number): number;
@@ -528,7 +819,7 @@ export declare class CodeNode {
528
819
  getVRefAt(idx: number): string;
529
820
  getStringAt(idx: number): string;
530
821
  hasExpressionProperty(name: string): boolean;
531
- getExpressionProperty(name: string): CodeNode;
822
+ getExpressionProperty(name: string): CodeNode | undefined;
532
823
  hasIntProperty(name: string): boolean;
533
824
  getIntProperty(name: string): number;
534
825
  hasDoubleProperty(name: string): boolean;
@@ -545,6 +836,7 @@ export declare class CodeNode {
545
836
  isParsedAsPrimitive(): boolean;
546
837
  isPrimitiveType(): boolean;
547
838
  isAPrimitiveType(): boolean;
839
+ rangerDoubleLiteral(v: number): string;
548
840
  writeCode(wr: CodeWriter): void;
549
841
  createChainTarget(): void;
550
842
  inferDefExpressionTypeFromValue(node: CodeNode): void;
@@ -560,6 +852,9 @@ export declare class CodeNode {
560
852
  newStringNode(name: string): CodeNode;
561
853
  newExpressionNode(): CodeNode;
562
854
  getChildrenFrom(otherNode: CodeNode): void;
855
+ finalizeAsCallChainRoot(): void;
856
+ chainDotName(item: CodeNode): string;
857
+ tryDesugarNewMethodChain(): boolean;
563
858
  cloneWithType(match: RangerArgMatch, changeVref: boolean): CodeNode;
564
859
  rebuildWithType(match: RangerArgMatch, changeVref: boolean): CodeNode;
565
860
  buildTypeSignatureUsingMatch(match: RangerArgMatch): string;
@@ -571,6 +866,7 @@ export declare class CodeNode {
571
866
  typeNameAsType(ctx: RangerAppWriterContext): number;
572
867
  copyEvalResFrom(node: CodeNode): void;
573
868
  defineNodeTypeTo(node: CodeNode, ctx: RangerAppWriterContext): void;
869
+ defineNodeTypeToSelf(ctx: RangerAppWriterContext): void;
574
870
  ifNoTypeSetToVoid(): void;
575
871
  ifNoTypeSetToEvalTypeOf(node: CodeNode): boolean;
576
872
  static vref1(name: string): CodeNode;
@@ -587,6 +883,23 @@ export declare class CodeNode {
587
883
  static blockNode(): CodeNode;
588
884
  static blockFromList(list: Array<CodeNode>): CodeNode;
589
885
  }
886
+ export declare class TTypeRegistry {
887
+ constructor();
888
+ static scalarPrimitiveNames(): Array<string>;
889
+ static isIntAlias(typeName: string): boolean;
890
+ static isFloatAlias(typeName: string): boolean;
891
+ static canonicalScalar(typeName: string): string;
892
+ static bufferTypeNames(): Array<string>;
893
+ static isScalarPrimitive(typeName: string): boolean;
894
+ static isBufferType(typeName: string): boolean;
895
+ static isPrimitiveTypeName(typeName: string): boolean;
896
+ static isKnownTypeName(typeName: string): boolean;
897
+ static nameToNodeType(name: string): number;
898
+ static nodeTypeToName(valueType: number): string;
899
+ static isNodePrimitive(valueType: number): boolean;
900
+ static targetTypeString(lang: string, typeName: string): string;
901
+ static listContains(list: Array<string>, value: string): boolean;
902
+ }
590
903
  export declare class TypeCounts {
591
904
  b_counted: boolean;
592
905
  interface_cnt: number;
@@ -667,6 +980,10 @@ export declare class RangerAppWriterContext {
667
980
  targetLangName: string;
668
981
  parent?: RangerAppWriterContext;
669
982
  defined_imports: Array<string>;
983
+ active_macros: {
984
+ [key: string]: boolean;
985
+ };
986
+ macro_expansion_depth: number;
670
987
  already_imported: {
671
988
  [key: string]: boolean;
672
989
  };
@@ -804,6 +1121,10 @@ export declare class RangerAppWriterContext {
804
1121
  [key: string]: number;
805
1122
  };
806
1123
  rust_temp_counter: number;
1124
+ rust_path_field_names: {
1125
+ [key: string]: boolean;
1126
+ };
1127
+ rust_path_names_ready: boolean;
807
1128
  rootFile: string;
808
1129
  constructor();
809
1130
  rustMarkMoved(varName: string): void;
@@ -813,21 +1134,21 @@ export declare class RangerAppWriterContext {
813
1134
  rustGetUsageCount(varName: string): number;
814
1135
  rustNeedsClone(varName: string): boolean;
815
1136
  rustGetTempVar(): string;
816
- getEnv(): InputEnv;
1137
+ getEnv(): InputEnv | undefined;
817
1138
  setTestCompile(): void;
818
1139
  unsetTestCompile(): void;
819
1140
  isTestCompile(): boolean;
820
1141
  addOpFn(name: string, code: CodeNode): void;
821
1142
  getOpFns(name: string): Promise<Array<CodeNode>>;
822
- getLastBlockOp(): CodeNode;
1143
+ getLastBlockOp(): CodeNode | undefined;
823
1144
  removePluginOp(name: string): void;
824
1145
  isPluginOp(node: CodeNode): boolean;
825
1146
  addPlugin(p: RangerRegisteredPlugin): void;
826
1147
  findPluginsFor(featureName: string): Array<string>;
827
1148
  addTypeClass(name: string): RangerTypeClass;
828
- getTypeClass(name: string): RangerTypeClass;
829
- getParser(): RangerFlowParser;
830
- getCompiler(): LiveCompiler;
1149
+ getTypeClass(name: string): RangerTypeClass | undefined;
1150
+ getParser(): RangerFlowParser | undefined;
1151
+ getCompiler(): LiveCompiler | undefined;
831
1152
  getTypedNodes(name: string): Promise<Array<CodeNode>>;
832
1153
  addTypedNode(name: string, op: CodeNode): void;
833
1154
  getPluginNodes(name: string): Promise<Array<CodeNode>>;
@@ -849,7 +1170,7 @@ export declare class RangerAppWriterContext {
849
1170
  addViewClassBody(name: string, classDef: CodeNode): void;
850
1171
  addPage(name: string, classDef: CodeNode): void;
851
1172
  addService(name: string, classDef: CodeNode): void;
852
- getViewClass(s_name: string): CodeNode;
1173
+ getViewClass(s_name: string): CodeNode | undefined;
853
1174
  addOpNs(n: string): void;
854
1175
  removeOpNs(n: string): void;
855
1176
  inLambda(): boolean;
@@ -865,12 +1186,16 @@ export declare class RangerAppWriterContext {
865
1186
  addCapturedVariable(name: string): void;
866
1187
  getCapturedVariables(): Array<string>;
867
1188
  transformOpNameWord(input_word: string): string;
1189
+ transformMemberWord(input_word: string): string;
1190
+ transformBindingWord(input_word: string): string;
868
1191
  transformWord(input_word: string): string;
1192
+ getTargetLangName(): string;
869
1193
  initReservedWords(): boolean;
870
1194
  initStdCommands(): boolean;
871
1195
  transformTypeName(typeName: string): string;
872
1196
  isPrimitiveType(typeName: string): boolean;
873
1197
  isDefinedType(typeName: string): boolean;
1198
+ isDefinedCollectionType(typeName: string): boolean;
874
1199
  hadValidType(node: CodeNode): boolean;
875
1200
  findOperator(node: CodeNode): CodeNode;
876
1201
  getStdCommands(): CodeNode;
@@ -880,9 +1205,10 @@ export declare class RangerAppWriterContext {
880
1205
  createStaticMethod(withName: string, currC: RangerAppClassDesc, nameNode: CodeNode, argsNode: CodeNode, fnBody: CodeNode, parser: RangerFlowParser, wr: CodeWriter): Promise<RangerAppFunctionDesc>;
881
1206
  canUseTypeInference(nameNode: CodeNode): boolean;
882
1207
  createOpStaticClass(name: string): RangerAppClassDesc;
883
- createTraitInstanceClass(traitName: string, instanceName: string, initParams: CodeNode, flowParser: RangerFlowParser, wr: CodeWriter): Promise<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;
884
1210
  createOperator(fromNode: CodeNode): void;
885
- findClassMethod(cname: string, fname: string): RangerAppFunctionDesc;
1211
+ findClassMethod(cname: string, fname: string): RangerAppFunctionDesc | undefined;
886
1212
  getFileWriter(path: string, fileName: string): CodeWriter;
887
1213
  addTodo(node: CodeNode, descr: string): void;
888
1214
  setThisName(the_name: string): void;
@@ -899,7 +1225,7 @@ export declare class RangerAppWriterContext {
899
1225
  setStaticWriter(className: string, writer: CodeWriter): void;
900
1226
  getStaticWriter(className: string): CodeWriter;
901
1227
  isEnumDefined(n: string): boolean;
902
- getEnum(n: string): RangerAppEnum;
1228
+ getEnum(n: string): RangerAppEnum | undefined;
903
1229
  isVarDefined(name: string): boolean;
904
1230
  setFlag(name: string, value: boolean): void;
905
1231
  getFlag(name: string): boolean;
@@ -919,6 +1245,7 @@ export declare class RangerAppWriterContext {
919
1245
  getFnVarCnt2(name: string): number;
920
1246
  getFnVarCnt3(name: string): number;
921
1247
  isMemberVariable(name: string): boolean;
1248
+ assignParamCompiledName(p: RangerAppParamDesc): void;
922
1249
  defineVariable(name: string, desc: RangerAppParamDesc): void;
923
1250
  isDefinedClass(name: string): boolean;
924
1251
  getRoot(): RangerAppWriterContext;
@@ -930,7 +1257,7 @@ export declare class RangerAppWriterContext {
930
1257
  setCurrentClass(cc: RangerAppClassDesc): void;
931
1258
  disableCurrentClass(): void;
932
1259
  hasCurrentClass(): boolean;
933
- getCurrentClass(): RangerAppClassDesc;
1260
+ getCurrentClass(): RangerAppClassDesc | undefined;
934
1261
  restartExpressionLevel(): void;
935
1262
  newBlock(): void;
936
1263
  isInExpression(): boolean;
@@ -946,12 +1273,70 @@ export declare class RangerAppWriterContext {
946
1273
  isInMethod(): boolean;
947
1274
  setInMethod(): void;
948
1275
  unsetInMethod(): void;
949
- findMethodLevelContext(): RangerAppWriterContext;
950
- findClassLevelContext(): RangerAppWriterContext;
1276
+ findMethodLevelContext(): RangerAppWriterContext | undefined;
1277
+ findClassLevelContext(): RangerAppWriterContext | undefined;
951
1278
  fork(): RangerAppWriterContext;
952
1279
  getRootFile(): string;
953
1280
  setRootFile(file_name: string): void;
954
1281
  }
1282
+ export declare class SourceMapEntry {
1283
+ genLine: number;
1284
+ genCol: number;
1285
+ sourceIdx: number;
1286
+ origLine: number;
1287
+ origCol: number;
1288
+ nameIdx: number;
1289
+ constructor();
1290
+ }
1291
+ export declare class SourceMapBuilder {
1292
+ mappings: Array<SourceMapEntry>;
1293
+ sources: Array<string>;
1294
+ sourceToIdx: {
1295
+ [key: string]: number;
1296
+ };
1297
+ sourcesContent: Array<string>;
1298
+ names: Array<string>;
1299
+ nameToIdx: {
1300
+ [key: string]: number;
1301
+ };
1302
+ outputFile: string;
1303
+ constructor();
1304
+ isSyntheticSource(sourceFile: string): boolean;
1305
+ registerSourceIdx(sourceFile: string, sourceContent: string): number;
1306
+ registerNameIdx(name: string): number;
1307
+ addMapping(genLine: number, genCol: number, sourceFile: string, sourceContent: string, origLine: number, origCol: number, name: string): void;
1308
+ addMappingFromNode(genLine: number, genCol: number, node: CodeNode, name: string): void;
1309
+ vlqBase64Chars(): string;
1310
+ encodeVLQUnsigned(value: number): string;
1311
+ encodeSignedVLQ(value: number): string;
1312
+ buildMappingsString(): string;
1313
+ jsonEscape(value: string): string;
1314
+ jsonStringArray(items: Array<string>): string;
1315
+ toJSON(fileName: string): string;
1316
+ hasMappings(): boolean;
1317
+ }
1318
+ export declare class RangerSourceFormat {
1319
+ constructor();
1320
+ static defaultWidthFor(ext: string): number;
1321
+ static dotLeadsLine(ext: string): boolean;
1322
+ static isSpaceCode(c: number): boolean;
1323
+ static indentOf(line: string): string;
1324
+ static isCommentOrEmpty(line: string): boolean;
1325
+ static codeEndOf(line: string): number;
1326
+ static chainSplits(line: string): Array<number>;
1327
+ static breakChainLine(line: string, ext: string): string;
1328
+ static isCallKeyword(word: string): boolean;
1329
+ static isWordCode(c: number): boolean;
1330
+ static wordBefore(line: string, i: number): string;
1331
+ static argListOpen(line: string): number;
1332
+ static topCommaCount(line: string, open: number, limit: number): number;
1333
+ static topCommaAt(line: string, open: number, limit: number): Array<number>;
1334
+ static codeTailChar(line: string): number;
1335
+ static breakArgLine(line: string, ext: string): string;
1336
+ static hasOpenString(line: string): boolean;
1337
+ static breakRustBlockLine(line: string, ext: string): string;
1338
+ static formatSource(text: string, ext: string, width: number): string;
1339
+ }
955
1340
  export declare class CodeFile {
956
1341
  path_name: string;
957
1342
  name: string;
@@ -961,19 +1346,26 @@ export declare class CodeFile {
961
1346
  };
962
1347
  import_names: Array<string>;
963
1348
  fileSystem?: CodeFileSystem;
1349
+ sourceMapBuilder?: SourceMapBuilder;
964
1350
  constructor(filePath: string, fileName: string);
1351
+ initSourceMapsIfNeeded(mapsEnabled: boolean): void;
965
1352
  addImport(import_name: string): void;
966
1353
  rewrite(newString: string): void;
967
1354
  testCreateWriter(): CodeWriter;
968
1355
  getImports(): Array<string>;
969
- getWriter(): CodeWriter;
1356
+ getWriter(): CodeWriter | undefined;
970
1357
  getCode(): string;
971
1358
  }
972
1359
  export declare class CodeFileSystem {
973
1360
  files: Array<CodeFile>;
1361
+ sourceMapsEnabled: boolean;
1362
+ formatWidth: number;
974
1363
  constructor();
1364
+ enableSourceMaps(): void;
1365
+ shouldWriteSourceMaps(): boolean;
975
1366
  getFile(path: string, name: string): CodeFile;
976
1367
  mkdir(path: string): void;
1368
+ isJsOutputFile(fileName: string): boolean;
977
1369
  saveTo(path: string, verbose: boolean): void;
978
1370
  }
979
1371
  export declare class CodeSlice {
@@ -984,11 +1376,16 @@ export declare class CodeSlice {
984
1376
  }
985
1377
  export declare class CodeWriter {
986
1378
  tagName: string;
1379
+ suppress_expr_parens: boolean;
1380
+ current_op_no_parens: boolean;
1381
+ in_format_args: boolean;
1382
+ parent_binding: number;
987
1383
  codeStr: string;
988
1384
  currentLine: string;
989
1385
  tabStr: string;
990
1386
  nlStr: string;
991
1387
  lineNumber: number;
1388
+ columnNumber: number;
992
1389
  indentAmount: number;
993
1390
  compiledTags: {
994
1391
  [key: string]: boolean;
@@ -1003,8 +1400,24 @@ export declare class CodeWriter {
1003
1400
  tagOffset: number;
1004
1401
  parent?: CodeWriter;
1005
1402
  had_nl: boolean;
1403
+ sourceMapsEnabled: boolean;
1404
+ sourceMapBuilder?: SourceMapBuilder;
1405
+ mappingNodeStack: Array<CodeNode>;
1406
+ mappingNameStack: Array<string>;
1407
+ walkNodeStack: Array<CodeNode>;
1006
1408
  constructor();
1007
1409
  rewrite(newString: string): void;
1410
+ enableSourceMaps(builder: SourceMapBuilder): void;
1411
+ getActiveSourceMapBuilder(): SourceMapBuilder | undefined;
1412
+ pushMappingNode(node: CodeNode, name: string): void;
1413
+ popMappingNode(): void;
1414
+ getCurrentMappingNode(): CodeNode | undefined;
1415
+ getCurrentMappingName(): string;
1416
+ pushWalkNode(node: CodeNode): void;
1417
+ popWalkNode(): void;
1418
+ getCurrentWalkNode(): CodeNode | undefined;
1419
+ recordCurrentMapping(): void;
1420
+ outMapped(str: string, node: CodeNode, newLine: boolean, name: string): void;
1008
1421
  getFilesystem(): CodeFileSystem;
1009
1422
  getFileWriter(path: string, fileName: string): CodeWriter;
1010
1423
  getImports(): Array<string>;
@@ -1017,6 +1430,8 @@ export declare class CodeWriter {
1017
1430
  fork(): CodeWriter;
1018
1431
  newline(): void;
1019
1432
  line_end(str: string): void;
1433
+ advanceColumnForString(str: string): void;
1434
+ syncColumnFromCurrentLine(): void;
1020
1435
  writeSlice(str: string, newLine: boolean): void;
1021
1436
  out(str: string, newLine: boolean): void;
1022
1437
  raw(str: string, newLine: boolean): void;
@@ -1025,6 +1440,7 @@ export declare class CodeWriter {
1025
1440
  }
1026
1441
  export declare class RangerLispParser {
1027
1442
  code?: SourceCode;
1443
+ source_text: string;
1028
1444
  buff?: string;
1029
1445
  __len: number;
1030
1446
  i: number;
@@ -1038,18 +1454,42 @@ export declare class RangerLispParser {
1038
1454
  curr_node?: CodeNode;
1039
1455
  had_error: boolean;
1040
1456
  disableOperators: boolean;
1457
+ recv_tmp_count: number;
1458
+ last_call_group?: CodeNode;
1459
+ pending_comments: Array<CodeNode>;
1041
1460
  constructor(code_module: SourceCode);
1042
1461
  joo(cm: SourceCode): void;
1043
1462
  parse_raw_annotation(): CodeNode;
1044
- skip_space(is_block_parent: boolean): boolean;
1045
- end_expression(): boolean;
1046
- getOperator(disabled: boolean): number;
1047
- isOperator(disabled: boolean): number;
1463
+ skip_space(s: string, is_block_parent: boolean): boolean;
1464
+ end_expression(consumeCurrent: boolean): boolean;
1465
+ getOperator(s: string, disabled: boolean): number;
1466
+ isOperator(s: string, disabled: boolean): number;
1048
1467
  getOperatorPred(str: string, disabled: boolean): number;
1468
+ isComparisonOpPred(pred: number): boolean;
1469
+ isFoldableInfixPred(pred: number): boolean;
1470
+ isDotVRef(n: CodeNode): boolean;
1471
+ isDotCallPairOnNode(node: CodeNode): boolean;
1472
+ isCallChainOnNode(node: CodeNode): boolean;
1473
+ foldCallChainToGroup(node: CodeNode): void;
1474
+ foldDotCallPairToGroup(node: CodeNode): void;
1475
+ isPlainDotCallee(n: CodeNode, paren_pos: number): boolean;
1476
+ isChainTailCallee(n: CodeNode, paren_pos: number): boolean;
1477
+ insertCallOrNode(p_node: CodeNode): boolean;
1478
+ tryCloseCallArgParenBeforeInfix(): boolean;
1049
1479
  insert_node(p_node: CodeNode): void;
1050
- parse_attributes(): boolean;
1051
- parseXML(): void;
1480
+ attachPendingComments(node: CodeNode): void;
1481
+ parse_attributes(s: string): boolean;
1482
+ parseXML(s: string): void;
1052
1483
  parse(disable_ops: boolean): void;
1484
+ parseBuf(s: string, disable_ops: boolean): void;
1485
+ static normalizeLineEndings(src: string): string;
1486
+ }
1487
+ export declare class TTypes {
1488
+ constructor();
1489
+ static nameToValue(name: string): number;
1490
+ static isPrimitive(valueType: number): boolean;
1491
+ static valueAsString(valueType: number): string;
1492
+ static baseTypeAsEval(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1053
1493
  }
1054
1494
  export declare class RangerArgMatch {
1055
1495
  _debug: boolean;
@@ -1065,6 +1505,7 @@ export declare class RangerArgMatch {
1065
1505
  matchedLambdas: {
1066
1506
  [key: string]: CodeNode;
1067
1507
  };
1508
+ typeParamNames: Array<string>;
1068
1509
  constructor();
1069
1510
  matchArguments(args: CodeNode, callArgs: CodeNode, ctx: RangerAppWriterContext, firstArgIndex: number): boolean;
1070
1511
  force_add(tplKeyword: string, typeName: string, ctx: RangerAppWriterContext): void;
@@ -1073,11 +1514,17 @@ export declare class RangerArgMatch {
1073
1514
  add_atype(tplKeyword: string, typeName: string, ctx: RangerAppWriterContext): boolean;
1074
1515
  doesDefsMatch(arg: CodeNode, node: CodeNode, ctx: RangerAppWriterContext): boolean;
1075
1516
  doesMatch(arg: CodeNode, node: CodeNode, ctx: RangerAppWriterContext): boolean;
1076
- areEqualTypes(type1: string, type2: string, ctx: RangerAppWriterContext): boolean;
1077
- areEqualATypes(type1: string, type2: string, ctx: RangerAppWriterContext): boolean;
1517
+ areEqualTypes(type1o: string, type2o: string, ctx: RangerAppWriterContext): boolean;
1518
+ areEqualATypes(type1i: string, type2i: string, ctx: RangerAppWriterContext): boolean;
1519
+ addTypeParam(tplKeyword: string, typeName: string): boolean;
1520
+ isCollectionParam(n: string): boolean;
1521
+ applyCollectionType(node: CodeNode, n: string): void;
1078
1522
  getTypeName(n: string): string;
1079
1523
  getType(n: string): number;
1080
1524
  setRvBasedOn(arg: CodeNode, node: CodeNode): boolean;
1525
+ nodeTypeString(node: CodeNode): string;
1526
+ isCollectionTypeString(s: string): boolean;
1527
+ applyTypeStringToNode(node: CodeNode, typeStr: string): void;
1081
1528
  }
1082
1529
  export declare class DictNode {
1083
1530
  is_property: boolean;
@@ -1100,28 +1547,32 @@ export declare class DictNode {
1100
1547
  addDouble(key: string, value: number): void;
1101
1548
  addInt(key: string, value: number): void;
1102
1549
  addBoolean(key: string, value: boolean): void;
1103
- addObject(key: string): DictNode;
1550
+ addObject(key: string): DictNode | undefined;
1104
1551
  setObject(key: string, value: DictNode): void;
1105
- addArray(key: string): DictNode;
1552
+ addArray(key: string): DictNode | undefined;
1106
1553
  push(obj: DictNode): void;
1107
1554
  getDoubleAt(index: number): number;
1108
1555
  getStringAt(index: number): string;
1109
1556
  getIntAt(index: number): number;
1110
1557
  getBooleanAt(index: number): boolean;
1111
- getString(key: string): string;
1112
- getDouble(key: string): number;
1113
- getInt(key: string): number;
1114
- getBoolean(key: string): boolean;
1115
- getArray(key: string): DictNode;
1116
- getArrayAt(index: number): DictNode;
1117
- getObject(key: string): DictNode;
1118
- getObjectAt(index: number): DictNode;
1558
+ getString(key: string): string | undefined;
1559
+ getDouble(key: string): number | undefined;
1560
+ getInt(key: string): number | undefined;
1561
+ getBoolean(key: string): boolean | undefined;
1562
+ getArray(key: string): DictNode | undefined;
1563
+ getArrayAt(index: number): DictNode | undefined;
1564
+ getObject(key: string): DictNode | undefined;
1565
+ getObjectAt(index: number): DictNode | undefined;
1119
1566
  stringify(): string;
1120
1567
  static createEmptyObject(): DictNode;
1121
1568
  }
1122
1569
  export declare class RangerSerializeClass {
1123
1570
  constructor();
1124
1571
  isSerializedClass(cName: string, ctx: RangerAppWriterContext): boolean;
1572
+ canSerializeClass(cName: string, ctx: RangerAppWriterContext): boolean;
1573
+ missesSerializeSupport(cName: string, ctx: RangerAppWriterContext): boolean;
1574
+ describeFieldType(nn: CodeNode): string;
1575
+ validateSerializedClass(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
1125
1576
  createWRWriter(pvar: RangerAppParamDesc, nn: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1126
1577
  createJSONSerializerFn(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1127
1578
  createWRWriter2(pvar: RangerAppParamDesc, nn: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
@@ -1133,6 +1584,55 @@ export declare class RangerImmutableExtension {
1133
1584
  typeDefOf(p: RangerAppParamDesc): string;
1134
1585
  createImmutableExtension(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1135
1586
  }
1587
+ export declare class RangerProcessLifecycle {
1588
+ constructor();
1589
+ emitInvokeMethods(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter, regName: string): void;
1590
+ emitStopSubtree(cl: RangerAppClassDesc, wr: CodeWriter, regName: string): void;
1591
+ }
1592
+ export declare class RangerProcessClass {
1593
+ constructor();
1594
+ emitAssignProcessId(wr: CodeWriter): void;
1595
+ createProcessExtension(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter, typeId: number): void;
1596
+ emitStaticHelpers(cl: RangerAppClassDesc, typeId: number, wr: CodeWriter, regName: string): void;
1597
+ emitProcessNameRegistryExtension(processClasses: Array<RangerAppClassDesc>, wr: CodeWriter): void;
1598
+ emitProcessRuntimeExtension(processClasses: Array<RangerAppClassDesc>, wr: CodeWriter): void;
1599
+ emitProcessTypeScriptHelpers(processClasses: Array<RangerAppClassDesc>, wr: CodeWriter): void;
1600
+ }
1601
+ export declare class RangerProcessProcSend {
1602
+ constructor();
1603
+ static isReservedHandler(name: string): boolean;
1604
+ static collectProcessClasses(ctx: RangerAppWriterContext): Array<RangerAppClassDesc>;
1605
+ 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;
1608
+ static buildLiveGuard(targetVref: string): CodeNode;
1609
+ static buildHandlerCall(targetVref: string, handlerName: string, argNodes: Array<CodeNode>): CodeNode;
1610
+ static buildFindRootExpr(targetVref: string): CodeNode;
1611
+ static buildDispatchTurnBoundary(opName: string, rootExpr: CodeNode): CodeNode;
1612
+ static transform(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1613
+ }
1614
+ export declare class RangerProcessProcStartCheck {
1615
+ constructor();
1616
+ static validate(parser: RangerFlowParser, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1617
+ }
1618
+ export declare class RangerProcessCodegen {
1619
+ constructor();
1620
+ validateProcessNewSite(node: CodeNode, newCl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
1621
+ shouldWrapProcessNew(procNewNode: CodeNode, procNewCtx: RangerAppWriterContext): boolean;
1622
+ hasParentRegister(procNewCtx: RangerAppWriterContext): boolean;
1623
+ writeNewArgs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, writer: RangerGenericClassWriter): Promise<void>;
1624
+ writeProcessInstanceRegisterCall(wr: CodeWriter, lang: string): void;
1625
+ shouldUseProcessInstanceRegister(procNewCtx: RangerAppWriterContext, newCl: RangerAppClassDesc): boolean;
1626
+ 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>;
1631
+ static isNamedProcess(cl: RangerAppClassDesc): boolean;
1632
+ static isInProcessInstanceMethod(ctx: RangerAppWriterContext): boolean;
1633
+ static isBootstrapSite(ctx: RangerAppWriterContext): boolean;
1634
+ static isInsideNamedProcessMethod(ctx: RangerAppWriterContext): boolean;
1635
+ }
1136
1636
  export declare class RangerServiceBuilder {
1137
1637
  constructor();
1138
1638
  createOpStaticClass(ctx: RangerAppWriterContext, name: string): RangerAppClassDesc;
@@ -1155,12 +1655,50 @@ export declare class TFiles {
1155
1655
  static searchEnv(env: InputEnv, paths: Array<string>, fileName: string): string;
1156
1656
  static search(paths: Array<string>, fileName: string): string;
1157
1657
  }
1158
- export declare class TTypes {
1658
+ export declare class PkgHit {
1659
+ ok: boolean;
1660
+ err: string;
1661
+ dir: string;
1662
+ name: string;
1663
+ packageId: string;
1159
1664
  constructor();
1160
- static nameToValue(name: string): number;
1161
- static isPrimitive(valueType: number): boolean;
1162
- static valueAsString(valueType: number): string;
1163
- static baseTypeAsEval(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1665
+ }
1666
+ export declare class PkgJVal {
1667
+ kind: string;
1668
+ str: string;
1669
+ keys: Array<string>;
1670
+ vals: Array<PkgJVal>;
1671
+ constructor();
1672
+ }
1673
+ export declare class PkgJRead {
1674
+ text: string;
1675
+ i: number;
1676
+ n: number;
1677
+ ok: boolean;
1678
+ constructor();
1679
+ parse(src: string): PkgJVal;
1680
+ skipWs(): void;
1681
+ val(): PkgJVal;
1682
+ obj(): PkgJVal;
1683
+ quoted(): string;
1684
+ static child(obj: PkgJVal, key: string): PkgJVal | undefined;
1685
+ static strOf(obj: PkgJVal, key: string): string;
1686
+ }
1687
+ export declare class PkgImport {
1688
+ constructor();
1689
+ static isPkg(spec: string): boolean;
1690
+ static stripDot(spec: string): string;
1691
+ static cacheRoot(): string;
1692
+ static joinPath(a: string, b: string): string;
1693
+ static foldPath(path: string): string;
1694
+ static splitName(path: string): Array<string>;
1695
+ static parentDir(dir: string): string;
1696
+ static findManifestDir(env: InputEnv, start: string, paths: Array<string>): string;
1697
+ static walkUp(env: InputEnv, start: string): string;
1698
+ static readText(env: InputEnv, dir: string, name: string): Promise<string>;
1699
+ static findChar(s: string, code: number): number;
1700
+ static resolve(env: InputEnv, startDir: string, spec: string, libraryPaths: Array<string>): Promise<PkgHit>;
1701
+ static lockRoot(env: InputEnv, lockText: string, pkgName: string, manDir: string): string;
1164
1702
  }
1165
1703
  export declare class ClassJoinPoint {
1166
1704
  class_def?: RangerAppClassDesc;
@@ -1172,16 +1710,89 @@ export declare class WalkLater {
1172
1710
  callArg?: CodeNode;
1173
1711
  constructor();
1174
1712
  }
1713
+ export declare class RangerFnParts {
1714
+ ok: boolean;
1715
+ nameNode?: CodeNode;
1716
+ fnArgs?: CodeNode;
1717
+ fnBody?: CodeNode;
1718
+ desc?: RangerAppClassDesc;
1719
+ constructor();
1720
+ }
1175
1721
  export declare class RangerFlowParser {
1176
1722
  hasRootPath: boolean;
1177
1723
  rootPath: string;
1178
1724
  _debug: boolean;
1725
+ treeChildCall: {
1726
+ [key: string]: string;
1727
+ };
1728
+ treeTextField: {
1729
+ [key: string]: string;
1730
+ };
1731
+ treeTags: {
1732
+ [key: string]: string;
1733
+ };
1734
+ treeTagDefaults: {
1735
+ [key: string]: CodeNode;
1736
+ };
1737
+ treeFactoryNames: {
1738
+ [key: string]: boolean;
1739
+ };
1740
+ treeTmpCount: number;
1741
+ shapeCases: {
1742
+ [key: string]: Array<string>;
1743
+ };
1744
+ shapeGroupCases: {
1745
+ [key: string]: Array<string>;
1746
+ };
1747
+ caseAlias: {
1748
+ [key: string]: string;
1749
+ };
1750
+ groupAlias: {
1751
+ [key: string]: string;
1752
+ };
1753
+ caseShape: {
1754
+ [key: string]: string;
1755
+ };
1756
+ caseDisplay: {
1757
+ [key: string]: string;
1758
+ };
1759
+ caseIsValue: {
1760
+ [key: string]: boolean;
1761
+ };
1762
+ caseFieldNames: {
1763
+ [key: string]: Array<string>;
1764
+ };
1765
+ shapeViews: {
1766
+ [key: string]: ShapeViewDesc;
1767
+ };
1768
+ shapeGroupParent: {
1769
+ [key: string]: string;
1770
+ };
1771
+ shapeGroupFields: {
1772
+ [key: string]: Array<string>;
1773
+ };
1774
+ shapeGroupFieldTypeName: {
1775
+ [key: string]: string;
1776
+ };
1777
+ shapeGroupFieldArrayType: {
1778
+ [key: string]: string;
1779
+ };
1780
+ shapeGroupFieldKeyType: {
1781
+ [key: string]: string;
1782
+ };
1783
+ shapeGroupAllValue: {
1784
+ [key: string]: boolean;
1785
+ };
1786
+ shapeCaseCtorArgs: {
1787
+ [key: string]: string;
1788
+ };
1179
1789
  stdCommands?: CodeNode;
1180
1790
  lastProcessedNode?: CodeNode;
1181
1791
  collectWalkAtEnd: Array<CodeNode>;
1182
1792
  walkAlso: Array<CodeNode>;
1183
1793
  serializedClasses: Array<RangerAppClassDesc>;
1184
1794
  immutableClasses: Array<RangerAppClassDesc>;
1795
+ processClasses: Array<RangerAppClassDesc>;
1185
1796
  classesWithTraits: Array<ClassJoinPoint>;
1186
1797
  collectedIntefaces: Array<RangerAppClassDesc>;
1187
1798
  definedInterfaces: {
@@ -1200,11 +1811,13 @@ export declare class RangerFlowParser {
1200
1811
  [key: string]: string;
1201
1812
  };
1202
1813
  allNewRNodes: Array<CodeNode>;
1814
+ inline_static_depth: number;
1203
1815
  infinite_recursion: boolean;
1204
1816
  match_types: {
1205
1817
  [key: string]: string;
1206
1818
  };
1207
1819
  constructor();
1820
+ fixExpressionAssignmentChains(node: CodeNode): void;
1208
1821
  WalkNodeChildren(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1209
1822
  WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1210
1823
  getVoidNameSignature(): string;
@@ -1213,20 +1826,31 @@ export declare class RangerFlowParser {
1213
1826
  getThisName(): string;
1214
1827
  GetProperty(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1215
1828
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1216
- EnterFn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, callback: (node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, nameNode: CodeNode, fnArgs: CodeNode, fnBody: CodeNode, desc: RangerAppClassDesc) => void): Promise<void>;
1829
+ EnterFnParts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<RangerFnParts>;
1217
1830
  Constructor(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1218
1831
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1832
+ normalizeNewArgList(node: CodeNode): void;
1219
1833
  cmdNew(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1220
1834
  transformParams(list: Array<CodeNode>, fnArgs: Array<RangerAppParamDesc>, ctx: RangerAppWriterContext): Array<CodeNode>;
1221
1835
  transformParams2(list: Array<CodeNode>, fnArgs: Array<CodeNode>, ctx: RangerAppWriterContext): Array<CodeNode>;
1222
1836
  CreateCTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1223
1837
  CreateRTTI(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1838
+ walkXmlCreate(xmlNode: CodeNode, regName: string, in_currCnt: number, opBody: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<number>;
1839
+ markAsyncFrom(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>): Promise<void>;
1840
+ markAsyncFromVariant(f: RangerAppFunctionDesc, visited: Array<RangerAppFunctionDesc>, ctx: RangerAppWriterContext): Promise<void>;
1841
+ markCalledFromMain(f: RangerAppFunctionDesc, ctx: RangerAppWriterContext): Promise<void>;
1224
1842
  SolveAsyncFuncs(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1843
+ matchMethodCall(cl: RangerAppClassDesc, methodName: string, callArgs: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, errNode: CodeNode): Promise<RangerAppFunctionDesc> | undefined;
1225
1844
  cmdCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1226
1845
  matchLambdaArgs(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1227
1846
  testLambdaCallArgs(lambda_expression: CodeNode, callParams: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1228
1847
  cmdLocalCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1229
1848
  transformImmutableAssigment(node: CodeNode): CodeNode;
1849
+ transformDotMethodCallExpr(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1850
+ repairUnaryMinusExpr(node: CodeNode): void;
1851
+ repairAssignUnaryMinusRhs(node: CodeNode): void;
1852
+ repairAssignMethodCallRhs(node: CodeNode): void;
1853
+ checkInitializedObjectReceiver(receiverName: string, node: CodeNode, ctx: RangerAppWriterContext): void;
1230
1854
  cmdAssign(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1231
1855
  EnterTemplateClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1232
1856
  EnterClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1238,30 +1862,119 @@ export declare class RangerFlowParser {
1238
1862
  testCompile(opFn: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<{
1239
1863
  [key: string]: CodeNode;
1240
1864
  }>;
1865
+ inlineStaticEligible(m: RangerAppFunctionDesc, fnNode: CodeNode, ctx: RangerAppWriterContext): Promise<boolean>;
1866
+ tryInlineTrivialStatic(node: CodeNode, fnNode: CodeNode, m: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1241
1867
  TransformOpFn(opFnList: Array<CodeNode>, origNode: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1242
1868
  cmdArray(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1243
1869
  EnterLambdaMethod(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1870
+ annotationIsTypeArgs(tAnn: CodeNode, ctx: RangerAppWriterContext): boolean;
1871
+ normalizeTypeArg(ch: CodeNode): void;
1872
+ genericInstanceName(baseName: string, tAnn: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<string>;
1873
+ typeArgKey(spelling: string): string;
1244
1874
  CheckVRefTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1245
1875
  CheckTypeAnnotationOf(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1246
1876
  matchNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1247
1877
  StartWalk(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1248
1878
  clearImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1879
+ registerLangSystemClasses(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1880
+ walkLangDefinitions(node: CodeNode, ctx: RangerAppWriterContext): void;
1881
+ registerSystemClassFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
1882
+ registerSystemUnionFromNode(node: CodeNode, ctx: RangerAppWriterContext): void;
1883
+ finalizeRecordClasses(ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1884
+ expandRecordCtorArgsIfNeeded(cl: RangerAppClassDesc, fnDescr: RangerAppFunctionDesc, params: CodeNode, node: CodeNode): void;
1885
+ buildRecordConstructor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1886
+ prepareImport(ctx: RangerAppWriterContext, spec: string): Promise<PkgHit>;
1249
1887
  mergeImports(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1888
+ DesugarTrees(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1889
+ reportStrayTrees(node: CodeNode, ctx: RangerAppWriterContext): void;
1890
+ isTreeFactoryDeclaration(node: CodeNode): boolean;
1891
+ collectTreeFactories(node: CodeNode, atTopLevel: boolean, ctx: RangerAppWriterContext): void;
1892
+ registerTreeFactory(node: CodeNode, ctx: RangerAppWriterContext): void;
1893
+ isTreeLiteral(node: CodeNode): boolean;
1894
+ expandTreesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1895
+ expandTreesInBlock(block: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1896
+ lowerTreesIn(node: CodeNode, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1897
+ rewriteAsVRef(node: CodeNode, name: string): void;
1898
+ lowerTreeElement(el: CodeNode, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1899
+ isTreeKeyword(node: CodeNode, word: string): boolean;
1900
+ lowerComputedChildren(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1901
+ treeCall(at_node: CodeNode, reg: string, method: string, arg: CodeNode): CodeNode;
1902
+ lowerTreeProps(propsNode: CodeNode, reg: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1903
+ treeAssign(at_node: CodeNode, reg: string, field: string, value: CodeNode): CodeNode;
1904
+ lowerTreeChild(ch: CodeNode, reg: string, fname: string, prelude: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1905
+ DesugarShapes(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1906
+ isShapeDeclaration(node: CodeNode): boolean;
1907
+ expandShapesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, renames: {
1908
+ [key: string]: string;
1909
+ }): void;
1910
+ expandShapesInScope(node: CodeNode, atTopLevel: boolean, ctx: RangerAppWriterContext, wr: CodeWriter, renames: {
1911
+ [key: string]: string;
1912
+ }): void;
1913
+ registerShapeAlias(target: {
1914
+ [key: string]: string;
1915
+ }, alias: string, clsName: string): void;
1916
+ shapeFieldIsScalar(fieldNode: CodeNode): boolean;
1917
+ shapeFieldName(fieldNode: CodeNode): string;
1918
+ shapeMemberBlock(st: CodeNode): CodeNode;
1919
+ shapeMemberIsField(st: CodeNode): boolean;
1920
+ shapeMemberIsMethod(st: CodeNode): boolean;
1921
+ shapeMethodHasBody(st: CodeNode): boolean;
1922
+ shapeMethodSignatureKey(mNode: CodeNode): string;
1923
+ rewriteMethodFieldRefs(node: CodeNode, fieldNames: Array<string>, selfName: string): void;
1924
+ findOpsClassBlock(root: CodeNode): CodeNode | undefined;
1925
+ attachOpsMethods(opsRoot: CodeNode, viewName: string, methodNodes: Array<CodeNode>, methodStatic: Array<boolean>, fieldNames: Array<string>, ctx: RangerAppWriterContext): void;
1926
+ attachShapeMethods(eqRoot: CodeNode, shapeName: string, opsName: string, methodNodes: Array<CodeNode>, methodNames: Array<string>, methodStatic: Array<boolean>, ctx: RangerAppWriterContext): void;
1927
+ parseOpsClassRoot(src: string, filename: string, shapeNode: CodeNode, ctx: RangerAppWriterContext): CodeNode | undefined;
1928
+ registerShapeView(shapeName: string, viewKind: string, viewName: string, className: string, allowed: Array<string>, parentView: string): void;
1929
+ shapeTypeSpelling(typeName: string, arrayType: string, keyType: string): string;
1930
+ shapeGroupHasField(groupCls: string, fieldName: string): boolean;
1931
+ buildGroupFieldAccessorSrc(shapeName: string, gn: string, gClsName: string, mems: Array<string>, fieldNames: Array<string>, allowSet: boolean): string;
1932
+ rewriteToGroupFieldGet(node: CodeNode, receiver: CodeNode, fieldName: string, groupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1933
+ rewriteToGroupWiden(node: CodeNode, targetGroupCls: string, sourceGroupCls: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1934
+ expandShape(shapeNode: CodeNode, parent: CodeNode, shapeIndex: number, ctx: RangerAppWriterContext, wr: CodeWriter, renames: {
1935
+ [key: string]: string;
1936
+ }): void;
1937
+ isMatchStatement(node: CodeNode): boolean;
1938
+ expandMatchesIn(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1939
+ expandMatchesInFn(node: CodeNode, enclosing: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1940
+ expandGroupKindTests(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1941
+ buildCaseKindTest(proto: CodeNode, scrutinee: CodeNode, cls: string): CodeNode;
1942
+ declaredTypeOf(fnNode: CodeNode, name: string): string;
1943
+ declaredTypeInBody(node: CodeNode, name: string): string;
1944
+ matchArmCases(armName: string, node: CodeNode, ctx: RangerAppWriterContext): Array<string>;
1945
+ expandMatch(matchNode: CodeNode, parent: CodeNode, matchIndex: number, enclosing: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1946
+ setShapeRef(node: CodeNode, replacement: string): void;
1947
+ rewriteShapeRefs(node: CodeNode, renames: {
1948
+ [key: string]: string;
1949
+ }): void;
1950
+ isClassMemberForm(node: CodeNode): boolean;
1951
+ markParentClass(ee: CodeNode, childName: string, ctx: RangerAppWriterContext): void;
1952
+ WalkCollectTemplates(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1953
+ isDocumentableHead(name: string): boolean;
1954
+ DetachDocBlocks(node: CodeNode, ctx: RangerAppWriterContext): void;
1250
1955
  CollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1251
1956
  defineFunctionParam(method: RangerAppFunctionDesc, arg: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1252
1957
  spliceFunctionBody(startIndex: number, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): CodeNode;
1253
1958
  CreateFunctionObject(orig_node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<RangerAppFunctionDesc>;
1254
1959
  WalkCollectMethods(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1255
- findFunctionDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppFunctionDesc;
1256
- findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc;
1960
+ varShadowsSystemType(strname: string, ctx: RangerAppWriterContext): boolean;
1961
+ findFunctionDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppFunctionDesc | undefined;
1962
+ findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc | undefined;
1257
1963
  convertToUnion(unionName: string, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1258
1964
  transformMethodToLambda(node: CodeNode, vFnDef: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1259
1965
  areEqualTypes(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1260
1966
  shouldBeEqualTypes(n1: CodeNode, n2: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1261
1967
  shouldBeExpression(n1: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1262
1968
  shouldHaveChildCnt(cnt: number, n1: CodeNode, ctx: RangerAppWriterContext, msg: string): void;
1263
- findLanguageOper(details: CodeNode, ctx: RangerAppWriterContext, opDef: CodeNode): Promise<CodeNode>;
1969
+ readProcessPathFromClassTree(root: CodeNode): string;
1970
+ applyProcessClassMeta(cl: RangerAppClassDesc, classNameNode: CodeNode, node: CodeNode, ctx: RangerAppWriterContext): void;
1971
+ resolveProcessPathFromFields(cl: RangerAppClassDesc): void;
1972
+ validateProcessPaths(processClasses: Array<RangerAppClassDesc>, ctx: RangerAppWriterContext): void;
1973
+ isValidProcessPath(pathStr: string): boolean;
1974
+ isJustVref(a: CodeNode): boolean;
1975
+ findLanguageOper(details: CodeNode, ctx: RangerAppWriterContext, opDef: CodeNode): Promise<CodeNode> | undefined;
1264
1976
  buildMacro(langOper: CodeNode, args: CodeNode, ctx: RangerAppWriterContext): Promise<CodeNode>;
1977
+ operandIsNonOptionalForNullCheck(node: CodeNode): boolean;
1265
1978
  stdParamMatch(callArgs: CodeNode, inCtx: RangerAppWriterContext, wr: CodeWriter, require_all_match: boolean): Promise<boolean>;
1266
1979
  }
1267
1980
  export declare class TFactory {
@@ -1310,23 +2023,47 @@ export declare class RangerGenericClassWriter {
1310
2023
  compFlags: {
1311
2024
  [key: string]: boolean;
1312
2025
  };
1313
- constructor();
2026
+ fmtMode: number;
2027
+ constructor();
2028
+ bindingPowerOf(opName: string): number;
2029
+ operandNeedsParens(childBp: number, parentBp: number): boolean;
2030
+ formatterEnabled(ctx: RangerAppWriterContext): boolean;
2031
+ isIdentStartChar(c: number): boolean;
2032
+ isPostfixTopChar(s: string, i: number, c: number, n: number): boolean;
2033
+ isPostfixExpression(s: string): boolean;
2034
+ isWrappedInParens(s: string): boolean;
2035
+ receiverNeedsParens(s: string): boolean;
2036
+ writeCallReceiver(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2037
+ unionIsSealable(ucl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2038
+ unionInterfaceName(unionName: string): string;
2039
+ sealableUnionNames(ctx: RangerAppWriterContext): Array<string>;
2040
+ unionInterfacesOf(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<string>;
2041
+ classInSealableUnion(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2042
+ sealableUnionTypeOr(unionName: string, topType: string, ctx: RangerAppWriterContext): string;
1314
2043
  lineEnding(): string;
2044
+ opWritesOwnParens(opName: string, node: CodeNode, ctx: RangerAppWriterContext): boolean;
1315
2045
  addSystemImport(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1316
2046
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1317
2047
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2048
+ beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1318
2049
  WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1319
2050
  writeArrayTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1320
2051
  WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2052
+ doubleNeedsPointZero(dd_str: string): boolean;
1321
2053
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1322
2054
  getTypeString(type_string: string): string;
2055
+ emptyBlockFiller(): string;
1323
2056
  import_lib(lib_name: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1324
2057
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1325
2058
  release_local_vars(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2059
+ renderDocExample(fd: RangerAppFunctionDesc, ctx: RangerAppWriterContext, outer: CodeWriter): Promise<string>;
2060
+ trimTrailingBlank(text: string): string;
1326
2061
  WalkNode(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1327
2062
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1328
2063
  writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1329
2064
  adjustType(tn: string): string;
2065
+ defValueHasSideEffects(value: CodeNode): boolean;
2066
+ writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1330
2067
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1331
2068
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1332
2069
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1340,6 +2077,8 @@ export declare class RangerGenericClassWriter {
1340
2077
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1341
2078
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1342
2079
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2080
+ walkNewArgForProcess(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2081
+ tryWriteProcessNewCall(procNewNode: CodeNode, procNewCtx: RangerAppWriterContext, outWr: CodeWriter): Promise<boolean>;
1343
2082
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1344
2083
  writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1345
2084
  disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1385,7 +2124,13 @@ export declare class RangerJava7ClassWriter extends RangerGenericClassWriter {
1385
2124
  export declare class RangerSwift3ClassWriter extends RangerGenericClassWriter {
1386
2125
  compiler?: LiveCompiler;
1387
2126
  header_created: boolean;
2127
+ swift_unions_written: boolean;
1388
2128
  constructor();
2129
+ writeSwiftUnionEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2130
+ swiftDeclaredClassOf(nVal: CodeNode): string;
2131
+ swiftUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2132
+ swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2133
+ swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1389
2134
  adjustType(tn: string): string;
1390
2135
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1391
2136
  getTypeString(type_string: string): string;
@@ -1400,6 +2145,7 @@ export declare class RangerSwift3ClassWriter extends RangerGenericClassWriter {
1400
2145
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1401
2146
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1402
2147
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2148
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1403
2149
  haveSameSig(fn1: RangerAppFunctionDesc, fn2: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
1404
2150
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1405
2151
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1407,9 +2153,22 @@ export declare class RangerSwift3ClassWriter extends RangerGenericClassWriter {
1407
2153
  export declare class RangerSwift6ClassWriter extends RangerGenericClassWriter {
1408
2154
  compiler?: LiveCompiler;
1409
2155
  header_created: boolean;
2156
+ swift_unions_written: boolean;
1410
2157
  constructor();
1411
2158
  adjustType(tn: string): string;
2159
+ isSwiftValueTypeOf(t: number): boolean;
2160
+ isSwiftValueCollection(nn: CodeNode): boolean;
2161
+ isSwiftValueType(nn: CodeNode): boolean;
2162
+ paramNeedsLocalCopy(arg: RangerAppParamDesc): boolean;
2163
+ swiftWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2164
+ paramNeedsInout(arg: RangerAppParamDesc): boolean;
2165
+ writeSwiftUnionEnums(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2166
+ swiftDeclaredClassOf(nVal: CodeNode): string;
2167
+ swiftUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2168
+ swiftWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2169
+ swiftWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1412
2170
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2171
+ collectionTypeStringToSwift(type_string: string, ctx: RangerAppWriterContext): string;
1413
2172
  getTypeString(type_string: string): string;
1414
2173
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1415
2174
  WriteEnum(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1417,40 +2176,78 @@ export declare class RangerSwift6ClassWriter extends RangerGenericClassWriter {
1417
2176
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1418
2177
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1419
2178
  writeArgsDefWithLocals(fnDesc: RangerAppFunctionDesc, localFnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2179
+ resolveCallReceiverClassName(obj: CodeNode, ctx: RangerAppWriterContext): string;
2180
+ isSimpleClassCallReceiver(obj: CodeNode, ctx: RangerAppWriterContext): boolean;
2181
+ receiverIsNullable(obj: CodeNode): boolean;
2182
+ callResultIsDiscarded(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2183
+ writeSideEffectOnlyStmt(value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1420
2184
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1421
2185
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1422
2186
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1423
2187
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1424
2188
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2189
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1425
2190
  haveSameSig(fn1: RangerAppFunctionDesc, fn2: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
1426
2191
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1427
2192
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2193
+ resolveMethodFnDesc(methodNode: CodeNode, ctx: RangerAppWriterContext): RangerAppFunctionDesc | undefined;
2194
+ CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1428
2195
  }
1429
2196
  export declare class RangerCppClassWriter extends RangerGenericClassWriter {
1430
2197
  compiler?: LiveCompiler;
1431
2198
  header_created: boolean;
1432
- constructor();
2199
+ buf_ret_seen: boolean;
2200
+ buf_ret_all_safe: boolean;
2201
+ cpp_single_thread: boolean;
2202
+ constructor();
2203
+ cppPtr(inner: string): string;
2204
+ cppPtrOpen(): string;
2205
+ cppMakeOpen(): string;
2206
+ cppEsft(inner: string): string;
2207
+ readCppPtrFlag(ctx: RangerAppWriterContext): void;
2208
+ writeCppSingleThreadPrelude(wr: CodeWriter): void;
1433
2209
  lineEnding(): string;
1434
2210
  adjustType(tn: string): string;
2211
+ escapeCppTrigraphs(s: string): string;
1435
2212
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1436
2213
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2214
+ collectionTypeStringToCpp(type_string: string, ctx: RangerAppWriterContext): string;
2215
+ cppUnionValueCase(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
1437
2216
  getTypeString2(type_string: string, ctx: RangerAppWriterContext): string;
1438
2217
  writePtr(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1439
2218
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2219
+ cppMemberPathOf(node: CodeNode): string;
2220
+ cppReturnIsSafeBufferLvalue(retValue: CodeNode): boolean;
2221
+ cppScanBufferReturns(node: CodeNode): void;
2222
+ cppBufferReturnByRef(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2223
+ writeReturnTypeDef(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2224
+ cppSegmentIsValueCase(node: CodeNode, idx: number, ctx: RangerAppWriterContext): boolean;
1440
2225
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1441
2226
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1442
2227
  disabledVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1443
2228
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2229
+ cppWriteCmpOperand(o: CodeNode, otherIsLiteral: boolean, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1444
2230
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1445
2231
  CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1446
2232
  CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1447
2233
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1448
2234
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2235
+ cppIsWeakField(nn: CodeNode, ctx: RangerAppWriterContext): boolean;
2236
+ cppProgramHasWeakField(ctx: RangerAppWriterContext): boolean;
2237
+ writeCppWeakHelper(wr: CodeWriter): void;
1449
2238
  writeCppHeaderVar(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter, do_initialize: boolean): Promise<void>;
2239
+ cppReadonlyValueParam(arg: RangerAppParamDesc): boolean;
2240
+ cppReadonlyUnionParam(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2241
+ cppBorrowedObjectParam(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2242
+ cppNeedsCallTempCopy(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, n: CodeNode, ctx: RangerAppWriterContext): boolean;
1450
2243
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2244
+ cppCaptureByReference(vD: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2245
+ cppMutableRefParam(fnDesc: RangerAppFunctionDesc, arg: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
1451
2246
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1452
2247
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1453
2248
  writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2249
+ cppUsesThisValue(body: CodeNode): Promise<boolean>;
2250
+ cppNeedsSharedFromThis(node: CodeNode): Promise<boolean>;
1454
2251
  writeClassHeader(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1455
2252
  CreateUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1456
2253
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
@@ -1461,27 +2258,145 @@ export declare class MethodCallList {
1461
2258
  add(methodName: string): void;
1462
2259
  }
1463
2260
  export declare class RangerRustClassWriter extends RangerGenericClassWriter {
2261
+ rust_writing_call_receiver: boolean;
2262
+ rust_call_receiver_mut: boolean;
2263
+ rust_receiver_written: boolean;
2264
+ rust_in_trait_decl: boolean;
2265
+ rust_in_weak_unwrap: boolean;
2266
+ rust_lhs_is_receiver: boolean;
2267
+ rust_writing_return_type: boolean;
2268
+ rust_receiverless_method: boolean;
2269
+ rust_receiver_mut_known: boolean;
2270
+ rust_emit_class_name: string;
2271
+ rust_receiver_shared_known: boolean;
2272
+ rust_prop_base_state: number;
2273
+ rust_recv_place_mut: boolean;
2274
+ rust_writing_mut_arg: boolean;
2275
+ rust_path_head_mut: boolean;
2276
+ rust_field_call_mut_ready: boolean;
2277
+ rust_writing_field_type: boolean;
1464
2278
  compiler?: LiveCompiler;
1465
2279
  thisName: string;
2280
+ rustFnReturnsUnion: string;
2281
+ rustFnReturnNameNode?: CodeNode;
1466
2282
  fileHeaderWritten: boolean;
2283
+ rust_in_cell_assign: boolean;
2284
+ rust_last_recv_tmp: string;
2285
+ rust_computing_family_mut: boolean;
1467
2286
  constructor();
1468
2287
  lineEnding(): string;
1469
2288
  adjustType(tn: string): string;
1470
2289
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2290
+ rustStaticStrRead(node: CodeNode): boolean;
2291
+ rustWriteStaticStrValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2292
+ rustTryBareStrLitArg(nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2293
+ rustArgIsNameRead(nVal: CodeNode): boolean;
2294
+ rustSliceRefRead(node: CodeNode): boolean;
2295
+ rustStrRefRead(node: CodeNode): boolean;
2296
+ rustLhsHoldsRc(left: CodeNode): boolean;
2297
+ rustValueIsBorrowedHandle(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2298
+ CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2299
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2300
+ writeRustLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2301
+ rustTraitCoerceName(targetType: string, value: CodeNode, ctx: RangerAppWriterContext): string;
2302
+ rustArgValueTypeName(nVal: CodeNode): string;
2303
+ rustNodeCollectionElemType(coll: CodeNode): string;
2304
+ rustSelfRcTraitName(ctx: RangerAppWriterContext): string;
2305
+ rustTypeIsOwnHandle(type_name: string, ctx: RangerAppWriterContext): boolean;
2306
+ rustSharedTypeString(type_name: string, ctx: RangerAppWriterContext): string;
2307
+ rustSharedWeakTypeString(type_name: string, ctx: RangerAppWriterContext): string;
2308
+ rustIsCollectionTypeString(type_string: string): boolean;
2309
+ rustCollectionTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2310
+ rustElementTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1471
2311
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1472
2312
  getTypeString(type_string: string): string;
1473
2313
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2314
+ writeRustWeakVRefTail(node: CodeNode, p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2315
+ rustMethodInTraitIface(cl: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2316
+ rustClassMethodKnownShared(cls: RangerAppClassDesc, name: string, ctx: RangerAppWriterContext): boolean;
2317
+ rustReceiverPathClass(fc: CodeNode, ctx: RangerAppWriterContext): RangerAppClassDesc | undefined;
2318
+ rustReceiverKnownShared(fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2319
+ rustReceiverKnownMut(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2320
+ rustReceiverMutFor(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext): boolean;
2321
+ rustThisPrefix(ctx: RangerAppWriterContext): string;
2322
+ rustThisPathPrefix(ctx: RangerAppWriterContext): string;
1474
2323
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2324
+ writeRustFnClose(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2325
+ writeRustReturnType(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2326
+ rustExprReadsThrough(node: CodeNode, name: string): boolean;
2327
+ rustRhsReadsSharedCell(node: CodeNode): boolean;
2328
+ rustCollectInheritedVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, seen: {
2329
+ [key: string]: boolean;
2330
+ }, into: Array<RangerAppParamDesc>): void;
2331
+ rustAllStructVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<RangerAppParamDesc>;
2332
+ writeStructFieldType(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2333
+ writeStructFieldTypeInner(p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2334
+ rustSegThroughTrait(node: CodeNode, idx: number, ctx: RangerAppWriterContext): boolean;
1475
2335
  writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2336
+ rustFieldAccessorName(p: RangerAppParamDesc): string;
2337
+ rustFieldIsPlainString(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2338
+ rustFieldIsCopyScalar(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2339
+ writeTraitFieldAccessorDecls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2340
+ writeTraitFieldAccessorImpls(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1476
2341
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2342
+ rustNewIntoUnion(value: CodeNode, ctx: RangerAppWriterContext): boolean;
2343
+ rustUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2344
+ rustDeclaredClassOf(nVal: CodeNode): string;
2345
+ rustWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2346
+ rustUnionReturnOf(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2347
+ rustUnionValueCase(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): boolean;
2348
+ rustArgNeedsUnionWrap(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext): boolean;
2349
+ rustWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2350
+ rustClassIsShared(typeName: string, ctx: RangerAppWriterContext): boolean;
2351
+ rustNeedsSelfRc(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
2352
+ rustEnclosingMethod(fnDesc: RangerAppFunctionDesc): RangerAppFunctionDesc;
2353
+ rustInitRcState(value: CodeNode, ctx: RangerAppWriterContext): number;
2354
+ rustSelfRcParamType(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2355
+ rustSelfRcCoerceTo(fc: CodeNode, fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): string;
2356
+ writeSelfRcReceiverArg(node: CodeNode, fc: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): boolean;
2357
+ writeRustReceiver(mutSelf: boolean, wr: CodeWriter): void;
2358
+ writeTraitForwardArgs(variant: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter, lead: boolean): void;
1477
2359
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2360
+ rustNodeContainsCall(node: CodeNode): boolean;
1478
2361
  containsSelfReference(node: CodeNode): boolean;
2362
+ rustThisSegIsMethod(segName: string, ctx: RangerAppWriterContext): boolean;
2363
+ rustMethodNeedsReceiver(fnD: RangerAppFunctionDesc, body: CodeNode, useCtx: RangerAppWriterContext, ctx: RangerAppWriterContext): boolean;
2364
+ rustBodyGetsOwnClassHandle(node: CodeNode, useCtx: RangerAppWriterContext, ctx: RangerAppWriterContext): boolean;
2365
+ rustBodyGetsClassHandle(node: CodeNode, clsName: string, cl: RangerAppClassDesc): boolean;
2366
+ fnBodyUsesThisStruct(node: CodeNode, ctx: RangerAppWriterContext): boolean;
1479
2367
  fnBodyUsesThis(node: CodeNode, ctx: RangerAppWriterContext): boolean;
1480
2368
  accessesFieldOf(node: CodeNode, varName: string): boolean;
1481
2369
  getArgRootVar(node: CodeNode): string;
1482
2370
  hasMutRefConflict(node: CodeNode, fnDesc: RangerAppFunctionDesc, argIdx: number, givenArgs: CodeNode): boolean;
1483
2371
  collectSelfMethodCalls(node: CodeNode, ctx: RangerAppWriterContext, calls: Array<string>): void;
2372
+ rustFieldCallMutatesThis(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2373
+ rustFieldPathCallMutates(fcc: CodeNode, ctx: RangerAppWriterContext): boolean;
2374
+ rustNodeIsOwnPath(nIn: CodeNode, ctx: RangerAppWriterContext): boolean;
2375
+ rustArgBorrowsThisMutably(node: CodeNode, ctx: RangerAppWriterContext): boolean;
1484
2376
  fnBodyDirectlyMutatesThis(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2377
+ rustCallTargetIsCollection(callObj: CodeNode): boolean;
2378
+ rustIsMutatingOpName(n: string): boolean;
2379
+ buildInheritedMutationGraph(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, directMutations: {
2380
+ [key: string]: boolean;
2381
+ }, callGraph: {
2382
+ [key: string]: MethodCallList;
2383
+ }): void;
2384
+ alignTraitSelfRcNeeds(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
2385
+ rustTraitRootOf(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): RangerAppClassDesc | undefined;
2386
+ rustCallThroughSharedField(callObj: CodeNode, ctx: RangerAppWriterContext): boolean;
2387
+ rustCollectPathNames(node: CodeNode, ctx: RangerAppWriterContext): void;
2388
+ rustFillPathFieldNames(ctx: RangerAppWriterContext): void;
2389
+ rustFieldCanBeCell(p: RangerAppParamDesc, ctx: RangerAppWriterContext): boolean;
2390
+ rustCellIsString(p: RangerAppParamDesc): boolean;
2391
+ rustCellIsCollection(p: RangerAppParamDesc): boolean;
2392
+ rustCellIsCopy(p: RangerAppParamDesc): boolean;
2393
+ rustCellFieldDesc(node: CodeNode): RangerAppParamDesc | undefined;
2394
+ rustNodeIsCellField(node: CodeNode): boolean;
2395
+ rustMarkInteriorCells(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
2396
+ rustFillTraitMutations(root: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
2397
+ markTraitIfaceMutations(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, directMutations: {
2398
+ [key: string]: boolean;
2399
+ }): void;
1485
2400
  buildClassMutationGraph(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, directMutations: {
1486
2401
  [key: string]: boolean;
1487
2402
  }, callGraph: {
@@ -1498,43 +2413,134 @@ export declare class RangerRustClassWriter extends RangerGenericClassWriter {
1498
2413
  [key: string]: MethodCallList;
1499
2414
  }): boolean;
1500
2415
  fnBodyMutatesThis(node: CodeNode, ctx: RangerAppWriterContext): boolean;
2416
+ rustExprCallNeedsSelfRc(obj: CodeNode, methodName: string, recvIsThis: boolean, ctx: RangerAppWriterContext): boolean;
1501
2417
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2418
+ rustBareArgNeedsClone(arg: CodeNode, ctx: RangerAppWriterContext): boolean;
1502
2419
  CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1503
2420
  isSelfMethodCall(node: CodeNode): boolean;
2421
+ rustCollectNestedSelfCalls(node: CodeNode, into: Array<CodeNode>): void;
1504
2422
  findSelfCallInArgs(node: CodeNode): number;
1505
2423
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1506
2424
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2425
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2426
+ writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1507
2427
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2428
+ rustProgramHasMainFlag(ctx: RangerAppWriterContext): boolean;
2429
+ opWritesOwnParens(opName: string, node: CodeNode, ctx: RangerAppWriterContext): boolean;
2430
+ rustWriteBitOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2431
+ rustArgIsAlreadyRef(nVal: CodeNode): boolean;
2432
+ rustArgIsBareThis(nValIn: CodeNode): boolean;
2433
+ rustArgIsPlainMutPath(nValIn: CodeNode): boolean;
2434
+ rustWriteMutArgPrefix(nVal: CodeNode, wr: CodeWriter): void;
2435
+ rustArgIsAlreadyMutRef(nVal: CodeNode): boolean;
2436
+ rustWriteCmpOperand(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2437
+ rustWriteCastOperandF64(o: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2438
+ rustExprIsOptional(inNode: CodeNode, ctx: RangerAppWriterContext): boolean;
2439
+ rustNodeIsLambda(node: CodeNode): boolean;
2440
+ CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2441
+ rustUnwrapParens(node: CodeNode): CodeNode;
2442
+ rustCollectConcatOperands(node: CodeNode, out: Array<CodeNode>): void;
2443
+ rustFmtInline(o: CodeNode): boolean;
2444
+ rustStripToString(o: CodeNode): CodeNode;
2445
+ writeRustFormatOps(ops: Array<CodeNode>, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2446
+ rustHoistFieldReceiver(real: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2447
+ rustExtractSelfCallConflicts(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2448
+ rustTailBorrowsLocal(node: CodeNode): boolean;
2449
+ walkRustFnBody(fnB: CodeNode, sCtx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2450
+ rustPlainScalarPath(n: CodeNode): boolean;
2451
+ rustTryCompoundAssign(left: CodeNode, right: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2452
+ rustArgNeedsCellWrap(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext): boolean;
2453
+ rustTraitCoerceRoot(right: CodeNode, fieldTypeName: string, ctx: RangerAppWriterContext): string;
2454
+ rustWalkOperand(n: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2455
+ rustClassBlocksClone(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, depth: number): boolean;
2456
+ rustIsIndexedWriteOp(n: string): boolean;
2457
+ rustExprMentionsName(node: CodeNode, name: string): boolean;
2458
+ rustArgIsOutParam(node: CodeNode, idx: number): boolean;
2459
+ rustIsSelfCallNode(n: CodeNode): boolean;
2460
+ beforeOperatorStatement(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1508
2461
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1509
2462
  }
1510
2463
  export declare class RangerKotlinClassWriter extends RangerGenericClassWriter {
1511
2464
  compiler?: LiveCompiler;
2465
+ kotlin_unions_written: boolean;
2466
+ kotlin_package_written: boolean;
2467
+ constructor();
2468
+ writeKotlinUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2469
+ WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2470
+ writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2471
+ adjustType(tn: string): string;
2472
+ getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2473
+ collectionTypeStringToKotlin(type_string: string, ctx: RangerAppWriterContext): string;
2474
+ getTypeString(type_string: string): string;
2475
+ writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2476
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2477
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2478
+ WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2479
+ EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
2480
+ receiverIsNullable(obj: CodeNode): boolean;
2481
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2482
+ namesStaticMember(cl: RangerAppClassDesc, node: CodeNode): boolean;
2483
+ writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2484
+ paramEmitName(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): string;
2485
+ paramIsMutated(arg: RangerAppParamDesc): boolean;
2486
+ kotlinWriteMutableParamCopies(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2487
+ writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2488
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2489
+ writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2490
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
2491
+ }
2492
+ export declare class RangerDartClassWriter extends RangerGenericClassWriter {
2493
+ compiler?: LiveCompiler;
2494
+ wrote_header: boolean;
2495
+ dart_unions_written: boolean;
1512
2496
  constructor();
2497
+ writeDartUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2498
+ EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1513
2499
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1514
2500
  adjustType(tn: string): string;
1515
2501
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2502
+ collectionTypeStringToDart(type_string: string, ctx: RangerAppWriterContext): string;
1516
2503
  getTypeString(type_string: string): string;
1517
2504
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2505
+ namesStaticMember(cl: RangerAppClassDesc, node: CodeNode): boolean;
1518
2506
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1519
2507
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2508
+ paramEmitName(arg: RangerAppParamDesc, ctx: RangerAppWriterContext): string;
1520
2509
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2510
+ receiverIsNullable(obj: CodeNode): boolean;
2511
+ CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2512
+ CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1521
2513
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1522
2514
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2515
+ writePubspec(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1523
2516
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1524
2517
  }
1525
2518
  export declare class RangerCSharpClassWriter extends RangerGenericClassWriter {
1526
2519
  compiler?: LiveCompiler;
2520
+ csharp_unions_written: boolean;
2521
+ csharp_namespace_written: boolean;
2522
+ csLambdaArgCounter: number;
1527
2523
  constructor();
1528
2524
  adjustType(tn: string): string;
2525
+ writeCSharpUnionInterfaces(ctx: RangerAppWriterContext, wr: CodeWriter): void;
1529
2526
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2527
+ collectionTypeStringToCS(type_string: string, ctx: RangerAppWriterContext): string;
1530
2528
  getTypeString(type_string: string): string;
1531
2529
  writeLambdaType(expression_value: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2530
+ writeNullableMark(node: CodeNode, wr: CodeWriter): void;
1532
2531
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1533
2532
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2533
+ csNodeContainsCall(node: CodeNode): boolean;
1534
2534
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2535
+ renameShadowedLambdaArg(arg: CodeNode, ctx: RangerAppWriterContext): void;
1535
2536
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1536
2537
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1537
2538
  writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2539
+ csCollectInherited(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, vars: {
2540
+ [key: string]: boolean;
2541
+ }, methods: {
2542
+ [key: string]: number;
2543
+ }): void;
1538
2544
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1539
2545
  }
1540
2546
  export declare class RangerScalaClassWriter extends RangerGenericClassWriter {
@@ -1561,9 +2567,18 @@ export declare class RangerGolangClassWriter extends RangerGenericClassWriter {
1561
2567
  write_raw_type: boolean;
1562
2568
  did_write_nullable: boolean;
1563
2569
  did_write_sseclient: boolean;
2570
+ go_unions_written: boolean;
1564
2571
  httpServerWriter: RangerGolangHttpServerWriter;
1565
2572
  constructor();
2573
+ writeGoUnionStructs(ctx: RangerAppWriterContext, wr: CodeWriter): void;
2574
+ goDeclaredClassOf(nVal: CodeNode): string;
2575
+ goUnionHasMember(ucl: RangerAppClassDesc, memberName: string): boolean;
2576
+ goWriteUnionValue(targetTypeName: string, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
2577
+ goWriteUnionArg(arg: RangerAppParamDesc, nVal: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
1566
2578
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
2579
+ isCollectionTypeString(type_string: string): boolean;
2580
+ collectionTypeStringToGo(type_string: string, ctx: RangerAppWriterContext): string;
2581
+ goElementTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1567
2582
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
1568
2583
  getTypeString2(type_string: string, ctx: RangerAppWriterContext): string;
1569
2584
  writeRawTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1573,16 +2588,19 @@ export declare class RangerGolangClassWriter extends RangerGenericClassWriter {
1573
2588
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1574
2589
  WriteSetterVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1575
2590
  goExtractAssign(value: CodeNode, p: RangerAppParamDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2591
+ goAncestors(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<string>;
1576
2592
  writeStructField(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1577
2593
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1578
2594
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1579
2595
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2596
+ writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1580
2597
  writeNewCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1581
2598
  writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1582
2599
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1583
2600
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1584
2601
  CustomOperator(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1585
2602
  writeInterface(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2603
+ writeSingletonAccessor(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1586
2604
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1587
2605
  }
1588
2606
  export declare class RangerGolangHttpServerWriter {
@@ -1628,17 +2646,30 @@ export declare class RangerPythonClassWriter extends RangerGenericClassWriter {
1628
2646
  compiler?: LiveCompiler;
1629
2647
  thisName: string;
1630
2648
  wrote_header: boolean;
2649
+ pyHoistWriters: Array<CodeWriter>;
2650
+ pyLambdaCounter: number;
1631
2651
  constructor();
2652
+ emptyBlockFiller(): string;
1632
2653
  adjustType(tn: string): string;
1633
2654
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1634
2655
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1635
2656
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2657
+ pyNodeContainsCall(node: CodeNode): boolean;
2658
+ pyWalkBody(body: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1636
2659
  writeVarInitDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1637
2660
  writeVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1638
2661
  CreateMethodCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1639
2662
  CreatePropertyGet(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1640
2663
  CreateLambdaCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2664
+ pyEmittedName(n: CodeNode): string;
2665
+ pyCollectAssigned(node: CodeNode, assigned: {
2666
+ [key: string]: boolean;
2667
+ }, declared: {
2668
+ [key: string]: boolean;
2669
+ }): void;
1641
2670
  CreateLambda(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
2671
+ getPythonTypeName(node: CodeNode, ctx: RangerAppWriterContext): string;
2672
+ writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1642
2673
  writeClassVarDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1643
2674
  writeArgsDef(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1644
2675
  writeArrayLiteral(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1661,12 +2692,14 @@ export declare class RangerJavaScriptClassWriter extends RangerGenericClassWrite
1661
2692
  target_esm: boolean;
1662
2693
  constructor();
1663
2694
  lineEnding(): string;
2695
+ writeTsOptionalReturnSuffix(variant: RangerAppFunctionDesc, wr: CodeWriter): void;
1664
2696
  adjustType(tn: string): string;
1665
2697
  CreateTsUnions(parser: RangerFlowParser, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1666
2698
  isOptionalReference(node: CodeNode): boolean;
1667
2699
  writeFnCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1668
2700
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1669
2701
  getObjectTypeString(type_string: string, ctx: RangerAppWriterContext): string;
2702
+ collectionTypeStringToTs(type_string: string, ctx: RangerAppWriterContext): string;
1670
2703
  getTypeString(type_string: string): string;
1671
2704
  writeTypeDef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1672
2705
  WriteVRef(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
@@ -1703,6 +2736,863 @@ export declare class RangerRangerClassWriter extends RangerGenericClassWriter {
1703
2736
  CreateCallExpression(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1704
2737
  writeClass(node: CodeNode, ctx: RangerAppWriterContext, orig_wr: CodeWriter): Promise<void>;
1705
2738
  }
2739
+ export declare class LowIRUtil {
2740
+ constructor();
2741
+ static typeFromRanger(typeName: string): string;
2742
+ static isSupportedPrimitive(typeName: string): boolean;
2743
+ static looksLikeUtf8Bytes(text: string): boolean;
2744
+ static utf8Bytes(text: string): Array<number>;
2745
+ static isStringType(typeName: string): boolean;
2746
+ static isArrayTypeName(typeName: string): boolean;
2747
+ static isBufferTypeName(typeName: string): boolean;
2748
+ static isJsonTypeName(typeName: string): boolean;
2749
+ static isSupportedParam(typeName: string): boolean;
2750
+ static fieldIrType(typeName: string): string;
2751
+ static mangleMethod(className: string, methodName: string): string;
2752
+ static structPtrType(className: string): string;
2753
+ static structType(className: string): string;
2754
+ static moduleUsesHeap(module: LowIRModule): boolean;
2755
+ }
2756
+ export declare class LowIRParam {
2757
+ name: string;
2758
+ irType: string;
2759
+ constructor();
2760
+ }
2761
+ export declare class LowIRInstr {
2762
+ op: string;
2763
+ dest: string;
2764
+ irType: string;
2765
+ arg1: string;
2766
+ arg2: string;
2767
+ arg3: string;
2768
+ pred: string;
2769
+ fnName: string;
2770
+ callArgs: Array<string>;
2771
+ callTypes: Array<string>;
2772
+ callSig: string;
2773
+ structName: string;
2774
+ fieldIndex: number;
2775
+ structSize: number;
2776
+ constructor();
2777
+ }
2778
+ export declare class LowIRBlock {
2779
+ label: string;
2780
+ instrs: Array<LowIRInstr>;
2781
+ termKind: string;
2782
+ termType: string;
2783
+ termValue: string;
2784
+ termTarget: string;
2785
+ termIfTrue: string;
2786
+ termIfFalse: string;
2787
+ constructor();
2788
+ }
2789
+ export declare class LowIRFunction {
2790
+ name: string;
2791
+ exportFn: boolean;
2792
+ isMain: boolean;
2793
+ returnType: string;
2794
+ params: Array<LowIRParam>;
2795
+ blocks: Array<LowIRBlock>;
2796
+ constructor();
2797
+ }
2798
+ export declare class LowIRField {
2799
+ name: string;
2800
+ irType: string;
2801
+ isPtrArray: boolean;
2802
+ isStringMap: boolean;
2803
+ isIntMap: boolean;
2804
+ isIntMapStr: boolean;
2805
+ isStringMapInt: boolean;
2806
+ isStringMapStr: boolean;
2807
+ isBool: boolean;
2808
+ isString: boolean;
2809
+ isBuffer: boolean;
2810
+ isObject: boolean;
2811
+ constructor();
2812
+ }
2813
+ export declare class LowIRTypeFieldDesc {
2814
+ offset: number;
2815
+ kind: number;
2816
+ owned: number;
2817
+ constructor();
2818
+ }
2819
+ export declare class LowIRTypeDesc {
2820
+ className: string;
2821
+ size: number;
2822
+ fields: Array<LowIRTypeFieldDesc>;
2823
+ constructor();
2824
+ }
2825
+ export declare class LowIRStruct {
2826
+ name: string;
2827
+ fields: Array<LowIRField>;
2828
+ constructor();
2829
+ }
2830
+ export declare class LowIRStringGlobal {
2831
+ name: string;
2832
+ text: string;
2833
+ byteLen: number;
2834
+ withNewline: boolean;
2835
+ constructor();
2836
+ }
2837
+ export declare class LowIRExternDecl {
2838
+ fnName: string;
2839
+ retType: string;
2840
+ paramTypes: Array<string>;
2841
+ isVararg: boolean;
2842
+ declSig: string;
2843
+ constructor();
2844
+ }
2845
+ export declare class LowIRModule {
2846
+ name: string;
2847
+ triple: string;
2848
+ ptrType: string;
2849
+ useLibcHeap: boolean;
2850
+ useFreeListHeap: boolean;
2851
+ structs: Array<LowIRStruct>;
2852
+ typeDescs: Array<LowIRTypeDesc>;
2853
+ functions: Array<LowIRFunction>;
2854
+ stringGlobals: Array<LowIRStringGlobal>;
2855
+ externDecls: Array<LowIRExternDecl>;
2856
+ singletonClasses: Array<string>;
2857
+ lambdaTableFuncs: Array<string>;
2858
+ lambdaSigs: Array<string>;
2859
+ usesErrorMsg: boolean;
2860
+ bigStackMain: boolean;
2861
+ constructor();
2862
+ }
2863
+ export declare class LowIRSession {
2864
+ module: LowIRModule;
2865
+ constructor();
2866
+ beginModule(moduleName: string): void;
2867
+ static current(): LowIRSession;
2868
+ static __singleton_instance: LowIRSession | null;
2869
+ static __singleton(): LowIRSession;
2870
+ }
2871
+ export declare class LowIRBuilder {
2872
+ irModule?: LowIRModule;
2873
+ tempCounter: number;
2874
+ blockCounter: number;
2875
+ blocks: Array<LowIRBlock>;
2876
+ currentBlock?: LowIRBlock;
2877
+ destTypes: {
2878
+ [key: string]: string;
2879
+ };
2880
+ constructor(module: LowIRModule);
2881
+ freshTemp(prefix: string): string;
2882
+ freshLabel(prefix: string): string;
2883
+ reset(): void;
2884
+ startBlock(label: string): string;
2885
+ emit(instr: LowIRInstr): LowIRInstr;
2886
+ emittedType(value: string): string;
2887
+ emitToEntry(instr: LowIRInstr): LowIRInstr;
2888
+ emitConst(irType: string, value: string): string;
2889
+ emitBin(kind: string, irType: string, lhs: string, rhs: string): string;
2890
+ emitIcmp(pred: string, lhs: string, rhs: string): string;
2891
+ emitIcmpTyped(pred: string, operandType: string, lhsIn: string, rhsIn: string): string;
2892
+ emitPtrToInt(ptr: string): string;
2893
+ emitCall(fnName: string, retType: string, args: Array<string>, argTypes: Array<string>): string;
2894
+ emitComment(text: string): void;
2895
+ coerceCallArgs(args: Array<string>, argTypes: Array<string>): Array<string>;
2896
+ emitCallWithSig(fnName: string, retType: string, callSig: string, rawArgs: Array<string>, argTypes: Array<string>): string;
2897
+ emitAllocaStruct(className: string, slotName: string, fieldCount: number): string;
2898
+ emitGep(className: string, structPtr: string, fieldIndex: number): string;
2899
+ emitAlloca(irType: string, slotName: string): string;
2900
+ emitZeroInitToEntry(irType: string, slotName: string): void;
2901
+ emitNullInitToEntry(irType: string, slotName: string): void;
2902
+ emitLoad(irType: string, slotName: string): string;
2903
+ emitStore(irType: string, valueIn: string, slotName: string): void;
2904
+ emitHeapAlloc(byteCount: string): string;
2905
+ emitIntToI8Ptr(addr: string, addrTypeIn: string): string;
2906
+ emitIntToStructPtr(className: string, addr: string): string;
2907
+ emitCast(castOp: string, destType: string, srcTypeIn: string, value: string): string;
2908
+ emitZextI1ToI32(v: string): string;
2909
+ emitZextI32ToPtr(v: string): string;
2910
+ addrWidthOf(ptr: string): string;
2911
+ emitPtrLoad(ptr: string): string;
2912
+ emitPtrLoadTyped(ptr: string, valueType: string): string;
2913
+ emitPtrStore(ptr: string, value: string): void;
2914
+ emitPtrStoreTyped(ptr: string, value: string, valueType: string): void;
2915
+ emitPtrLoad8(ptr: string): string;
2916
+ emitPtrStore8(ptr: string, value: string): void;
2917
+ emitMemSize(): string;
2918
+ emitMemGrow(pages: string): string;
2919
+ emitGlobalGet(name: string): string;
2920
+ emitGlobalSet(name: string, value: string): void;
2921
+ emitFuncRef(name: string): string;
2922
+ emitCallIndirect(retType: string, callSig: string, rawArgs: Array<string>, argTypes: Array<string>, selector: string): string;
2923
+ emitI32At(base: string, byteOff: number): string;
2924
+ emitStoreI32At(base: string, byteOff: number, value: string): void;
2925
+ emitStoreTypedAt(base: string, byteOff: number, value: string, valueType: string): void;
2926
+ emitLoadTypedAt(base: string, byteOff: number, valueType: string): string;
2927
+ emitLoadI32At(base: string, byteOff: number): string;
2928
+ emitStrPtr(globalName: string, byteLen: number): string;
2929
+ emitTypeDescPtr(className: string): string;
2930
+ terminateRet(retType: string, value: string): void;
2931
+ terminateBr(target: string): void;
2932
+ coerceTo(v: string, want: string): string;
2933
+ asI1(v: string): string;
2934
+ terminateBrIf(cond: string, ifTrue: string, ifFalse: string): void;
2935
+ terminateUnreachable(): void;
2936
+ finishFunction(name: string, retType: string, params: Array<LowIRParam>, exportFn: boolean, isMain: boolean): string;
2937
+ }
2938
+ export declare class LowIRRuntimeGen {
2939
+ constructor();
2940
+ static hasFunction(module: LowIRModule, name: string): boolean;
2941
+ static ensureArrayRuntime(module: LowIRModule): void;
2942
+ static ensureMapRuntime(module: LowIRModule): void;
2943
+ static finishFn(builder: LowIRBuilder, module: LowIRModule, name: string, retType: string, params: Array<LowIRParam>, exportFn: boolean): void;
2944
+ static buildRtArraySet(module: LowIRModule): void;
2945
+ static arrayLenOff(module: LowIRModule): number;
2946
+ static arrayCapOff(module: LowIRModule): number;
2947
+ static arrayDescBytes(module: LowIRModule): number;
2948
+ static mapValsOff(module: LowIRModule): number;
2949
+ static mapCapOff(module: LowIRModule): number;
2950
+ static mapSizeOff(module: LowIRModule): number;
2951
+ static mapDescBytes(module: LowIRModule): number;
2952
+ static emitDescLoad(builder: LowIRBuilder, module: LowIRModule, desc: string, byteOff: number): string;
2953
+ static emitKeysPtr(builder: LowIRBuilder, module: LowIRModule, desc: string): string;
2954
+ static emitValsPtr(builder: LowIRBuilder, module: LowIRModule, desc: string): string;
2955
+ static emitCap(builder: LowIRBuilder, module: LowIRModule, desc: string): string;
2956
+ static emitSize(builder: LowIRBuilder, module: LowIRModule, desc: string): string;
2957
+ static emitSlotAddr(builder: LowIRBuilder, module: LowIRModule, base: string, slot: string): string;
2958
+ static emitFreePtr(builder: LowIRBuilder, module: LowIRModule, ptr: string): void;
2959
+ static buildRtMapNew(module: LowIRModule): void;
2960
+ static buildRtMapGrow(module: LowIRModule): void;
2961
+ static buildRtMapFree(module: LowIRModule): void;
2962
+ static buildRtMapHashSlot(module: LowIRModule): void;
2963
+ static buildRtMapPutAt(module: LowIRModule): void;
2964
+ static buildRtMapPut(module: LowIRModule): void;
2965
+ static buildRtMapGetAt(module: LowIRModule): void;
2966
+ static buildRtMapGet(module: LowIRModule): void;
2967
+ static buildRtMapHas(module: LowIRModule): void;
2968
+ static ptrBytes(module: LowIRModule): number;
2969
+ static descMetaOff(module: LowIRModule): number;
2970
+ static ensurePtrArrayRuntime(module: LowIRModule): void;
2971
+ static buildRtPtrArrayReserve(module: LowIRModule): void;
2972
+ static buildRtPtrArrayNew(module: LowIRModule): void;
2973
+ static buildRtPtrArrayLen(module: LowIRModule): void;
2974
+ static buildRtPtrArrayGet(module: LowIRModule): void;
2975
+ static buildRtPtrArraySet(module: LowIRModule): void;
2976
+ static buildRtPtrArrayPush(module: LowIRModule): void;
2977
+ }
2978
+ export declare class LowIRTarget {
2979
+ arch: string;
2980
+ env: string;
2981
+ triple: string;
2982
+ ptrType: string;
2983
+ usesLibc: boolean;
2984
+ ioFn: string;
2985
+ ioFnRet: string;
2986
+ ioFnVararg: boolean;
2987
+ constructor();
2988
+ memoryModel(): string;
2989
+ isManualMemory(): boolean;
2990
+ static resolve(ctx: RangerAppWriterContext): LowIRTarget;
2991
+ static applyName(t: LowIRTarget, name: string): void;
2992
+ static applyExplicitTriple(t: LowIRTarget, triple: string): void;
2993
+ static applyNameKnown(t: LowIRTarget, name: string): void;
2994
+ }
2995
+ export declare class LowIRLowerContext {
2996
+ ctx?: RangerAppWriterContext;
2997
+ builder?: LowIRBuilder;
2998
+ target?: LowIRTarget;
2999
+ ptrType: string;
3000
+ slots: {
3001
+ [key: string]: string;
3002
+ };
3003
+ paramNames: Array<string>;
3004
+ capturedNames: Array<string>;
3005
+ shadowStack: Array<string>;
3006
+ shadowCounter: number;
3007
+ forceFreshSlots: Array<string>;
3008
+ reslotNames: Array<string>;
3009
+ reslotPrevSlots: Array<string>;
3010
+ reslotPrevTypes: Array<string>;
3011
+ reslotOwnedStr: Array<number>;
3012
+ reslotOwnedObj: Array<number>;
3013
+ reslotOwnedColl: Array<number>;
3014
+ slotTypes: {
3015
+ [key: string]: string;
3016
+ };
3017
+ objectSlots: {
3018
+ [key: string]: string;
3019
+ };
3020
+ collectionSlots: {
3021
+ [key: string]: string;
3022
+ };
3023
+ ptrArrayElemTypes: {
3024
+ [key: string]: string;
3025
+ };
3026
+ smapValueTypes: {
3027
+ [key: string]: string;
3028
+ };
3029
+ imapValueTypes: {
3030
+ [key: string]: string;
3031
+ };
3032
+ ownedObjectLocals: Array<string>;
3033
+ ownedCollectionLocals: Array<string>;
3034
+ ownedStringLocals: Array<string>;
3035
+ pendingStringTemps: Array<string>;
3036
+ pendingObjectTemps: Array<string>;
3037
+ boxedCandidates: {
3038
+ [key: string]: number;
3039
+ };
3040
+ boxedLocals: {
3041
+ [key: string]: number;
3042
+ };
3043
+ boxedTypes: {
3044
+ [key: string]: string;
3045
+ };
3046
+ escapedLocals: {
3047
+ [key: string]: string;
3048
+ };
3049
+ currentRetType: string;
3050
+ llvmRetType: string;
3051
+ className: string;
3052
+ selfPtr: string;
3053
+ breakLabel: string;
3054
+ continueLabel: string;
3055
+ catchLabel: string;
3056
+ loopOwnedMark: number;
3057
+ loopOwnedStrMark: number;
3058
+ loopOwnedCollMark: number;
3059
+ constructor();
3060
+ }
3061
+ export declare class LambdaCaptureInfo {
3062
+ names: Array<string>;
3063
+ irTypes: Array<string>;
3064
+ kinds: Array<number>;
3065
+ objClasses: Array<string>;
3066
+ boxTypes: Array<string>;
3067
+ collKinds: Array<string>;
3068
+ elemTypes: Array<string>;
3069
+ smapValTypes: Array<string>;
3070
+ offsets: Array<number>;
3071
+ totalBytes: number;
3072
+ hasOwned: boolean;
3073
+ tdName: string;
3074
+ capturesSelf: boolean;
3075
+ selfOffset: number;
3076
+ selfClass: string;
3077
+ constructor();
3078
+ }
3079
+ export declare class LowIRBuilderPass {
3080
+ irModule: LowIRModule;
3081
+ usedMapRuntime: boolean;
3082
+ usedArrayRuntime: boolean;
3083
+ usedPtrArrayRuntime: boolean;
3084
+ usedMemRuntime: boolean;
3085
+ exprRecvPtr: string;
3086
+ lambdaSigMap: {
3087
+ [key: string]: string;
3088
+ };
3089
+ lambdaByName: {
3090
+ [key: string]: RangerAppFunctionDesc;
3091
+ };
3092
+ lambdaNames: Array<string>;
3093
+ lambdaDepths: {
3094
+ [key: string]: number;
3095
+ };
3096
+ lambdaCounter: number;
3097
+ lambdaCaptures: {
3098
+ [key: string]: LambdaCaptureInfo;
3099
+ };
3100
+ virtualKeys: Array<string>;
3101
+ virtualIsKey: {
3102
+ [key: string]: boolean;
3103
+ };
3104
+ virtualCases: {
3105
+ [key: string]: Array<string>;
3106
+ };
3107
+ virtualImplOf: {
3108
+ [key: string]: string;
3109
+ };
3110
+ virtualDescOf: {
3111
+ [key: string]: RangerAppFunctionDesc;
3112
+ };
3113
+ appRoot?: RangerAppWriterContext;
3114
+ constructor();
3115
+ isLambdaTypeNode(node: CodeNode): boolean;
3116
+ canLowerFunction(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3117
+ isKeywordMarkerParam(p: RangerAppParamDesc): boolean;
3118
+ canLowerMethod(fnDesc: RangerAppFunctionDesc): boolean;
3119
+ canLowerInstanceMethod(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3120
+ isMainEntry(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3121
+ shouldExport(fnDesc: RangerAppFunctionDesc, ctx: RangerAppWriterContext): boolean;
3122
+ lowerModule(appCtx: RangerAppWriterContext): LowIRModule;
3123
+ ensureExternDecl(fnName: string, retType: string, paramTypes: Array<string>, isVararg: boolean): void;
3124
+ ensureLibcExtern(target: LowIRTarget): void;
3125
+ ensureBufferExtern(target: LowIRTarget): void;
3126
+ ensureMemExtern(target: LowIRTarget): void;
3127
+ memEnabled(lctx: LowIRLowerContext): boolean;
3128
+ objRcEnabled(lctx: LowIRLowerContext): boolean;
3129
+ strRcEnabled(lctx: LowIRLowerContext): boolean;
3130
+ wasmStrEnabled(lctx: LowIRLowerContext): boolean;
3131
+ isLowerableParamType(typeName: string): boolean;
3132
+ isEnumTypeName(typeName: string): boolean;
3133
+ llvmTypeForRanger(typeName: string, ptrType: string): string;
3134
+ varTypeName(nameNode: CodeNode): string;
3135
+ exprIsObjectPtr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3136
+ isRefCountedObjectType(typeName: string): boolean;
3137
+ isObjectTypeName(typeName: string): boolean;
3138
+ exprIsString(node: CodeNode): boolean;
3139
+ exprMightBeString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3140
+ lowerConcatOperand(node: CodeNode, isStr: boolean, lctx: LowIRLowerContext): string;
3141
+ emitStrdupExpr(strPtr: string, lctx: LowIRLowerContext): string;
3142
+ lowerStringConcat(aNode: CodeNode, bNode: CodeNode, lctx: LowIRLowerContext): string;
3143
+ hasExternDecl(fnName: string): boolean;
3144
+ internStringGlobal(text: string, withNewline: boolean): string;
3145
+ utf8ByteLen(text: string): number;
3146
+ stringGlobalByteLen(gname: string): number;
3147
+ printTextFromNode(node: CodeNode): string;
3148
+ emitIoString(text: string, withNewline: boolean, lctx: LowIRLowerContext): void;
3149
+ emitPrintfFmt(fmt: string, args: Array<string>, argTypes: Array<string>, lctx: LowIRLowerContext): void;
3150
+ lowerPrint(node: CodeNode, lctx: LowIRLowerContext): void;
3151
+ lowerWrite(node: CodeNode, lctx: LowIRLowerContext): void;
3152
+ lowerExit(node: CodeNode, lctx: LowIRLowerContext): void;
3153
+ lowerSleepMs(node: CodeNode, lctx: LowIRLowerContext): void;
3154
+ lowerTerminalEsc(text: string, lctx: LowIRLowerContext): void;
3155
+ emitTermVoidCall(fnName: string, lctx: LowIRLowerContext): void;
3156
+ lowerClearScreen(node: CodeNode, lctx: LowIRLowerContext): void;
3157
+ lowerHideCursor(node: CodeNode, lctx: LowIRLowerContext): void;
3158
+ lowerShowCursor(node: CodeNode, lctx: LowIRLowerContext): void;
3159
+ lowerMoveCursor(node: CodeNode, lctx: LowIRLowerContext): void;
3160
+ forIndexName(idxNode: CodeNode): string;
3161
+ resolveItemClass(itemNode: CodeNode): string;
3162
+ lowerPollKeypress(lctx: LowIRLowerContext): string;
3163
+ lowerOnKeypress(node: CodeNode, lctx: LowIRLowerContext): void;
3164
+ lowerShellArgCnt(lctx: LowIRLowerContext): string;
3165
+ lowerShellArg(node: CodeNode, lctx: LowIRLowerContext): string;
3166
+ lowerReadFile(node: CodeNode, lctx: LowIRLowerContext): string;
3167
+ lowerCreateDir(node: CodeNode, lctx: LowIRLowerContext): void;
3168
+ lowerWriteFile(node: CodeNode, lctx: LowIRLowerContext): void;
3169
+ lowerNullify(node: CodeNode, lctx: LowIRLowerContext): void;
3170
+ lowerBufferAlloc(node: CodeNode, lctx: LowIRLowerContext): string;
3171
+ emitPtrArrayLenOrBufferLen(bufVal: string, lctx: LowIRLowerContext): string;
3172
+ lowerBufferLength(node: CodeNode, lctx: LowIRLowerContext): string;
3173
+ lowerBufferGet(node: CodeNode, lctx: LowIRLowerContext): string;
3174
+ lowerBufferSet(node: CodeNode, lctx: LowIRLowerContext): string;
3175
+ lowerBufferFill(node: CodeNode, lctx: LowIRLowerContext): string;
3176
+ lowerBufferReadFile(node: CodeNode, lctx: LowIRLowerContext): string;
3177
+ lowerBufferWriteFile(node: CodeNode, lctx: LowIRLowerContext): string;
3178
+ lowerIntBufferAlloc(node: CodeNode, lctx: LowIRLowerContext): string;
3179
+ lowerIntBufferGet(node: CodeNode, lctx: LowIRLowerContext): string;
3180
+ lowerIntBufferSet(node: CodeNode, lctx: LowIRLowerContext): string;
3181
+ exprIsF64(node: CodeNode): boolean;
3182
+ promoteToF64(node: CodeNode, val: string, lctx: LowIRLowerContext): string;
3183
+ lowerToDouble(node: CodeNode, lctx: LowIRLowerContext): string;
3184
+ emitDoubleToString(value: string, lctx: LowIRLowerContext): string;
3185
+ emitLibmCall(fnName: string, value: string, lctx: LowIRLowerContext): string;
3186
+ lowerToInt(node: CodeNode, lctx: LowIRLowerContext): string;
3187
+ lowerFloor(node: CodeNode, lctx: LowIRLowerContext): string;
3188
+ lowerStr2Double(node: CodeNode, lctx: LowIRLowerContext): string;
3189
+ lowerStr2Int(node: CodeNode, lctx: LowIRLowerContext): string;
3190
+ lowerIntBufferFill(node: CodeNode, lctx: LowIRLowerContext): string;
3191
+ lowerCharAt(node: CodeNode, lctx: LowIRLowerContext): string;
3192
+ lowerSubstring(node: CodeNode, lctx: LowIRLowerContext): string;
3193
+ lowerAtArgs(textNode: CodeNode, posNode: CodeNode, lctx: LowIRLowerContext): string;
3194
+ lowerAt(node: CodeNode, lctx: LowIRLowerContext): string;
3195
+ lowerAtCall(argsNode: CodeNode, lctx: LowIRLowerContext): string;
3196
+ lowerPtrIsNull(ptr: string, lctx: LowIRLowerContext): string;
3197
+ lowerPtrIsNotNull(ptr: string, lctx: LowIRLowerContext): string;
3198
+ loadArrayDescExpr(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3199
+ exprIsPtrSizedRead(rawNode: CodeNode, lctx: LowIRLowerContext): boolean;
3200
+ pushValueNeedsWiden(itemNode: CodeNode, value: string, lctx: LowIRLowerContext): boolean;
3201
+ pushItemNeedsWiden(itemNode: CodeNode, lctx: LowIRLowerContext): boolean;
3202
+ arrayElemTypeName(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3203
+ nodeIsArrayExpr(node: CodeNode, lctx: LowIRLowerContext): boolean;
3204
+ lowerArrayIndexOf(node: CodeNode, lctx: LowIRLowerContext): string;
3205
+ isArrayLiteralValue(nameNode: CodeNode, val: CodeNode): boolean;
3206
+ isArrayLiteralShape(val: CodeNode): boolean;
3207
+ arrayElemTypeOfTypeName(typeName: string): string;
3208
+ arrayLiteralElemType(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3209
+ lowerArrayLiteral(nameNode: CodeNode, node: CodeNode, lctx: LowIRLowerContext): string;
3210
+ lowerArrayLiteralTyped(elemType: string, node: CodeNode, lctx: LowIRLowerContext): string;
3211
+ lowerPush(node: CodeNode, lctx: LowIRLowerContext): void;
3212
+ lowerForMap(node: CodeNode, lctx: LowIRLowerContext): boolean;
3213
+ lowerFor(node: CodeNode, lctx: LowIRLowerContext): void;
3214
+ emitStrcmpEq(lhs: string, rhs: string, ctx: LowIRLowerContext): string;
3215
+ propertyReadClass(node: CodeNode, lctx: LowIRLowerContext): string;
3216
+ isPropertyReadNode(node: CodeNode): boolean;
3217
+ lowerPropertyRead(node: CodeNode, lctx: LowIRLowerContext): string;
3218
+ isLibmUnaryOp(op: string): boolean;
3219
+ isLibmBinaryOp(op: string): boolean;
3220
+ lowerLibmUnary(fnName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3221
+ lowerLibmBinary(fnName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3222
+ lowerToString(node: CodeNode, lctx: LowIRLowerContext): string;
3223
+ lowerStrFromCode(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3224
+ lowerStrlenOn(textNode: CodeNode, lctx: LowIRLowerContext): string;
3225
+ unwrapUnwrapOper(node: CodeNode): CodeNode;
3226
+ lowerStrlen(node: CodeNode, lctx: LowIRLowerContext): string;
3227
+ isIntArrayTypeNode(node: CodeNode): boolean;
3228
+ isIntKeyValueMapTypeNode(node: CodeNode): boolean;
3229
+ ensureIMapExterns(): void;
3230
+ widenToI64(val: string, keyNode: CodeNode, lctx: LowIRLowerContext): string;
3231
+ emitIMapCall(fnName: string, retType: string, desc: string, rest: Array<string>, restTypes: Array<string>, lctx: LowIRLowerContext): string;
3232
+ imapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3233
+ imapValueKind(vref: string, lctx: LowIRLowerContext): string;
3234
+ imapValueOwnKind(typeName: string): number;
3235
+ isIntIntMapTypeNode(node: CodeNode): boolean;
3236
+ ensureSMapExterns(): void;
3237
+ emitSMapNew(lctx: LowIRLowerContext): string;
3238
+ emitSMapNewKind(valKind: number, lctx: LowIRLowerContext): string;
3239
+ smapValueOwnKind(valueTypeName: string): number;
3240
+ emitSMapCall(fnName: string, retType: string, descIn: string, rest: Array<string>, restTypes: Array<string>, lctx: LowIRLowerContext): string;
3241
+ lowerSMapKeys(node: CodeNode, lctx: LowIRLowerContext): string;
3242
+ lowerEnumRef(node: CodeNode, lctx: LowIRLowerContext): string;
3243
+ jsonTypeNameOfNode(node: CodeNode, lctx: LowIRLowerContext): string;
3244
+ nodeIsJson(node: CodeNode, lctx: LowIRLowerContext): boolean;
3245
+ jsonValueKind(valNode: CodeNode, lctx: LowIRLowerContext): string;
3246
+ ensureJsonExtern(fnName: string, retType: string, params: Array<string>): void;
3247
+ emitAnsiConst(code: string, lctx: LowIRLowerContext): string;
3248
+ tryLowerAnsi(opName: string, lctx: LowIRLowerContext): string;
3249
+ emitJsonCall(fnName: string, retType: string, args: Array<string>, argTypes: Array<string>, cParams: Array<string>, lctx: LowIRLowerContext): string;
3250
+ lowerJsonNew(fnName: string, lctx: LowIRLowerContext): string;
3251
+ lowerJsonGet(node: CodeNode, fnName: string, retIr: string, cRet: string, lctx: LowIRLowerContext): string;
3252
+ lowerJsonSet(node: CodeNode, lctx: LowIRLowerContext): void;
3253
+ lowerJsonPush(node: CodeNode, lctx: LowIRLowerContext): void;
3254
+ lowerJson1(node: CodeNode, fnName: string, cRet: string, lctx: LowIRLowerContext): string;
3255
+ lowerJsonGetValue(node: CodeNode, lctx: LowIRLowerContext): string;
3256
+ jsonCaseKindFor(typeName: string): number;
3257
+ lowerJsonCase(node: CodeNode, lctx: LowIRLowerContext): boolean;
3258
+ lowerArraySort(node: CodeNode, lctx: LowIRLowerContext): string;
3259
+ lowerArrayInsert(node: CodeNode, lctx: LowIRLowerContext): void;
3260
+ emitArrayRemoveCall(node: CodeNode, lctx: LowIRLowerContext): string;
3261
+ lowerArrayRemove(node: CodeNode, lctx: LowIRLowerContext): void;
3262
+ lowerArrayRemoveLast(node: CodeNode, lctx: LowIRLowerContext): void;
3263
+ lowerArrayClear(node: CodeNode, lctx: LowIRLowerContext): void;
3264
+ lowerArrayExtract(node: CodeNode, lctx: LowIRLowerContext): string;
3265
+ lowerTernary(node: CodeNode, lctx: LowIRLowerContext): string;
3266
+ lowerArrayReverse(node: CodeNode, lctx: LowIRLowerContext): string;
3267
+ toI1(v: string, lctx: LowIRLowerContext): string;
3268
+ lowerStr2Fn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3269
+ lowerStr3Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3270
+ lowerStr2IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3271
+ lowerStr1IntFn(node: CodeNode, fnName: string, retType: string, lctx: LowIRLowerContext): string;
3272
+ lowerStr0Fn(fnName: string, lctx: LowIRLowerContext): string;
3273
+ lowerStr1Fn(node: CodeNode, fnName: string, lctx: LowIRLowerContext): string;
3274
+ isStringKeyMapTypeNode(node: CodeNode): boolean;
3275
+ isObjectPtrArrayTypeNode(node: CodeNode): boolean;
3276
+ isPlainValueArrayTypeNode(node: CodeNode): boolean;
3277
+ isDoubleArrayTypeNode(node: CodeNode): boolean;
3278
+ arrayElemIsDouble(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3279
+ isStringArrayTypeNode(node: CodeNode): boolean;
3280
+ emitPtrArrayNewEmpty(lctx: LowIRLowerContext, elemKind: number): string;
3281
+ isOwnedCollectionLocal(varName: string, lctx: LowIRLowerContext): boolean;
3282
+ bindPtrArraySlot(varName: string, desc: string, lctx: LowIRLowerContext, owned: boolean): void;
3283
+ wasmCollectionRcEnabled(lctx: LowIRLowerContext): boolean;
3284
+ collectionKind(varName: string, lctx: LowIRLowerContext): string;
3285
+ arrayLenOff(lctx: LowIRLowerContext): number;
3286
+ arrayCapOff(lctx: LowIRLowerContext): number;
3287
+ arrayDescBytes(lctx: LowIRLowerContext): number;
3288
+ ptrArrayOwnedOff(lctx: LowIRLowerContext): number;
3289
+ bindCollectionSlot(varName: string, kind: string, desc: string, lctx: LowIRLowerContext): void;
3290
+ loadCollectionDesc(varName: string, lctx: LowIRLowerContext): string;
3291
+ emitDescLoad(desc: string, byteOff: number, lctx: LowIRLowerContext): string;
3292
+ emitRtArrayNewEmpty(lctx: LowIRLowerContext): string;
3293
+ emitRtArrayNewSized(cap: string, lctx: LowIRLowerContext): string;
3294
+ emitRtArrayGet(desc: string, idx: string, lctx: LowIRLowerContext): string;
3295
+ emitRtArraySet(desc: string, idx: string, val: string, lctx: LowIRLowerContext): void;
3296
+ emitRtArrayLen(desc: string, lctx: LowIRLowerContext): string;
3297
+ emitRtMapNew(cap: string, lctx: LowIRLowerContext): string;
3298
+ emitRtMapPut(desc: string, key: string, val: string, lctx: LowIRLowerContext): void;
3299
+ emitRtMapGet(desc: string, key: string, lctx: LowIRLowerContext): string;
3300
+ emitRtMapHas(desc: string, key: string, lctx: LowIRLowerContext): string;
3301
+ lowerCollectionMake(node: CodeNode, lctx: LowIRLowerContext): string;
3302
+ lowerCollectionGet(node: CodeNode, lctx: LowIRLowerContext): string;
3303
+ lowerCollectionLen(node: CodeNode, lctx: LowIRLowerContext): string;
3304
+ lowerCollectionHas(node: CodeNode, lctx: LowIRLowerContext): string;
3305
+ lowerCollectionSet(node: CodeNode, lctx: LowIRLowerContext): void;
3306
+ collectStructVars(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): Array<RangerAppParamDesc>;
3307
+ collectStructVarsInto(cl: RangerAppClassDesc, ctx: RangerAppWriterContext, out: Array<RangerAppParamDesc>, seen: {
3308
+ [key: string]: boolean;
3309
+ }, depth: number): void;
3310
+ lowerStruct(cl: RangerAppClassDesc, ctx: RangerAppWriterContext): void;
3311
+ lowerTypeDesc(st: LowIRStruct, target: LowIRTarget): void;
3312
+ fieldByteOffset(className: string, fieldIndex: number, module: LowIRModule): number;
3313
+ shadowBind(varName: string, irType: string, value: string, lctx: LowIRLowerContext): string;
3314
+ restoreShadow(varName: string, prev: string, lctx: LowIRLowerContext): void;
3315
+ takeForceFresh(varName: string, lctx: LowIRLowerContext): boolean;
3316
+ bindSlot(varName: string, irType: string, value: string, lctx: LowIRLowerContext): void;
3317
+ loadSlot(varName: string, irType: string, lctx: LowIRLowerContext): string;
3318
+ loadSlotRaw(varName: string, irType: string, lctx: LowIRLowerContext): string;
3319
+ isParamName(varName: string, lctx: LowIRLowerContext): boolean;
3320
+ fieldIrTypeFor(className: string, fieldName: string): string;
3321
+ fieldIsPtrArraySlot(className: string, fieldName: string): boolean;
3322
+ fieldIsObjectSlot(className: string, fieldName: string): boolean;
3323
+ strKeyPtr(keyNode: CodeNode, key: string, lctx: LowIRLowerContext): string;
3324
+ smapDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3325
+ isStringMapVref(vref: string, lctx: LowIRLowerContext): boolean;
3326
+ smapValueKind(vref: string, lctx: LowIRLowerContext): string;
3327
+ smapValueIsInt(vref: string, lctx: LowIRLowerContext): boolean;
3328
+ fieldIsIntMapSlot(className: string, fieldName: string): boolean;
3329
+ fieldIsStringMapSlot(className: string, fieldName: string): boolean;
3330
+ fieldIsStringSlot(className: string, fieldName: string): boolean;
3331
+ fieldIsBufferSlot(className: string, fieldName: string): boolean;
3332
+ fieldIsBoolSlot(className: string, fieldName: string): boolean;
3333
+ ptrArrayDescFromVref(vref: string, lctx: LowIRLowerContext): string;
3334
+ loadPtrArrayDescExpr(arrNode: CodeNode, lctx: LowIRLowerContext): string;
3335
+ emitPtrArrayLen(desc: string, lctx: LowIRLowerContext): string;
3336
+ fieldArrayElemType(className: string, fieldName: string, lctx: LowIRLowerContext): string;
3337
+ ptrArrayElemIsInt(arrNode: CodeNode, lctx: LowIRLowerContext): boolean;
3338
+ lowerItemAt(node: CodeNode, lctx: LowIRLowerContext): string;
3339
+ emitPtrArrayElemGet(desc: string, idx: string, arrNode: CodeNode, lctx: LowIRLowerContext): string;
3340
+ emitPtrArrayElemSet(desc: string, idx: string, val: string, arrNode: CodeNode, lctx: LowIRLowerContext): void;
3341
+ emitFieldLoadOn(className: string, structPtr: string, fieldName: string, lctx: LowIRLowerContext): string;
3342
+ emitReleaseFieldValue(className: string, fieldName: string, rawVal: string, lctx: LowIRLowerContext): void;
3343
+ exprCarriesFreshRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3344
+ exprIsBorrowedPtrArrayRef(node: CodeNode, lctx: LowIRLowerContext): boolean;
3345
+ retainAliasedArray(valNode: CodeNode, desc: string, lctx: LowIRLowerContext): void;
3346
+ isBorrowedArrayExpr(valNode: CodeNode): boolean;
3347
+ emitSMapRetain(desc: string, lctx: LowIRLowerContext): void;
3348
+ emitPtrArrayRetain(desc: string, lctx: LowIRLowerContext): void;
3349
+ emitFieldStoreOn(className: string, structPtr: string, fieldName: string, value: string, lctx: LowIRLowerContext): void;
3350
+ emitFieldStoreOnEx(className: string, structPtr: string, fieldName: string, value: string, srcIsFresh: boolean, lctx: LowIRLowerContext): void;
3351
+ emitObjRetainPtr(ptr: string, lctx: LowIRLowerContext): void;
3352
+ emitObjReleasePtr(ptr: string, lctx: LowIRLowerContext): void;
3353
+ emitFieldLoad(fieldName: string, lctx: LowIRLowerContext): string;
3354
+ emitFieldStore(fieldName: string, value: string, lctx: LowIRLowerContext): void;
3355
+ fieldObjectClassName(className: string, fieldName: string, lctx: LowIRLowerContext): string;
3356
+ resolveObjectPtr(varName: string, className: string, lctx: LowIRLowerContext): string;
3357
+ joinDotPrefix(parts: Array<string>, count: number): string;
3358
+ resolveObjectClassChain(varName: string, lctx: LowIRLowerContext): string;
3359
+ resolveObjectPtrChain(varName: string, className: string, lctx: LowIRLowerContext): string;
3360
+ resolveObjectClass(varName: string, lctx: LowIRLowerContext): string;
3361
+ resolveFieldPtrExpr(vref: string, lctx: LowIRLowerContext): string;
3362
+ isObjectArrayField(v: RangerAppParamDesc): boolean;
3363
+ newTargetClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3364
+ emitFieldDefault(className: string, objPtr: string, fieldName: string, valNode: CodeNode, lctx: LowIRLowerContext): void;
3365
+ initFieldDefaultsInObject(className: string, objPtr: string, lctx: LowIRLowerContext): void;
3366
+ initFieldDefaultsInConstructor(className: string, lctx: LowIRLowerContext): void;
3367
+ initArrayFieldsInObject(className: string, objPtr: string, lctx: LowIRLowerContext): void;
3368
+ initArrayFieldsInConstructor(className: string, lctx: LowIRLowerContext): void;
3369
+ structByteSize(className: string, module: LowIRModule): number;
3370
+ classHasOwnedFields(className: string): boolean;
3371
+ newArgListOf(argsNode: CodeNode): CodeNode;
3372
+ lowerNewObject(className: string, argsNodeIn: CodeNode, lctx: LowIRLowerContext): string;
3373
+ findFieldIndex(className: string, fieldName: string, module: LowIRModule): number;
3374
+ resolvesToField(fieldName: string, lctx: LowIRLowerContext): boolean;
3375
+ isRealConstructor(fnDesc: RangerAppFunctionDesc, className: string, appCtx: RangerAppWriterContext): boolean;
3376
+ isClassField(fieldName: string, className: string, module: LowIRModule): boolean;
3377
+ structFieldCount(className: string, module: LowIRModule): number;
3378
+ lowerFunction(fnDesc: RangerAppFunctionDesc, className: string, appCtx: RangerAppWriterContext, exportFn: boolean, isMain: boolean, isInstance: boolean): void;
3379
+ lowerSingletonAccessor(cl: RangerAppClassDesc, appCtx: RangerAppWriterContext): void;
3380
+ collectLambdas(appCtx: RangerAppWriterContext): void;
3381
+ collectMethodLambdas(m: RangerAppFunctionDesc, pt: string): void;
3382
+ collectMethodLambdasAt(m: RangerAppFunctionDesc, pt: string, depth: number): void;
3383
+ lambdaCallSig(lam: RangerAppFunctionDesc, pt: string): string;
3384
+ addLambdaSig(sig: string): void;
3385
+ lowerLambdaBodies(appCtx: RangerAppWriterContext): void;
3386
+ lowerLambdaFunction(lam: RangerAppFunctionDesc, fnName: string, appCtx: RangerAppWriterContext): void;
3387
+ lambdaTableIndex(name: string): number;
3388
+ nodeAssignsToName(node: CodeNode, name: string): boolean;
3389
+ boxedCellType(varName: string, lctx: LowIRLowerContext): string;
3390
+ emitBoxCell(lctx: LowIRLowerContext): string;
3391
+ boxInitValue(irType: string, value: string, lctx: LowIRLowerContext): string;
3392
+ bindBoxedLocal(varName: string, irType: string, value: string, lctx: LowIRLowerContext): void;
3393
+ isBoxableIrType(irType: string): boolean;
3394
+ boxedStorageType(logicalType: string): string;
3395
+ widenForBoxCell(value: string, logicalType: string, lctx: LowIRLowerContext): string;
3396
+ emitBoxCellSized(lctx: LowIRLowerContext, byteSize: number): string;
3397
+ computeBoxedCandidates(fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): void;
3398
+ collectBoxedCandidates(m: RangerAppFunctionDesc, lctx: LowIRLowerContext): void;
3399
+ irTypeBytes(irType: string, lctx: LowIRLowerContext): number;
3400
+ lambdaOwnerClass(lam: RangerAppFunctionDesc, depth: number): string;
3401
+ lambdaCaptureNames(node: CodeNode, lam: RangerAppFunctionDesc): Array<string>;
3402
+ nestedCaptureNames(lam: RangerAppFunctionDesc, depth: number): Array<string>;
3403
+ computeLambdaCaptures(node: CodeNode, lam: RangerAppFunctionDesc, lctx: LowIRLowerContext): LambdaCaptureInfo;
3404
+ lowerLambdaValue(node: CodeNode, lctx: LowIRLowerContext): string;
3405
+ lowerLambdaCall(node: CodeNode, lctx: LowIRLowerContext): string;
3406
+ isOwnedObjectLocal(varName: string, lctx: LowIRLowerContext): boolean;
3407
+ slotHoldsObject(varName: string, lctx: LowIRLowerContext): boolean;
3408
+ releaseOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3409
+ isOwnedStringLocal(varName: string, lctx: LowIRLowerContext): boolean;
3410
+ registerFreshStringTemp(tmp: string, lctx: LowIRLowerContext): void;
3411
+ claimStringTemp(tmp: string, lctx: LowIRLowerContext): void;
3412
+ flushStringTempsFrom(mark: number, lctx: LowIRLowerContext): void;
3413
+ registerFreshObjectTemp(tmp: string, lctx: LowIRLowerContext): void;
3414
+ claimObjectTemp(tmp: string, lctx: LowIRLowerContext): void;
3415
+ flushObjectTempsFrom(mark: number, lctx: LowIRLowerContext): void;
3416
+ emitStrReleasePtr(ptr: string, lctx: LowIRLowerContext): void;
3417
+ releaseOwnedString(varName: string, lctx: LowIRLowerContext): void;
3418
+ releaseOwnedCollectionLocal(varName: string, lctx: LowIRLowerContext): void;
3419
+ emitOwnedStringInit(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3420
+ isCapturedName(varName: string, lctx: LowIRLowerContext): boolean;
3421
+ emitOwnedStringReassign(varName: string, valNode: CodeNode, strPtr: string, lctx: LowIRLowerContext): string;
3422
+ strictOwnershipEnabled(lctx: LowIRLowerContext): boolean;
3423
+ emitOwnershipSummary(lctx: LowIRLowerContext): void;
3424
+ emitReleaseOwnedLocals(lctx: LowIRLowerContext): void;
3425
+ withoutName(names: Array<string>, varName: string): Array<string>;
3426
+ popReslots(mark: number, lctx: LowIRLowerContext): void;
3427
+ lowerBlock(block: CodeNode, lctx: LowIRLowerContext): void;
3428
+ blockClosed(lctx: LowIRLowerContext): boolean;
3429
+ lowerStmtList(stmts: Array<CodeNode>, lctx: LowIRLowerContext): void;
3430
+ lowerBlockBody(block: CodeNode, lctx: LowIRLowerContext): void;
3431
+ isAssignNode(node: CodeNode): boolean;
3432
+ lowerStmt(node: CodeNode, lctx: LowIRLowerContext): void;
3433
+ lowerStmtDispatch(node: CodeNode, lctx: LowIRLowerContext): void;
3434
+ declaredIrTypeOf(nameNode: CodeNode, lctx: LowIRLowerContext): string;
3435
+ noteRedeclaration(varName: string, nameNode: CodeNode, lctx: LowIRLowerContext): void;
3436
+ lowerVarDef(node: CodeNode, lctx: LowIRLowerContext): void;
3437
+ lowerVarDefBody(node: CodeNode, lctx: LowIRLowerContext): void;
3438
+ exprIsI64Operator(node: CodeNode): boolean;
3439
+ assignTargetFieldClass(varName: string, lctx: LowIRLowerContext): string;
3440
+ lowerAssign(node: CodeNode, lctx: LowIRLowerContext): void;
3441
+ lowerReturn(node: CodeNode, lctx: LowIRLowerContext): void;
3442
+ isCompareOp(op: string): boolean;
3443
+ unwrapInfixExpr(node: CodeNode): CodeNode;
3444
+ unwrapCondExpr(node: CodeNode): CodeNode;
3445
+ exprProducesI1(node: CodeNode, lctx: LowIRLowerContext): boolean;
3446
+ condVref(node: CodeNode): string;
3447
+ lowerCondOperand(node: CodeNode, lctx: LowIRLowerContext): string;
3448
+ lowerCond(node: CodeNode, lctx: LowIRLowerContext): string;
3449
+ emitSwitchCaseTest(subj: string, subjNode: CodeNode, caseNode: CodeNode, lctx: LowIRLowerContext): string;
3450
+ emitStrOrDefault(value: string, fallback: string, lctx: LowIRLowerContext): string;
3451
+ lowerThrow(node: CodeNode, lctx: LowIRLowerContext): void;
3452
+ emptyStrList(): Array<string>;
3453
+ lowerTry(node: CodeNode, lctx: LowIRLowerContext): void;
3454
+ guardUnwrapInTry(value: string, lctx: LowIRLowerContext): void;
3455
+ lowerSwitch(node: CodeNode, lctx: LowIRLowerContext): void;
3456
+ shapeCaseClassName(itemNode: CodeNode): string;
3457
+ moduleHasTypeDesc(className: string): boolean;
3458
+ emitShapeKindTest(val: string, caseClass: string, lctx: LowIRLowerContext): string;
3459
+ lowerShapeIs(node: CodeNode, lctx: LowIRLowerContext): string;
3460
+ lowerShapeCase(node: CodeNode, lctx: LowIRLowerContext): void;
3461
+ lowerIf(node: CodeNode, lctx: LowIRLowerContext): void;
3462
+ emitLoopBodyReleases(lctx: LowIRLowerContext): void;
3463
+ lowerLoopJump(target: string, lctx: LowIRLowerContext): void;
3464
+ lowerWhile(node: CodeNode, lctx: LowIRLowerContext): void;
3465
+ releaseAndClearOwnedLocal(varName: string, lctx: LowIRLowerContext): void;
3466
+ releaseAndClearOwnedCollection(varName: string, lctx: LowIRLowerContext): void;
3467
+ releaseLoopBodyOwned(ownedBefore: number, ownedStrBefore: number, ownedCollBefore: number, lctx: LowIRLowerContext): void;
3468
+ lowerExpr(node: CodeNode, lctx: LowIRLowerContext): string;
3469
+ operatorReturnsString(op: string): boolean;
3470
+ exprIsFreshString(node: CodeNode, lctx: LowIRLowerContext): boolean;
3471
+ exprIsStringish(node: CodeNode, lctx: LowIRLowerContext): boolean;
3472
+ lowerStringCompare(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3473
+ lowerCompareI32(aNode: CodeNode, bNode: CodeNode, pred: string, lctx: LowIRLowerContext): string;
3474
+ lowerArithF64OrI32(intKind: string, fpKind: string, node: CodeNode, lctx: LowIRLowerContext): string;
3475
+ lowerBinaryOp(opName: string, node: CodeNode, lctx: LowIRLowerContext): string;
3476
+ lowerShortCircuit(node: CodeNode, isAnd: boolean, lctx: LowIRLowerContext): string;
3477
+ tryLowerIntrinsic(fnName: string, argsNode: CodeNode, lctx: LowIRLowerContext): string;
3478
+ finishObjectCall(rv: string): string;
3479
+ lowerCall(node: CodeNode, lctx: LowIRLowerContext): string;
3480
+ exprRecvClassName(node: CodeNode, lctx: LowIRLowerContext): string;
3481
+ tryLowerObjectCall(node: CodeNode, lctx: LowIRLowerContext): string;
3482
+ fieldReceiverClass(recvName: string, lctx: LowIRLowerContext): string;
3483
+ callArgsNode(node: CodeNode): CodeNode;
3484
+ resolveMethodName(node: CodeNode, defaultName: string): string;
3485
+ argIrType(arg: CodeNode, lctx: LowIRLowerContext): string;
3486
+ lowerCallArgValue(arg: CodeNode, paramIndex: number, fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): string;
3487
+ paramIrTypeFromDesc(paramIndex: number, fnDesc: RangerAppFunctionDesc, lctx: LowIRLowerContext): string;
3488
+ coerceArg(value: string, wantType: string, lctx: LowIRLowerContext): string;
3489
+ methodOwnerClass(className: string, methodName: string, lctx: LowIRLowerContext): string;
3490
+ methodOwnerClassIn(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3491
+ virtualKeyOf(className: string, methodName: string): string;
3492
+ topmostDeclaringClass(className: string, methodName: string, appCtx: RangerAppWriterContext, depth: number): string;
3493
+ classIsLowered(cl: RangerAppClassDesc): boolean;
3494
+ collectVirtualMethods(appCtx: RangerAppWriterContext): void;
3495
+ classInheritsFrom(className: string, baseName: string, appCtx: RangerAppWriterContext, depth: number): boolean;
3496
+ virtualDispatcherName(className: string, methodName: string): string;
3497
+ hasVirtualDispatcher(className: string, methodName: string): boolean;
3498
+ emitVirtualDispatchers(appCtx: RangerAppWriterContext): void;
3499
+ emitOneVirtualDispatcher(top: string, meth: string, fnDesc: RangerAppFunctionDesc, cases: Array<string>, appCtx: RangerAppWriterContext): void;
3500
+ emitDispatchTailCall(builder: LowIRBuilder, cls: string, meth: string, retType: string, argNames: Array<string>, argTypes: Array<string>): void;
3501
+ lowerInstanceCallOn(node: CodeNode, receiverName: string, recvNode: CodeNode, methodName: string, lctx: LowIRLowerContext): string;
3502
+ registerCallObjectTemp(node: CodeNode, tmp: string, lctx: LowIRLowerContext): void;
3503
+ lowerInstanceCall(node: CodeNode, lctx: LowIRLowerContext): string;
3504
+ calleeReceiverIsUnknown(callee: CodeNode, lctx: LowIRLowerContext): boolean;
3505
+ moduleHasFunction(fnName: string): boolean;
3506
+ resolveCalleeName(callee: CodeNode): string;
3507
+ }
3508
+ export declare class LLVMIRWriter {
3509
+ instrLineLen: number;
3510
+ varargNames: Array<string>;
3511
+ varargSigs: Array<string>;
3512
+ constructor();
3513
+ collectVarargFns(module: LowIRModule): void;
3514
+ varargSigFor(fnName: string): string;
3515
+ llTy(t: string): string;
3516
+ normalizeDoubleLit(lit: string): string;
3517
+ hexDigit(d: number): string;
3518
+ hexByte(b: number): string;
3519
+ llvmEscapeCString(text: string): string;
3520
+ writeModule(module: LowIRModule, wr: CodeWriter): void;
3521
+ writeBigStackMain(wr: CodeWriter): void;
3522
+ writeLambdaTable(module: LowIRModule, wr: CodeWriter): void;
3523
+ writeTypeDescs(module: LowIRModule, wr: CodeWriter): void;
3524
+ writeOneTypeDesc(td: LowIRTypeDesc, wr: CodeWriter): void;
3525
+ writeStruct(st: LowIRStruct, wr: CodeWriter): void;
3526
+ writeFunction(fn: LowIRFunction, wr: CodeWriter): void;
3527
+ writeInstr(ins: LowIRInstr, wr: CodeWriter): void;
3528
+ writeInstrBody(ins: LowIRInstr, wr: CodeWriter): void;
3529
+ writeTerminator(bb: LowIRBlock, wr: CodeWriter): void;
3530
+ }
3531
+ export declare class WATWriter {
3532
+ strAddrs: {
3533
+ [key: string]: number;
3534
+ };
3535
+ typeDescAddrs: {
3536
+ [key: string]: number;
3537
+ };
3538
+ lambdaFuncs: Array<string>;
3539
+ constructor();
3540
+ lambdaFuncIndex(name: string): number;
3541
+ sigTypeName(callSig: string): string;
3542
+ sigTypeDecl(callSig: string): string;
3543
+ utf8Encode(text: string): Array<number>;
3544
+ hexDigit(d: number): string;
3545
+ hexByte(b: number): string;
3546
+ dataEscape(bytes: Array<number>): string;
3547
+ leWord(v: number): string;
3548
+ align4(a: number): number;
3549
+ fieldOwnedFlag(fd: LowIRTypeFieldDesc): number;
3550
+ descHasOwned(td: LowIRTypeDesc): boolean;
3551
+ moduleHasOwnedTypeDescs(module: LowIRModule): boolean;
3552
+ emitStaticData(module: LowIRModule, wr: CodeWriter): void;
3553
+ wasmName(llvmName: string): string;
3554
+ isGepTemp(name: string): boolean;
3555
+ moduleUsesHeap(module: LowIRModule): boolean;
3556
+ watType(irType: string): string;
3557
+ localTypeMap(fn: LowIRFunction): {
3558
+ [key: string]: string;
3559
+ };
3560
+ localTypeOf(m: {
3561
+ [key: string]: string;
3562
+ }, wn: string): string;
3563
+ writeModule(module: LowIRModule, wr: CodeWriter): void;
3564
+ findBlockIdx(fn: LowIRFunction, label: string): number;
3565
+ isWhileHeader(fn: LowIRFunction, condIdx: number): boolean;
3566
+ collectLocals(fn: LowIRFunction): Array<string>;
3567
+ writeBlockInstrs(bb: LowIRBlock, wr: CodeWriter): void;
3568
+ writeFunction(fn: LowIRFunction, wr: CodeWriter, doExport: boolean): void;
3569
+ markVisited(label: string, visited: {
3570
+ [key: string]: boolean;
3571
+ }): void;
3572
+ isVisited(label: string, visited: {
3573
+ [key: string]: boolean;
3574
+ }): boolean;
3575
+ emitRegion(fn: LowIRFunction, startIdx: number, boundIdx: number, wr: CodeWriter, visited: {
3576
+ [key: string]: boolean;
3577
+ }): string;
3578
+ emitIf(fn: LowIRFunction, headerIdx: number, wr: CodeWriter, visited: {
3579
+ [key: string]: boolean;
3580
+ }): string;
3581
+ emitWhile(fn: LowIRFunction, condIdx: number, wr: CodeWriter, visited: {
3582
+ [key: string]: boolean;
3583
+ }): string;
3584
+ writeGet(llvmRef: string, wr: CodeWriter): void;
3585
+ writeInstr(ins: LowIRInstr, wr: CodeWriter): void;
3586
+ }
3587
+ export declare class RangerLLVMPipeline {
3588
+ constructor();
3589
+ generateModule(appCtx: RangerAppWriterContext, wr: CodeWriter): void;
3590
+ }
3591
+ export declare class RangerLLVMClassWriter extends RangerGenericClassWriter {
3592
+ compiler?: LiveCompiler;
3593
+ constructor();
3594
+ writeClass(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3595
+ }
1706
3596
  export declare class OpList {
1707
3597
  list: Array<CodeNode>;
1708
3598
  constructor();
@@ -1732,6 +3622,7 @@ export declare class LiveCompiler {
1732
3622
  [key: string]: boolean;
1733
3623
  };
1734
3624
  constructor();
3625
+ treeReferencesVRef(node: CodeNode, name: string): boolean;
1735
3626
  initWriter(ctx: RangerAppWriterContext): void;
1736
3627
  EncodeString(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): string;
1737
3628
  WriteScalarValue(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
@@ -1746,13 +3637,16 @@ export declare class LiveCompiler {
1746
3637
  createPolyfillLegacy(code: string, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1747
3638
  installFile(filename: string, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1748
3639
  findOpCode(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1749
- findOpTemplate(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<CodeNode>;
3640
+ findOpTemplate(op: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<CodeNode> | undefined;
1750
3641
  localCall(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<boolean>;
3642
+ finishWalkNode(wr: CodeWriter): void;
1751
3643
  WalkNode(node: CodeNode, in_ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3644
+ typeNameToIdentifier(ss: string): string;
1752
3645
  walkCommandList(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
3646
+ isMutatingOpName(n: string): boolean;
1753
3647
  walkCommand(cmd: CodeNode, node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): Promise<void>;
1754
3648
  compile(node: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): void;
1755
- findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc;
3649
+ findParamDesc(obj: CodeNode, ctx: RangerAppWriterContext, wr: CodeWriter): RangerAppParamDesc | undefined;
1756
3650
  }
1757
3651
  export declare class ColorConsole {
1758
3652
  constructor();
@@ -1827,6 +3721,12 @@ export declare class StaticAnalyzer {
1827
3721
  mutatingOps: {
1828
3722
  [key: string]: boolean;
1829
3723
  };
3724
+ own_call_params: Array<RangerAppParamDesc>;
3725
+ own_call_callees: Array<RangerAppFunctionDesc>;
3726
+ own_call_indexes: Array<number>;
3727
+ rss_edge_src: Array<RangerAppParamDesc>;
3728
+ rss_edge_dst: Array<RangerAppParamDesc>;
3729
+ rss_in_place: Array<RangerAppParamDesc>;
1830
3730
  constructor();
1831
3731
  initMutatingOps(): void;
1832
3732
  isMutatingOperator(opName: string): boolean;
@@ -1834,6 +3734,8 @@ export declare class StaticAnalyzer {
1834
3734
  getRootVarName(node: CodeNode): string;
1835
3735
  isMemberAccess(node: CodeNode): boolean;
1836
3736
  getMemberPath(node: CodeNode): string;
3737
+ isValuePassedType(t: number): boolean;
3738
+ isValuePassedCollection(typeNode: CodeNode): boolean;
1837
3739
  markVarAsMutated(varName: string, fnCtx: RangerAppWriterContext): void;
1838
3740
  analyzeVarDef(node: CodeNode): void;
1839
3741
  walkForFieldAssignments(node: CodeNode, fnCtx: RangerAppWriterContext): void;
@@ -1852,10 +3754,12 @@ export declare class StaticAnalyzer {
1852
3754
  analyzeClass(cl: RangerAppClassDesc): void;
1853
3755
  analyzeTransitiveWeak(fn: RangerAppFunctionDesc): void;
1854
3756
  analyzeClassTransitiveWeak(cl: RangerAppClassDesc): void;
3757
+ propagateArgMutRef(calledParam: RangerAppParamDesc, arg: CodeNode, fnCtx: RangerAppWriterContext, changedParams: Array<string>): void;
1855
3758
  walkForTransitiveMutBorrow(node: CodeNode, fnCtx: RangerAppWriterContext, fn: RangerAppFunctionDesc, changedParams: Array<string>): void;
1856
3759
  analyzeTransitiveMutBorrow(fn: RangerAppFunctionDesc, changedParams: Array<string>): void;
1857
3760
  analyzeClassTransitiveMutBorrow(cl: RangerAppClassDesc, changedParams: Array<string>): void;
1858
3761
  checkDirectSelfMutation(fn: RangerAppFunctionDesc): boolean;
3762
+ writeTargetIsSelf(target: CodeNode): boolean;
1859
3763
  nodeDirectlyMutatesSelf(node: CodeNode): boolean;
1860
3764
  analyzeMethodMutation(fn: RangerAppFunctionDesc): boolean;
1861
3765
  checkTransitiveMutation(node: CodeNode, fn: RangerAppFunctionDesc): boolean;
@@ -1864,6 +3768,65 @@ export declare class StaticAnalyzer {
1864
3768
  analyzeParamMethodCalls(node: CodeNode, fnCtx: RangerAppWriterContext, fn: RangerAppFunctionDesc): void;
1865
3769
  analyzeMethodParamMutations(fn: RangerAppFunctionDesc): void;
1866
3770
  analyzeClassParamMutations(cl: RangerAppClassDesc): void;
3771
+ ownershipKindName(kind: number): string;
3772
+ ownerPathOf(node: CodeNode): string;
3773
+ targetOutlivesScope(target: CodeNode, fnCtx: RangerAppWriterContext): boolean;
3774
+ isPrimitiveTypeName(name: string): boolean;
3775
+ isHeapOwnedParam(p: RangerAppParamDesc): boolean;
3776
+ recordEscape(valueName: string, ownerPath: string, via: string, fnCtx: RangerAppWriterContext): void;
3777
+ escapeValueName(node: CodeNode): string;
3778
+ aliasRootOf(name: string, aliasNames: Array<string>, aliasRoots: Array<string>): string;
3779
+ recordEscapeAliased(valueName: string, ownerPath: string, via: string, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): void;
3780
+ callArgParam(arg: CodeNode, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): RangerAppParamDesc;
3781
+ markCallArgsResolved(argsNode: CodeNode, callee: RangerAppFunctionDesc, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): void;
3782
+ markCallArgsUnresolved(argsNode: CodeNode, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): void;
3783
+ collectCallArgEscapes(node: CodeNode, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): void;
3784
+ walkForEscapes(node: CodeNode, fnCtx: RangerAppWriterContext, aliasNames: Array<string>, aliasRoots: Array<string>): void;
3785
+ ownerSuffix(param: RangerAppParamDesc): string;
3786
+ fnIsPure(fn: RangerAppFunctionDesc): boolean;
3787
+ classifyOwnership(fn: RangerAppFunctionDesc): void;
3788
+ resolveCallEscapes(): void;
3789
+ reportOwnership(fn: RangerAppFunctionDesc): void;
3790
+ reportOwnershipClass(cl: RangerAppClassDesc): void;
3791
+ analyzeOwnership(fn: RangerAppFunctionDesc): void;
3792
+ analyzeOwnershipClass(cl: RangerAppClassDesc): void;
3793
+ unionMemberIsScalarOnly(typeName: string): boolean;
3794
+ markClassShared(typeName: string, reason: string): void;
3795
+ classNameOfDesc(p: RangerAppParamDesc): string;
3796
+ sharedClassNameOf(name: string, fnCtx: RangerAppWriterContext): string;
3797
+ nodeClassNameOf(node: CodeNode, fnCtx: RangerAppWriterContext): string;
3798
+ collectMutatedNames(node: CodeNode, names: Array<string>): void;
3799
+ computeSharingMutations(): void;
3800
+ markSharingMutations(fn: RangerAppFunctionDesc): boolean;
3801
+ nameIn(name: string, names: Array<string>): boolean;
3802
+ varIsMutated(name: string, fnCtx: RangerAppWriterContext, mutated: Array<string>): boolean;
3803
+ readsStoredObject(node: CodeNode): boolean;
3804
+ walkForSharing(node: CodeNode, fnCtx: RangerAppWriterContext, fnName: string, mutated: Array<string>): void;
3805
+ markIdenticalOperandsShared(node: CodeNode, fnName: string): void;
3806
+ analyzeClassSharingFn(fn: RangerAppFunctionDesc): void;
3807
+ analyzeClassSharing(): void;
3808
+ reportClassSharing(): void;
3809
+ sharedClassOfDesc(p: RangerAppParamDesc): string;
3810
+ markDescRcWrap(p: RangerAppParamDesc): void;
3811
+ walkForSharedLocals(node: CodeNode): void;
3812
+ fnUsesThisValue(fn: RangerAppFunctionDesc): Promise<boolean>;
3813
+ fnSelfCallsNeedy(fn: RangerAppFunctionDesc): Promise<boolean>;
3814
+ computeSelfRcNeeds(): Promise<void>;
3815
+ markLambdaParamsRec(fn: RangerAppFunctionDesc): void;
3816
+ applySharedClassRcWrap(): void;
3817
+ rustParamHasRefSemantics(param: RangerAppParamDesc): boolean;
3818
+ rustBorrowedObjectParam(cl: RangerAppClassDesc, param: RangerAppParamDesc): boolean;
3819
+ rssPlainStringDesc(p: RangerAppParamDesc): boolean;
3820
+ rssResolveDesc(node: CodeNode): RangerAppParamDesc;
3821
+ rssSourceKind(value: CodeNode): number;
3822
+ rssRecordAssign(target: RangerAppParamDesc, value: CodeNode): void;
3823
+ rssLocalCandidate(p: RangerAppParamDesc): boolean;
3824
+ rssWalkBody(node: CodeNode): void;
3825
+ rssWalkFn(fn: RangerAppFunctionDesc): void;
3826
+ analyzeRustStaticStrings(): void;
3827
+ applyOwnershipToRustBorrowsFn(cl: RangerAppClassDesc, fn: RangerAppFunctionDesc): void;
3828
+ applyOwnershipToRustBorrows(): void;
3829
+ analyzeOwnershipAll(strict: boolean): void;
1867
3830
  analyzeAll(): void;
1868
3831
  }
1869
3832
  export declare class viewbuilder_Android {
@@ -1910,4 +3873,3 @@ export declare class CompilerInterface {
1910
3873
  constructor();
1911
3874
  static create_env(): InputEnv;
1912
3875
  }
1913
- export {};