@scriptc/compiler 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/LICENSE +202 -0
  2. package/ambient/package.json +3 -0
  3. package/ambient/scriptc-node-fallback.d.ts +3001 -0
  4. package/ambient/scriptc-overrides.d.ts +95 -0
  5. package/ambient/scriptc.d.ts +74 -0
  6. package/dist/backend/cc.d.ts +169 -0
  7. package/dist/backend/cc.js +897 -0
  8. package/dist/backend/cc.js.map +1 -0
  9. package/dist/backend/emission/emit-async.d.ts +145 -0
  10. package/dist/backend/emission/emit-async.js +996 -0
  11. package/dist/backend/emission/emit-async.js.map +1 -0
  12. package/dist/backend/emission/emit-exprs.d.ts +3 -0
  13. package/dist/backend/emission/emit-exprs.js +5949 -0
  14. package/dist/backend/emission/emit-exprs.js.map +1 -0
  15. package/dist/backend/emission/emit-island.d.ts +45 -0
  16. package/dist/backend/emission/emit-island.js +271 -0
  17. package/dist/backend/emission/emit-island.js.map +1 -0
  18. package/dist/backend/emission/emit-shapes.d.ts +142 -0
  19. package/dist/backend/emission/emit-shapes.js +575 -0
  20. package/dist/backend/emission/emit-shapes.js.map +1 -0
  21. package/dist/backend/emission/emit-stmts.d.ts +78 -0
  22. package/dist/backend/emission/emit-stmts.js +960 -0
  23. package/dist/backend/emission/emit-stmts.js.map +1 -0
  24. package/dist/backend/emission/emit-types.d.ts +65 -0
  25. package/dist/backend/emission/emit-types.js +652 -0
  26. package/dist/backend/emission/emit-types.js.map +1 -0
  27. package/dist/backend/emission/emit-walkers.d.ts +154 -0
  28. package/dist/backend/emission/emit-walkers.js +1587 -0
  29. package/dist/backend/emission/emit-walkers.js.map +1 -0
  30. package/dist/backend/emission/emitter.d.ts +452 -0
  31. package/dist/backend/emission/emitter.js +1249 -0
  32. package/dist/backend/emission/emitter.js.map +1 -0
  33. package/dist/backend/emission/may-throw.d.ts +15 -0
  34. package/dist/backend/emission/may-throw.js +250 -0
  35. package/dist/backend/emission/may-throw.js.map +1 -0
  36. package/dist/backend/llvm/blocks.d.ts +21 -0
  37. package/dist/backend/llvm/blocks.js +68 -0
  38. package/dist/backend/llvm/blocks.js.map +1 -0
  39. package/dist/backend/llvm/classes.d.ts +84 -0
  40. package/dist/backend/llvm/classes.js +438 -0
  41. package/dist/backend/llvm/classes.js.map +1 -0
  42. package/dist/backend/llvm/dyn.d.ts +123 -0
  43. package/dist/backend/llvm/dyn.js +2624 -0
  44. package/dist/backend/llvm/dyn.js.map +1 -0
  45. package/dist/backend/llvm/emitter.d.ts +3 -0
  46. package/dist/backend/llvm/emitter.js +10102 -0
  47. package/dist/backend/llvm/emitter.js.map +1 -0
  48. package/dist/backend/llvm/shapes.d.ts +78 -0
  49. package/dist/backend/llvm/shapes.js +754 -0
  50. package/dist/backend/llvm/shapes.js.map +1 -0
  51. package/dist/backend/llvm/unsupported.d.ts +6 -0
  52. package/dist/backend/llvm/unsupported.js +12 -0
  53. package/dist/backend/llvm/unsupported.js.map +1 -0
  54. package/dist/backend/llvm/walkers.d.ts +58 -0
  55. package/dist/backend/llvm/walkers.js +793 -0
  56. package/dist/backend/llvm/walkers.js.map +1 -0
  57. package/dist/backend/mangle.d.ts +124 -0
  58. package/dist/backend/mangle.js +232 -0
  59. package/dist/backend/mangle.js.map +1 -0
  60. package/dist/coverage/report.d.ts +65 -0
  61. package/dist/coverage/report.js +238 -0
  62. package/dist/coverage/report.js.map +1 -0
  63. package/dist/diagnostics/diagnostic.d.ts +140 -0
  64. package/dist/diagnostics/diagnostic.js +458 -0
  65. package/dist/diagnostics/diagnostic.js.map +1 -0
  66. package/dist/diagnostics/render.d.ts +11 -0
  67. package/dist/diagnostics/render.js +58 -0
  68. package/dist/diagnostics/render.js.map +1 -0
  69. package/dist/frontend/cjs-lexer.d.ts +20 -0
  70. package/dist/frontend/cjs-lexer.js +813 -0
  71. package/dist/frontend/cjs-lexer.js.map +1 -0
  72. package/dist/frontend/lowering/http2-constants.d.ts +1 -0
  73. package/dist/frontend/lowering/http2-constants.js +251 -0
  74. package/dist/frontend/lowering/http2-constants.js.map +1 -0
  75. package/dist/frontend/lowering/lib-boundary.d.ts +6 -0
  76. package/dist/frontend/lowering/lib-boundary.js +143 -0
  77. package/dist/frontend/lowering/lib-boundary.js.map +1 -0
  78. package/dist/frontend/lowering/lower-assert.d.ts +18 -0
  79. package/dist/frontend/lowering/lower-assert.js +1269 -0
  80. package/dist/frontend/lowering/lower-assert.js.map +1 -0
  81. package/dist/frontend/lowering/lower-builtins.d.ts +511 -0
  82. package/dist/frontend/lowering/lower-builtins.js +5249 -0
  83. package/dist/frontend/lowering/lower-builtins.js.map +1 -0
  84. package/dist/frontend/lowering/lower-calls.d.ts +581 -0
  85. package/dist/frontend/lowering/lower-calls.js +6286 -0
  86. package/dist/frontend/lowering/lower-calls.js.map +1 -0
  87. package/dist/frontend/lowering/lower-classes.d.ts +727 -0
  88. package/dist/frontend/lowering/lower-classes.js +4701 -0
  89. package/dist/frontend/lowering/lower-classes.js.map +1 -0
  90. package/dist/frontend/lowering/lower-comptime.d.ts +53 -0
  91. package/dist/frontend/lowering/lower-comptime.js +244 -0
  92. package/dist/frontend/lowering/lower-comptime.js.map +1 -0
  93. package/dist/frontend/lowering/lower-containers.d.ts +486 -0
  94. package/dist/frontend/lowering/lower-containers.js +6345 -0
  95. package/dist/frontend/lowering/lower-containers.js.map +1 -0
  96. package/dist/frontend/lowering/lower-dgram.d.ts +20 -0
  97. package/dist/frontend/lowering/lower-dgram.js +319 -0
  98. package/dist/frontend/lowering/lower-dgram.js.map +1 -0
  99. package/dist/frontend/lowering/lower-emitter.d.ts +10 -0
  100. package/dist/frontend/lowering/lower-emitter.js +688 -0
  101. package/dist/frontend/lowering/lower-emitter.js.map +1 -0
  102. package/dist/frontend/lowering/lower-enums.d.ts +22 -0
  103. package/dist/frontend/lowering/lower-enums.js +235 -0
  104. package/dist/frontend/lowering/lower-enums.js.map +1 -0
  105. package/dist/frontend/lowering/lower-expando.d.ts +35 -0
  106. package/dist/frontend/lowering/lower-expando.js +276 -0
  107. package/dist/frontend/lowering/lower-expando.js.map +1 -0
  108. package/dist/frontend/lowering/lower-exprs.d.ts +524 -0
  109. package/dist/frontend/lowering/lower-exprs.js +8111 -0
  110. package/dist/frontend/lowering/lower-exprs.js.map +1 -0
  111. package/dist/frontend/lowering/lower-generators.d.ts +50 -0
  112. package/dist/frontend/lowering/lower-generators.js +421 -0
  113. package/dist/frontend/lowering/lower-generators.js.map +1 -0
  114. package/dist/frontend/lowering/lower-inspect.d.ts +20 -0
  115. package/dist/frontend/lowering/lower-inspect.js +1074 -0
  116. package/dist/frontend/lowering/lower-inspect.js.map +1 -0
  117. package/dist/frontend/lowering/lower-island.d.ts +108 -0
  118. package/dist/frontend/lowering/lower-island.js +650 -0
  119. package/dist/frontend/lowering/lower-island.js.map +1 -0
  120. package/dist/frontend/lowering/lower-mixins.d.ts +96 -0
  121. package/dist/frontend/lowering/lower-mixins.js +534 -0
  122. package/dist/frontend/lowering/lower-mixins.js.map +1 -0
  123. package/dist/frontend/lowering/lower-modules.d.ts +135 -0
  124. package/dist/frontend/lowering/lower-modules.js +1613 -0
  125. package/dist/frontend/lowering/lower-modules.js.map +1 -0
  126. package/dist/frontend/lowering/lower-namespaces.d.ts +168 -0
  127. package/dist/frontend/lowering/lower-namespaces.js +706 -0
  128. package/dist/frontend/lowering/lower-namespaces.js.map +1 -0
  129. package/dist/frontend/lowering/lower-server.d.ts +90 -0
  130. package/dist/frontend/lowering/lower-server.js +3471 -0
  131. package/dist/frontend/lowering/lower-server.js.map +1 -0
  132. package/dist/frontend/lowering/lower-stmts.d.ts +361 -0
  133. package/dist/frontend/lowering/lower-stmts.js +5341 -0
  134. package/dist/frontend/lowering/lower-stmts.js.map +1 -0
  135. package/dist/frontend/lowering/lower-stream.d.ts +88 -0
  136. package/dist/frontend/lowering/lower-stream.js +1533 -0
  137. package/dist/frontend/lowering/lower-stream.js.map +1 -0
  138. package/dist/frontend/lowering/lower-test.d.ts +27 -0
  139. package/dist/frontend/lowering/lower-test.js +353 -0
  140. package/dist/frontend/lowering/lower-test.js.map +1 -0
  141. package/dist/frontend/lowering/lowerer.d.ts +1748 -0
  142. package/dist/frontend/lowering/lowerer.js +6257 -0
  143. package/dist/frontend/lowering/lowerer.js.map +1 -0
  144. package/dist/frontend/lowering/surfaces.d.ts +272 -0
  145. package/dist/frontend/lowering/surfaces.js +1096 -0
  146. package/dist/frontend/lowering/surfaces.js.map +1 -0
  147. package/dist/frontend/npm-static.d.ts +55 -0
  148. package/dist/frontend/npm-static.js +300 -0
  149. package/dist/frontend/npm-static.js.map +1 -0
  150. package/dist/frontend/npm.d.ts +330 -0
  151. package/dist/frontend/npm.js +1259 -0
  152. package/dist/frontend/npm.js.map +1 -0
  153. package/dist/frontend/program.d.ts +186 -0
  154. package/dist/frontend/program.js +2255 -0
  155. package/dist/frontend/program.js.map +1 -0
  156. package/dist/frontend/provenance-registry.d.ts +48 -0
  157. package/dist/frontend/provenance-registry.js +87 -0
  158. package/dist/frontend/provenance-registry.js.map +1 -0
  159. package/dist/frontend/provenance.d.ts +6 -0
  160. package/dist/frontend/provenance.js +459 -0
  161. package/dist/frontend/provenance.js.map +1 -0
  162. package/dist/frontend/resolve.d.ts +56 -0
  163. package/dist/frontend/resolve.js +682 -0
  164. package/dist/frontend/resolve.js.map +1 -0
  165. package/dist/frontend/shared.d.ts +67 -0
  166. package/dist/frontend/shared.js +241 -0
  167. package/dist/frontend/shared.js.map +1 -0
  168. package/dist/frontend/ts7/adapter.d.ts +7 -0
  169. package/dist/frontend/ts7/adapter.js +54 -0
  170. package/dist/frontend/ts7/adapter.js.map +1 -0
  171. package/dist/frontend/ts7/ast.d.ts +50 -0
  172. package/dist/frontend/ts7/ast.js +211 -0
  173. package/dist/frontend/ts7/ast.js.map +1 -0
  174. package/dist/frontend/ts7/census-check.d.ts +1 -0
  175. package/dist/frontend/ts7/census-check.js +12 -0
  176. package/dist/frontend/ts7/census-check.js.map +1 -0
  177. package/dist/frontend/ts7/checker.d.ts +140 -0
  178. package/dist/frontend/ts7/checker.js +544 -0
  179. package/dist/frontend/ts7/checker.js.map +1 -0
  180. package/dist/frontend/ts7/enums.d.ts +18 -0
  181. package/dist/frontend/ts7/enums.js +43 -0
  182. package/dist/frontend/ts7/enums.js.map +1 -0
  183. package/dist/frontend/ts7/program.d.ts +99 -0
  184. package/dist/frontend/ts7/program.js +278 -0
  185. package/dist/frontend/ts7/program.js.map +1 -0
  186. package/dist/frontend/ts7/world-check.d.ts +3 -0
  187. package/dist/frontend/ts7/world-check.js +34 -0
  188. package/dist/frontend/ts7/world-check.js.map +1 -0
  189. package/dist/frontend/types.d.ts +205 -0
  190. package/dist/frontend/types.js +2485 -0
  191. package/dist/frontend/types.js.map +1 -0
  192. package/dist/index.d.ts +85 -0
  193. package/dist/index.js +429 -0
  194. package/dist/index.js.map +1 -0
  195. package/dist/ir/nodes.d.ts +4334 -0
  196. package/dist/ir/nodes.js +1906 -0
  197. package/dist/ir/nodes.js.map +1 -0
  198. package/dist/ir/serialize.d.ts +4 -0
  199. package/dist/ir/serialize.js +34 -0
  200. package/dist/ir/serialize.js.map +1 -0
  201. package/dist/ir/validate.d.ts +36 -0
  202. package/dist/ir/validate.js +4885 -0
  203. package/dist/ir/validate.js.map +1 -0
  204. package/package.json +30 -6
  205. package/README.md +0 -3
  206. package/index.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-modules.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import * as ts from "../ts7/adapter.js";
