@velarscript/compiler 0.10.1

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 (159) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +70 -0
  3. package/dist/analyzer.d.ts +1175 -0
  4. package/dist/analyzer.d.ts.map +1 -0
  5. package/dist/analyzer.js +12130 -0
  6. package/dist/analyzer.js.map +1 -0
  7. package/dist/application-package-host.d.ts +28 -0
  8. package/dist/application-package-host.d.ts.map +1 -0
  9. package/dist/application-package-host.js +2 -0
  10. package/dist/application-package-host.js.map +1 -0
  11. package/dist/ast.d.ts +853 -0
  12. package/dist/ast.d.ts.map +1 -0
  13. package/dist/ast.js +245 -0
  14. package/dist/ast.js.map +1 -0
  15. package/dist/class-runtime.d.ts +6 -0
  16. package/dist/class-runtime.d.ts.map +1 -0
  17. package/dist/class-runtime.js +45 -0
  18. package/dist/class-runtime.js.map +1 -0
  19. package/dist/collection-lowering-runtime.d.ts +7 -0
  20. package/dist/collection-lowering-runtime.d.ts.map +1 -0
  21. package/dist/collection-lowering-runtime.js +952 -0
  22. package/dist/collection-lowering-runtime.js.map +1 -0
  23. package/dist/collection-runtime.d.ts +16 -0
  24. package/dist/collection-runtime.d.ts.map +1 -0
  25. package/dist/collection-runtime.js +231 -0
  26. package/dist/collection-runtime.js.map +1 -0
  27. package/dist/core-vocabulary.d.ts +141 -0
  28. package/dist/core-vocabulary.d.ts.map +1 -0
  29. package/dist/core-vocabulary.js +88 -0
  30. package/dist/core-vocabulary.js.map +1 -0
  31. package/dist/diagnostic.d.ts +42 -0
  32. package/dist/diagnostic.d.ts.map +1 -0
  33. package/dist/diagnostic.js +66 -0
  34. package/dist/diagnostic.js.map +1 -0
  35. package/dist/embedded-javascript.d.ts +74 -0
  36. package/dist/embedded-javascript.d.ts.map +1 -0
  37. package/dist/embedded-javascript.js +341 -0
  38. package/dist/embedded-javascript.js.map +1 -0
  39. package/dist/embedded-module.d.ts +11 -0
  40. package/dist/embedded-module.d.ts.map +1 -0
  41. package/dist/embedded-module.js +67 -0
  42. package/dist/embedded-module.js.map +1 -0
  43. package/dist/embedded-source.d.ts +19 -0
  44. package/dist/embedded-source.d.ts.map +1 -0
  45. package/dist/embedded-source.js +61 -0
  46. package/dist/embedded-source.js.map +1 -0
  47. package/dist/emitter.d.ts +188 -0
  48. package/dist/emitter.d.ts.map +1 -0
  49. package/dist/emitter.js +3254 -0
  50. package/dist/emitter.js.map +1 -0
  51. package/dist/error-runtime.d.ts +17 -0
  52. package/dist/error-runtime.d.ts.map +1 -0
  53. package/dist/error-runtime.js +109 -0
  54. package/dist/error-runtime.js.map +1 -0
  55. package/dist/extension.d.ts +373 -0
  56. package/dist/extension.d.ts.map +1 -0
  57. package/dist/extension.js +25 -0
  58. package/dist/extension.js.map +1 -0
  59. package/dist/formatter.d.ts +13 -0
  60. package/dist/formatter.d.ts.map +1 -0
  61. package/dist/formatter.js +1440 -0
  62. package/dist/formatter.js.map +1 -0
  63. package/dist/framework-host.d.ts +87 -0
  64. package/dist/framework-host.d.ts.map +1 -0
  65. package/dist/framework-host.js +2 -0
  66. package/dist/framework-host.js.map +1 -0
  67. package/dist/index.d.ts +75 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +932 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/interpolated-string.d.ts +47 -0
  72. package/dist/interpolated-string.d.ts.map +1 -0
  73. package/dist/interpolated-string.js +344 -0
  74. package/dist/interpolated-string.js.map +1 -0
  75. package/dist/json-runtime.d.ts +2 -0
  76. package/dist/json-runtime.d.ts.map +1 -0
  77. package/dist/json-runtime.js +193 -0
  78. package/dist/json-runtime.js.map +1 -0
  79. package/dist/language-guidance.d.ts +31 -0
  80. package/dist/language-guidance.d.ts.map +1 -0
  81. package/dist/language-guidance.js +187 -0
  82. package/dist/language-guidance.js.map +1 -0
  83. package/dist/lexer.d.ts +85 -0
  84. package/dist/lexer.d.ts.map +1 -0
  85. package/dist/lexer.js +1004 -0
  86. package/dist/lexer.js.map +1 -0
  87. package/dist/limits.d.ts +2 -0
  88. package/dist/limits.d.ts.map +1 -0
  89. package/dist/limits.js +2 -0
  90. package/dist/limits.js.map +1 -0
  91. package/dist/mechanical-fix.d.ts +26 -0
  92. package/dist/mechanical-fix.d.ts.map +1 -0
  93. package/dist/mechanical-fix.js +61 -0
  94. package/dist/mechanical-fix.js.map +1 -0
  95. package/dist/narrowing-runtime.d.ts +5 -0
  96. package/dist/narrowing-runtime.d.ts.map +1 -0
  97. package/dist/narrowing-runtime.js +27 -0
  98. package/dist/narrowing-runtime.js.map +1 -0
  99. package/dist/number-runtime.d.ts +3 -0
  100. package/dist/number-runtime.d.ts.map +1 -0
  101. package/dist/number-runtime.js +37 -0
  102. package/dist/number-runtime.js.map +1 -0
  103. package/dist/parser.d.ts +245 -0
  104. package/dist/parser.d.ts.map +1 -0
  105. package/dist/parser.js +3582 -0
  106. package/dist/parser.js.map +1 -0
  107. package/dist/primitive-runtime.d.ts +4 -0
  108. package/dist/primitive-runtime.d.ts.map +1 -0
  109. package/dist/primitive-runtime.js +39 -0
  110. package/dist/primitive-runtime.js.map +1 -0
  111. package/dist/promise-runtime.d.ts +6 -0
  112. package/dist/promise-runtime.d.ts.map +1 -0
  113. package/dist/promise-runtime.js +86 -0
  114. package/dist/promise-runtime.js.map +1 -0
  115. package/dist/reactive-bridge-runtime.d.ts +7 -0
  116. package/dist/reactive-bridge-runtime.d.ts.map +1 -0
  117. package/dist/reactive-bridge-runtime.js +112 -0
  118. package/dist/reactive-bridge-runtime.js.map +1 -0
  119. package/dist/runtime-abi.d.ts +24 -0
  120. package/dist/runtime-abi.d.ts.map +1 -0
  121. package/dist/runtime-abi.js +24 -0
  122. package/dist/runtime-abi.js.map +1 -0
  123. package/dist/semantic.d.ts +142 -0
  124. package/dist/semantic.d.ts.map +1 -0
  125. package/dist/semantic.js +845 -0
  126. package/dist/semantic.js.map +1 -0
  127. package/dist/source-names.d.ts +32 -0
  128. package/dist/source-names.d.ts.map +1 -0
  129. package/dist/source-names.js +101 -0
  130. package/dist/source-names.js.map +1 -0
  131. package/dist/source.d.ts +19 -0
  132. package/dist/source.d.ts.map +1 -0
  133. package/dist/source.js +64 -0
  134. package/dist/source.js.map +1 -0
  135. package/dist/text-runtime.d.ts +2 -0
  136. package/dist/text-runtime.d.ts.map +1 -0
  137. package/dist/text-runtime.js +285 -0
  138. package/dist/text-runtime.js.map +1 -0
  139. package/dist/token.d.ts +19 -0
  140. package/dist/token.d.ts.map +1 -0
  141. package/dist/token.js +51 -0
  142. package/dist/token.js.map +1 -0
  143. package/dist/type-registry-runtime.d.ts +7 -0
  144. package/dist/type-registry-runtime.d.ts.map +1 -0
  145. package/dist/type-registry-runtime.js +51 -0
  146. package/dist/type-registry-runtime.js.map +1 -0
  147. package/dist/type-validation-runtime.d.ts +17 -0
  148. package/dist/type-validation-runtime.d.ts.map +1 -0
  149. package/dist/type-validation-runtime.js +150 -0
  150. package/dist/type-validation-runtime.js.map +1 -0
  151. package/dist/types.d.ts +356 -0
  152. package/dist/types.d.ts.map +1 -0
  153. package/dist/types.js +1170 -0
  154. package/dist/types.js.map +1 -0
  155. package/dist/utf8-runtime.d.ts +7 -0
  156. package/dist/utf8-runtime.d.ts.map +1 -0
  157. package/dist/utf8-runtime.js +43 -0
  158. package/dist/utf8-runtime.js.map +1 -0
  159. package/package.json +48 -0
@@ -0,0 +1,356 @@
1
+ import type { TypeReference, TypeSyntax } from "./ast.ts";
2
+ export interface EnumInfo {
3
+ readonly identity: string;
4
+ readonly members: ReadonlySet<string>;
5
+ }
6
+ /**
7
+ * D55 rule 120: a generic record declaration, in the form every later stage
8
+ * needs it — the identity its instantiations are keyed under, the parameter
9
+ * names and their bounds, and the field table with the `parameter` types still
10
+ * standing in it. This is the shape that crosses a module interface, so a
11
+ * dependent can write `Box<its own record>` without the declaring module ever
12
+ * having anticipated that argument.
13
+ */
14
+ export interface GenericTypeInfo {
15
+ readonly identity: string;
16
+ readonly name: string;
17
+ readonly parameterNames: readonly string[];
18
+ readonly parameterBounds: readonly (TypeParameterBound | null)[];
19
+ readonly fields: ReadonlyMap<string, ValueType>;
20
+ readonly readonlyFields?: ReadonlySet<string>;
21
+ }
22
+ export type ExtensionTypeDisplay = {
23
+ readonly kind: "named";
24
+ readonly name: string;
25
+ } | {
26
+ readonly kind: "constructor";
27
+ readonly prefix: string;
28
+ readonly name: string;
29
+ } | {
30
+ readonly kind: "properties";
31
+ readonly name: string;
32
+ readonly result: string;
33
+ readonly hiddenOptionalProperties?: ReadonlyMap<string, string>;
34
+ };
35
+ /**
36
+ * A target-owned type family. Core traverses its nested types and owns stable
37
+ * identity, while the active language extension owns semantic compatibility
38
+ * between roles in the family (for example a framework constructor satisfying
39
+ * a framework contract).
40
+ */
41
+ export interface ExtensionValueType {
42
+ readonly kind: "extension";
43
+ readonly extensionId: string;
44
+ readonly family: string;
45
+ readonly role: string;
46
+ readonly nominal?: string;
47
+ readonly properties: ReadonlyMap<string, ValueType>;
48
+ readonly requiredProperties: ReadonlySet<string>;
49
+ readonly arguments: readonly ValueType[];
50
+ readonly metadata?: Readonly<Record<string, string>>;
51
+ readonly display: ExtensionTypeDisplay;
52
+ }
53
+ /**
54
+ * D55 rule 121: a generic record applied to arguments — `Box<string>`. The
55
+ * arguments ride on the application rather than inside the `parameter` kind,
56
+ * which keeps that kind's De Bruijn contract literal; this is D41 item 61's own
57
+ * precedent for bounds, applied to the other piece of discriminating
58
+ * information. The canonical instantiation identity is a pure function of
59
+ * `declaration` and `arguments` (`genericApplicationIdentity`), so every stage
60
+ * that rebuilds an application — the analyzer, a module interface, generic
61
+ * `def` substitution — computes the same string without agreeing on anything
62
+ * else. `fieldsOf` is untouched: the identity keys an already-substituted field
63
+ * table, so no call site of it ever substitutes.
64
+ */
65
+ export interface GenericApplication {
66
+ /** The declaration's identity once nominals are resolved; its source name before that. */
67
+ readonly declaration: string;
68
+ /** The declaration's display name (`Box`), so substitution can rebuild the display text. */
69
+ readonly name: string;
70
+ readonly arguments: readonly ValueType[];
71
+ }
72
+ export type ValueType = {
73
+ readonly kind: "unknown";
74
+ readonly restricted?: boolean;
75
+ }
76
+ /**
77
+ * `textConvertible` marks the compiler-owned text-conversion domain (charter
78
+ * section 14). It is not spellable in source: only the built-in `str`
79
+ * declares it, so a bare `str` stays a first-class value while assignability
80
+ * still admits exactly the conversion whitelist at every call site.
81
+ */
82
+ | {
83
+ readonly kind: "any";
84
+ readonly textConvertible?: true;
85
+ } | {
86
+ readonly kind: "null";
87
+ } | {
88
+ readonly kind: "string";
89
+ } | {
90
+ readonly kind: "number";
91
+ } | {
92
+ readonly kind: "bool";
93
+ } | {
94
+ readonly kind: "optional";
95
+ readonly inner: ValueType;
96
+ } | {
97
+ readonly kind: "list";
98
+ readonly element: ValueType;
99
+ readonly readonlyView?: true;
100
+ } | {
101
+ readonly kind: "set";
102
+ readonly element: ValueType;
103
+ readonly readonlyView?: true;
104
+ } | {
105
+ readonly kind: "map";
106
+ readonly key: ValueType;
107
+ readonly value: ValueType;
108
+ readonly readonlyView?: true;
109
+ } | {
110
+ readonly kind: "record";
111
+ readonly value: ValueType;
112
+ readonly readonlyView?: true;
113
+ } | {
114
+ readonly kind: "promise";
115
+ readonly value: ValueType;
116
+ } | {
117
+ readonly kind: "object";
118
+ readonly fields: ReadonlyMap<string, ValueType>;
119
+ readonly readonlyFields?: ReadonlySet<string>;
120
+ readonly optionalFields?: ReadonlySet<string>;
121
+ readonly readonlyView?: true;
122
+ /**
123
+ * D51 (audit 12): a standard capability handle a target declares
124
+ * structurally rather than as a named type — a socket, an event stream, a
125
+ * terminal. `using` supplies the contract for capability handles (charter
126
+ * section 16), and only a compiler extension can set this flag, so a user
127
+ * record with a `close()` is still never auto-detected as ownable.
128
+ */
129
+ readonly capabilityHandle?: true;
130
+ } | {
131
+ readonly kind: "parameter";
132
+ readonly name: string;
133
+ readonly index: number;
134
+ } | {
135
+ readonly kind: "named";
136
+ readonly name: string;
137
+ readonly identity?: string;
138
+ readonly readonlyView?: true;
139
+ readonly application?: GenericApplication;
140
+ } | {
141
+ readonly kind: "class";
142
+ readonly name: string;
143
+ readonly identity?: string;
144
+ } | {
145
+ readonly kind: "enum";
146
+ readonly name: string;
147
+ readonly identity: string;
148
+ } | {
149
+ readonly kind: "enumMember";
150
+ readonly name: string;
151
+ readonly identity: string;
152
+ readonly member: string;
153
+ } | {
154
+ readonly kind: "enumObject";
155
+ readonly name: string;
156
+ readonly identity: string;
157
+ readonly members: ReadonlySet<string>;
158
+ } | {
159
+ readonly kind: "typeObject";
160
+ readonly name: string;
161
+ readonly value?: ValueType;
162
+ } | {
163
+ readonly kind: "runtimeType";
164
+ readonly value: ValueType;
165
+ } | {
166
+ readonly kind: "classConstructor";
167
+ readonly name: string;
168
+ readonly identity?: string;
169
+ } | ExtensionValueType | {
170
+ readonly kind: "function";
171
+ readonly typeParameterNames?: readonly string[];
172
+ readonly typeParameterBounds?: readonly (TypeParameterBound | null)[];
173
+ readonly parameters: readonly ValueType[];
174
+ readonly parameterNames?: readonly string[];
175
+ readonly requiredParameters: number;
176
+ readonly rest?: ValueType;
177
+ readonly result: ValueType;
178
+ } | {
179
+ readonly kind: "action";
180
+ readonly typeParameterNames?: readonly string[];
181
+ readonly typeParameterBounds?: readonly (TypeParameterBound | null)[];
182
+ readonly parameters: readonly ValueType[];
183
+ readonly parameterNames?: readonly string[];
184
+ readonly requiredParameters: number;
185
+ readonly rest?: ValueType;
186
+ readonly result: ValueType;
187
+ } | {
188
+ readonly kind: "intrinsic";
189
+ readonly name: string;
190
+ readonly typeParameterNames?: readonly string[];
191
+ readonly typeParameterBounds?: readonly (TypeParameterBound | null)[];
192
+ readonly parameters: readonly ValueType[];
193
+ readonly parameterNames?: readonly string[];
194
+ readonly requiredParameters: number;
195
+ readonly rest?: ValueType;
196
+ readonly result: ValueType;
197
+ } | {
198
+ readonly kind: "union";
199
+ readonly members: readonly ValueType[];
200
+ };
201
+ /** Canonical identities for Core's cross-runtime binary storage types. */
202
+ export declare const VELAR_BYTES_TYPE_IDENTITY = "velar/binary#type:Bytes";
203
+ export declare const VELAR_UINT8_BUFFER_TYPE_IDENTITY = "velar/binary#type:UInt8Buffer";
204
+ export declare const VELAR_UINT16_BUFFER_TYPE_IDENTITY = "velar/binary#type:UInt16Buffer";
205
+ export declare const VELAR_UINT32_BUFFER_TYPE_IDENTITY = "velar/binary#type:UInt32Buffer";
206
+ export declare const VELAR_FLOAT32_BUFFER_TYPE_IDENTITY = "velar/binary#type:Float32Buffer";
207
+ export type BinaryStorageKind = "bytes" | "uint8" | "uint16" | "uint32" | "float32";
208
+ /**
209
+ * Binary storage stays nominal even though its JavaScript representation is a
210
+ * typed array. This keeps Buffer's accidental surface out of source while
211
+ * giving the analyzer and emitter one exact fast-path discriminator.
212
+ */
213
+ export declare function binaryStorageKind(type: ValueType): BinaryStorageKind | null;
214
+ export declare const unknownType: ValueType;
215
+ export declare const invalidType: ValueType;
216
+ export declare const anyType: ValueType;
217
+ /** The declared parameter domain of the built-in `str`; see `isTextConvertibleType`. */
218
+ export declare const textConvertibleType: ValueType;
219
+ export declare const nullType: ValueType;
220
+ export declare const stringType: ValueType;
221
+ export declare const numberType: ValueType;
222
+ export declare const boolType: ValueType;
223
+ /**
224
+ * D41 item 61: the complete, closed bound vocabulary. A bound is a name the
225
+ * compiler owns; users cannot define one, and there is no syntax for combining
226
+ * two — D51 rule 110: not because the three form a containment chain (they do
227
+ * not: a Web text-shaped value satisfies Text and is refused by Data), but
228
+ * because no real function demands two at once. The grant table below is the
229
+ * whole definition; nothing computes a relation between two bounds.
230
+ */
231
+ export declare const typeParameterBoundNames: readonly ["Comparable", "Text", "Data"];
232
+ export type TypeParameterBound = (typeof typeParameterBoundNames)[number];
233
+ /** The capabilities a bound unlocks inside the declaring body. */
234
+ export type BoundCapability = "text" | "order" | "data";
235
+ export declare function isTypeParameterBound(name: string): name is TypeParameterBound;
236
+ /** Reads the grant table. An unbounded parameter (`null`) grants nothing. */
237
+ export declare function boundGrants(bound: TypeParameterBound | null | undefined, capability: BoundCapability): boolean;
238
+ /**
239
+ * A callable carrying `actual` bounds may stand where `expected` bounds are
240
+ * declared only when it demands no capability the target does not promise —
241
+ * decided by the same grant table, one capability at a time.
242
+ */
243
+ export declare function boundAccepts(actual: TypeParameterBound | null, expected: TypeParameterBound | null): boolean;
244
+ export interface TypeEnvironment {
245
+ fieldsOf(identity: string): ReadonlyMap<string, ValueType> | null;
246
+ readonlyFieldsOf?(identity: string): ReadonlySet<string> | null;
247
+ isSubclassOf(actual: string, expected: string): boolean;
248
+ isPrimitiveType(name: string): boolean;
249
+ isPrimitiveSubtype(actual: string, expected: string): boolean;
250
+ isExtensionTypeAssignable?(actual: ExtensionValueType, expected: ExtensionValueType, assign: (actual: ValueType, expected: ValueType) => boolean): boolean | undefined;
251
+ /** Target-owned total text forms used by f-strings and the built-in `str`. */
252
+ extensionTextForm?(type: ValueType): boolean | undefined;
253
+ /** Expands declared type aliases; the text-conversion domain checks the expanded shape. */
254
+ expandTypeAliases?(type: ValueType): ValueType;
255
+ /**
256
+ * D41 item 61 risk 2: the declared bound of a type parameter in scope. The
257
+ * bound deliberately lives outside the `parameter` type kind (whose identity
258
+ * encodes only its De Bruijn index), so the environment answers it from the
259
+ * declaration frame the annotation was resolved in.
260
+ */
261
+ boundOf?(type: Extract<ValueType, {
262
+ kind: "parameter";
263
+ }>): TypeParameterBound | null;
264
+ /** Decides whether a solved type argument satisfies a declared bound. */
265
+ satisfiesBound?(type: ValueType, bound: TypeParameterBound): boolean;
266
+ }
267
+ /**
268
+ * The text-conversion whitelist (charter section 14): values whose text form is
269
+ * total and hook-free. This is the single authority behind both the direct
270
+ * `str(value)` / f-string check and the assignability of the `textConvertible`
271
+ * parameter domain, so `str` used as a value cannot admit anything a direct
272
+ * call rejects.
273
+ */
274
+ export declare function isTextConvertibleType(type: ValueType, environment: TypeEnvironment): boolean;
275
+ export type ExtensionTypeSyntaxResolver = (syntax: TypeSyntax, resolve: (syntax: TypeSyntax) => ValueType) => ValueType | undefined;
276
+ export declare function resolveTypeReference(reference: TypeReference, extension?: ExtensionTypeSyntaxResolver): ValueType;
277
+ export declare function typeFromSyntax(syntax: TypeSyntax, extension?: ExtensionTypeSyntaxResolver): ValueType;
278
+ /**
279
+ * The canonical identity of one instantiation. D55 rule 121 puts the arguments
280
+ * in the identity string rather than adding a field `typeIdentity` would have
281
+ * to learn, so `Box<string>` and `Box<number>` are two identities and
282
+ * `typeIdentity`'s `named` branch is unchanged. Arguments are keyed by their
283
+ * own identities, which is what makes `Box<Id>` and `Box<string>` one type when
284
+ * `Id` is an alias of `string`.
285
+ */
286
+ export declare function genericApplicationIdentity(declaration: string, arguments_: readonly ValueType[]): string;
287
+ /** The display text of one instantiation — `Box<string>`. */
288
+ export declare function genericApplicationName(name: string, arguments_: readonly ValueType[]): string;
289
+ /** The one constructor for a resolved application, so identity and text never diverge. */
290
+ export declare function genericApplicationType(declaration: string, name: string, arguments_: readonly ValueType[], readonlyView?: boolean): Extract<ValueType, {
291
+ kind: "named";
292
+ }>;
293
+ /**
294
+ * Rebuilds a type with `map` applied to each type it directly contains. The
295
+ * nested positions are exactly the ones `substituteTypeParameters` walks, kept
296
+ * in one place so a traversal added by a caller cannot miss one of them.
297
+ */
298
+ export declare function mapNestedTypes(type: ValueType, map: (nested: ValueType) => ValueType): ValueType;
299
+ export declare function formatTypeReference(reference: TypeReference): string;
300
+ export declare function formatTypeSyntax(syntax: TypeSyntax): string;
301
+ export declare function isReadonlyView(type: ValueType): boolean;
302
+ export declare function readonlyViewOf(type: ValueType): ValueType;
303
+ export declare function mutableViewOf(type: ValueType): ValueType;
304
+ export declare function optionalOf(type: ValueType): ValueType;
305
+ export declare function nonOptional(type: ValueType): ValueType;
306
+ export declare function unionOf(types: readonly ValueType[]): ValueType;
307
+ export declare function mergeTypes(left: ValueType, right: ValueType): ValueType;
308
+ export declare function resolvedAsyncType(type: ValueType): ValueType;
309
+ export declare function sameType(left: ValueType, right: ValueType): boolean;
310
+ export declare function sameTypeIgnoringCallableParameterNames(left: ValueType, right: ValueType): boolean;
311
+ export declare function isAssignable(actual: ValueType, expected: ValueType, environment: TypeEnvironment, seen?: Set<string>): boolean;
312
+ export declare function semanticTypeIdentity(type: ValueType): string;
313
+ export declare const analysisTypeIdentity: typeof semanticTypeIdentity;
314
+ export declare function isInvalidType(type: ValueType): boolean;
315
+ export declare function describeType(type: ValueType): string;
316
+ type CallableType = Extract<ValueType, {
317
+ readonly kind: "function" | "action" | "intrinsic";
318
+ }>;
319
+ export declare function typeContainsParameter(type: ValueType, matches?: (parameter: Extract<ValueType, {
320
+ kind: "parameter";
321
+ }>) => boolean): boolean;
322
+ export declare function typeContainsRuntimeTypeCheck(type: ValueType): boolean;
323
+ export declare function substituteTypeParameters(type: ValueType, bindings: readonly (ValueType | null)[]): ValueType;
324
+ export declare function bindNamedTypeParameters(type: ValueType, parameters: ReadonlyMap<string, ValueType>): ValueType;
325
+ /**
326
+ * D51 item NEW-D3: `unknown` never *binds* a parameter — merging it would erase
327
+ * every concrete actual at the other positions — but the site must still be
328
+ * remembered. A bounded parameter that only `unknown` ever reached is solved to
329
+ * `unknown`, which satisfies no bound; dropping the site silently let `unknown`
330
+ * through every bound and on into the implicit-conversion the bound forbids.
331
+ * Callers that check bounds pass this sink; the rest may ignore it.
332
+ */
333
+ export declare function unifyTypeParameters(pattern: ValueType, actual: ValueType, bindings: (ValueType | null)[], fieldsOf?: (identity: string) => ReadonlyMap<string, ValueType> | null, unknownParameters?: Set<number>): void;
334
+ /** A type argument solved for a bounded parameter that the bound rejects. */
335
+ export interface GenericBoundViolation {
336
+ readonly index: number;
337
+ readonly name: string;
338
+ readonly bound: TypeParameterBound;
339
+ readonly solved: ValueType;
340
+ }
341
+ /**
342
+ * Reports every solved binding its declared bound rejects. `satisfiesBound` is
343
+ * the environment's decision procedure, so the three predicates that answer a
344
+ * bound live in exactly one place (the analyzer).
345
+ */
346
+ export declare function collectGenericBoundViolations(callable: CallableType, bindings: readonly (ValueType | null)[], satisfiesBound: (type: ValueType, bound: TypeParameterBound) => boolean, unknownParameters?: ReadonlySet<number>): readonly GenericBoundViolation[];
347
+ /**
348
+ * D55 rule 124: the same judgment for a declaration that is not a callable —
349
+ * `type Box<T: Data>` applied to an argument. The callable form above is now a
350
+ * thin caller, so a bound is decided in exactly one place no matter which
351
+ * declaration form carries it.
352
+ */
353
+ export declare function collectTypeArgumentBoundViolations(names: readonly string[] | undefined, bounds: readonly (TypeParameterBound | null)[] | undefined, bindings: readonly (ValueType | null)[], satisfiesBound: (type: ValueType, bound: TypeParameterBound) => boolean, unknownParameters?: ReadonlySet<number>): readonly GenericBoundViolation[];
354
+ export declare function instantiateGenericCallable(actual: CallableType, expected: CallableType, environment: TypeEnvironment, violations?: GenericBoundViolation[]): CallableType;
355
+ export {};
356
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}