2
+ import type { Lowerer } from "./lowerer.js";
3
+ import type { FileParts } from "./lower-modules.js";
4
+ import { IrExpr, IrStmt, IrType } from "../../ir/nodes.js";
5
+ /** True when this module declaration produces NO runtime construct at all:
6
+ * ambient (`declare namespace/module`, `declare global`, string-named
7
+ * modules — .d.ts surface or user-file declares) or a non-instantiated
8
+ * body (only type-world statements inside). */
9
+ export declare function nsZeroRuntime(decl: ts.ModuleDeclaration): boolean;
10
+ /** Ambient module declaration: carries `declare` itself, sits in an
11
+ * ambient ancestor, or is the `declare global` augmentation. */
12
+ export declare function isAmbientModuleDecl(decl: ts.ModuleDeclaration): boolean;
13
+ /** A namespace SYMBOL's runtime state: "instantiated" when any merged
14
+ * declaration's block flattened (the object exists once a block ran;
15
+ * merged ambient declarations don't subtract), "typeOnly"/"ambient" when
16
+ * none did. Null for non-namespace symbols. */
17
+ export declare function nsSymbolRuntimeKind(L: Lowerer, sym: ts.Symbol): "instantiated" | "typeOnly" | "ambient" | null;
18
+ /** splitFiles' namespace hook: classify one top-level (or nested)
19
+ * ModuleDeclaration and either skip it (zero runtime — its blocks register
20
+ * as "typeOnly" so import= alias members still resolve statically) or
21
+ * FLATTEN its body into the file's parts: functions/classes hoist into the
22
+ * collection lists, everything else joins the init body in source order.
23
+ * Nested namespaces recurse; dotted declarations (`namespace A.B.C`)
24
+ * descend to the innermost block. */
25
+ export declare function collectNamespaceStmt(L: Lowerer, decl: ts.ModuleDeclaration, fp: FileParts): void;
26
+ /** The namespace-path prefix of a declaration's emitted name ("A%B." for
27
+ * an exported member of namespace A.B; "" at real top level). Segments
28
+ * join with '%' — a character no user identifier can contain, so a
29
+ * namespaced name can never collide with a plain top-level one after
30
+ * mangling. NON-exported members (and non-exported nested namespace
31
+ * segments) append the declaring block's source position: they are
32
+ * block-local bindings — two blocks of the same namespace may each declare
33
+ * one under the same spelling, and the position keeps their storage
34
+ * distinct (resolution is by symbol; names only need uniqueness and
35
+ * determinism). `modifierDecl` carries the declaration whose modifiers
36
+ * decide exportedness (the first declarator of a variable statement). */
37
+ export declare function nsPathPrefix(node: ts.Node, modifierDecl?: ts.Node): string;
38
+ /** The registered namespace-block kind a symbol's declaration sits in
39
+ * ("flattened" — a lowered value namespace; "typeOnly" — a skipped
40
+ * non-instantiated one, whose only value members are import= aliases), or
41
+ * null. The walk stops at class/function boundaries: a static member of a
42
+ * class INSIDE a namespace is the class's business, not the namespace's. */
43
+ export declare function nsBlockKindOfSymbol(L: Lowerer, sym: ts.Symbol): "flattened" | "typeOnly" | null;
44
+ /** The program SOURCE FILE a module-namespace expression denotes: the
45
+ * receiver is an identifier (an `import * as ns` / `export * as ns`
46
+ * binding — re-export chains resolve through getAliasedSymbol) or a
47
+ * property access whose member itself names a module (`agg.ns` where agg
48
+ * re-exports `* as ns`), and the alias chain lands on a module symbol
49
+ * whose declaration is a NON-DECLARATION source file of this program.
50
+ * Builtin/stdlib module namespaces (string-named ambient modules in
51
+ * .d.ts files) and npm packages answer null — their own chokepoints and
52
+ * fences keep ownership. */
53
+ export declare function moduleNsSourceFileOf(L: Lowerer, e: ts.Expression): ts.SourceFile | null;
54
+ /** The member identifier of a qualified namespace reference, when `access`
55
+ * reads a member declared in a lowered (or type-only) namespace block —
56
+ * or an EXPORT of a program module read through its namespace-import
57
+ * binding (`import * as ns from "./m"; ns.f`): the checker binds the
58
+ * member name to the exporter's own symbol either way. Callers delegate
59
+ * the actual lowering to the identifier paths — the member NAME resolves
60
+ * through resolveValueSymbol exactly like a bare reference (globals,
61
+ * function values, classes, generic functions). Module-namespace member
62
+ * reads are LIVE bindings in Node (the namespace object's properties
63
+ * alias the exporter's storage), which is exactly what resolving to the
64
+ * exporter's module global gives. */
65
+ export declare function nsMemberIdentOf(L: Lowerer, access: ts.PropertyAccessExpression): ts.Identifier | null;
66
+ /** The ROOT identifier of a qualifier chain that denotes a user-file
67
+ * AMBIENT namespace (every value declaration an ambient identifier-named
68
+ * ModuleDeclaration outside the stdlib/@types surface), or null. Reads
69
+ * through it compile to Node's ReferenceError naming the root — the
70
+ * ambient namespace object never exists at runtime. */
71
+ export declare function ambientNsRootOf(L: Lowerer, e: ts.Expression): ts.Identifier | null;
72
+ /** The ROOT identifier of a property/element-access chain that names an
73
+ * initializer-less AMBIENT variable (`declare const x: T;`, `declare var`)
74
+ * in a user program file — the `declare const __VERSION__` stance's CHAIN
75
+ * form. Node erases the declaration entirely, so the ROOT read throws the
76
+ * catchable ReferenceError "<name> is not defined" BEFORE any member or
77
+ * element key matters; callers lower the whole chain to that throw, typed
78
+ * by the use site. Mappable roots never need this (their bare-read
79
+ * undefRead composes through ordinary member lowerings); this serves the
80
+ * roots whose declared type has no mapping. Null for stdlib/@types roots
81
+ * (their own chokepoints stand), optional chains (conservative — the
82
+ * ordinary fences keep them), and anything declared with a value. */
83
+ export declare function ambientUndefVarRootOf(L: Lowerer, e: ts.Expression): ts.Identifier | null;
84
+ /** ambientUndefReadType's CONTEXTUAL fallback: when the use site's own
85
+ * type has no mapping (an `any`-typed member off a narrowed ambient), the
86
+ * type the value flows INTO types the throw instead — sound because the
87
+ * read never returns, so the typed dummy is never observed. */
88
+ export declare function contextualUndefReadType(L: Lowerer, node: ts.Expression): IrType | null;
89
+ /** The IR type an ambient-namespace undefRead carries at `node`: the use
90
+ * site's mapped type when it has one, the F64 dummy when the value is
91
+ * DISCARDED anyway (expression-statement position — the bare `Foo.a;`
92
+ * reads conformance tests are full of), null otherwise (the callers fall
93
+ * through to their ordinary fences). The read always throws, so the typed
94
+ * dummy is never observed. */
95
+ export declare function ambientUndefReadType(L: Lowerer, node: ts.Node): IrType | null;
96
+ /** The symbol behind `ident` when it names an ambient `declare function`
97
+ * NOTHING defines: every function declaration on the symbol is body-less
98
+ * and ambient in a USER program file (merge partners — the fundule's
99
+ * ambient namespace, an ambient class — may ride along; type-world
100
+ * declarations don't count). Node erases the declaration entirely, so a
101
+ * reference throws the catchable ReferenceError "<name> is not defined"
102
+ * at the use site — the `declare const` / ambient-namespace undefRead
103
+ * stance. Null for stdlib/@types surfaces (their own chokepoints stand),
104
+ * for overload signatures (an implementation exists), and for anything
105
+ * declared in a .d.ts. */
106
+ export declare function ambientUndefinedFnSymbolOf(L: Lowerer, ident: ts.Identifier): ts.Symbol | null;
107
+ /** Node's ReferenceError at an ambient namespace access — the undefRead
108
+ * libCall the ambient `declare const` path already uses, typed by the use
109
+ * site (it always throws; the typed dummy is abandoned by the unwind). */
110
+ export declare function nsUndefRead(L: Lowerer, rootName: string, node: ts.Node, type: IrType): IrExpr;
111
+ /** The source-order guard for one import=-alias segment (or a bare alias
112
+ * use): the alias statement captures its target's CURRENT value, so an
113
+ * init-position use above the alias — or an alias above its target — would
114
+ * observe what Node leaves uninitialized. Fences instead of diverging. */
115
+ export declare function fenceEarlyAliasUse(L: Lowerer, ident: ts.Identifier, refNode: ts.Node): void;
116
+ /** The source-order guard for a qualified namespace-member reference in
117
+ * init-executing position: the member's declaration (and every import=
118
+ * alias segment in the qualifier chain) must precede the reference —
119
+ * Node's namespace bodies run in source order, and `N.x` above the
120
+ * declaring statement observes an uninitialized binding (undefined member
121
+ * reads, TypeErrors on calls) that static resolution cannot reproduce.
122
+ * Function-body references are exempt: they take the module-globals stance
123
+ * the compiler already takes for top-level consts read through early
124
+ * calls. */
125
+ export declare function fenceEarlyNsMemberRef(L: Lowerer, access: ts.PropertyAccessExpression, memberSym: ts.Symbol): void;
126
+ /** The cross-block bare-reference fence. tsc's checker puts every
127
+ * exported member of EVERY block of a merged namespace in scope inside
128
+ * every other block, and tsc's own emit rewrites such bare references to
129
+ * the qualified form — but Node's transform (the oracle) does NOT:
130
+ * a bare `f()` in one block referring to `export function f` in a SIBLING
131
+ * block throws ReferenceError at runtime under
132
+ * `--experimental-transform-types`. Static resolution would silently
133
+ * print what Node crashes on, so those references fence with the fix in
134
+ * the message. References to members of the SAME block or an ENCLOSING
135
+ * namespace's block are lexically bound in the emitted nesting and lower
136
+ * fine; alias bindings (import=/ESM imports) are exempt here — the alias
137
+ * machinery carries its own guards. Called from resolveValueSymbol with
138
+ * the PRE-alias symbol; property NAMES (qualified reads — runtime
139
+ * property lookups, always fine) never reach it. */
140
+ export declare function fenceCrossBlockNsRef(L: Lowerer, ident: ts.Identifier, symbol: ts.Symbol): void;
141
+ /** Assignment-target resolution for namespace-qualified writes
142
+ * (`N.x = v`, `N.x += v`, `N.x++`): the member's module global — exported
143
+ * `let` members are ordinary mutable globals (tsc already rejected writes
144
+ * to consts/functions/classes through the qualifier). Null when `access`
145
+ * is not a lowered-namespace member at all; a member whose declaration
146
+ * never registered storage takes the blocked-binding cascade. */
147
+ export declare function nsWritableTarget(L: Lowerer, access: ts.PropertyAccessExpression): {
148
+ id: string;
149
+ type: IrType;
150
+ } | null;
151
+ /** lowerStmt's ImportEqualsDeclaration case. The RUNTIME require form
152
+ * keeps its fence (preflight owns the top-level sites; namespace-internal
153
+ * ones land here); `import type x = require(...)` is pure type surface and
154
+ * lowers to nothing. The entity form is pure alias plumbing — references
155
+ * resolve through the checker to the target's own registrations and the
156
+ * statement emits nothing — EXCEPT aliases of MUTABLE bindings: Node's
157
+ * transform emits `var x = N.y` (a snapshot at the alias statement), so
158
+ * collection registered the alias its own const global (keyed by the
159
+ * pre-alias symbol — resolveValueSymbol stops there) and this statement
160
+ * assigns it from the target's storage, exactly when Node does. */
161
+ export declare function lowerImportEquals(L: Lowerer, stmt: ts.ImportEqualsDeclaration): IrStmt | null;
162
+ /** The bare-identifier fence for namespace objects used as VALUES: the
163
+ * namespace has no first-class runtime object here — members lower at
164
+ * their qualified access sites. Ambient namespaces compile to Node's
165
+ * ReferenceError instead when the use site's type maps (the object never
166
+ * exists at runtime). Returns null when `ident` is not a namespace
167
+ * reference at all. */
168
+ export declare function lowerNsIdentifierValue(L: Lowerer, ident: ts.Identifier): IrExpr | null;