@tsonic/frontend 0.0.60 → 0.0.62

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 (185) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/dotnet-metadata.d.ts.map +1 -1
  3. package/dist/dotnet-metadata.js +3 -1
  4. package/dist/dotnet-metadata.js.map +1 -1
  5. package/dist/dotnet-metadata.test.js.map +1 -1
  6. package/dist/ir/binding/index.d.ts +24 -0
  7. package/dist/ir/binding/index.d.ts.map +1 -1
  8. package/dist/ir/binding/index.js +51 -7
  9. package/dist/ir/binding/index.js.map +1 -1
  10. package/dist/ir/binding-resolution.test.js +4 -1
  11. package/dist/ir/binding-resolution.test.js.map +1 -1
  12. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  13. package/dist/ir/builder/imports.d.ts.map +1 -1
  14. package/dist/ir/builder/imports.js +91 -5
  15. package/dist/ir/builder/imports.js.map +1 -1
  16. package/dist/ir/builder.test.js +233 -24
  17. package/dist/ir/builder.test.js.map +1 -1
  18. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  19. package/dist/ir/converters/expressions/access.js +94 -11
  20. package/dist/ir/converters/expressions/access.js.map +1 -1
  21. package/dist/ir/converters/expressions/calls.d.ts +1 -1
  22. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  23. package/dist/ir/converters/expressions/calls.js +398 -7
  24. package/dist/ir/converters/expressions/calls.js.map +1 -1
  25. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  26. package/dist/ir/converters/expressions/collections.js +19 -22
  27. package/dist/ir/converters/expressions/collections.js.map +1 -1
  28. package/dist/ir/converters/expressions/functions.js +2 -2
  29. package/dist/ir/converters/expressions/functions.js.map +1 -1
  30. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  31. package/dist/ir/converters/expressions/operators.js +1 -1
  32. package/dist/ir/converters/expressions/operators.js.map +1 -1
  33. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  34. package/dist/ir/converters/expressions/other.js +16 -2
  35. package/dist/ir/converters/expressions/other.js.map +1 -1
  36. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  37. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  38. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  39. package/dist/ir/converters/statements/control/loops.js +8 -2
  40. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  41. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  42. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  43. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  44. package/dist/ir/converters/statements/declarations/classes/methods.js +70 -22
  45. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  46. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  47. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +10 -4
  48. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  49. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  50. package/dist/ir/converters/statements/declarations/classes/override-detection.js +5 -1
  51. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  52. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  53. package/dist/ir/converters/statements/declarations/classes/properties.js +2 -1
  54. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  55. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  56. package/dist/ir/converters/statements/declarations/variables.js +1 -1
  57. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  58. package/dist/ir/converters/statements/helpers.d.ts.map +1 -1
  59. package/dist/ir/converters/statements/helpers.js +10 -2
  60. package/dist/ir/converters/statements/helpers.js.map +1 -1
  61. package/dist/ir/converters/type-env.d.ts.map +1 -1
  62. package/dist/ir/converters/type-env.js.map +1 -1
  63. package/dist/ir/expression-converter.d.ts.map +1 -1
  64. package/dist/ir/expression-converter.js +25 -2
  65. package/dist/ir/expression-converter.js.map +1 -1
  66. package/dist/ir/field-marker.test.js.map +1 -1
  67. package/dist/ir/program-context.d.ts.map +1 -1
  68. package/dist/ir/program-context.js +6 -2
  69. package/dist/ir/program-context.js.map +1 -1
  70. package/dist/ir/this-parameter-inference-rewrap.test.d.ts +14 -0
  71. package/dist/ir/this-parameter-inference-rewrap.test.d.ts.map +1 -0
  72. package/dist/ir/this-parameter-inference-rewrap.test.js +110 -0
  73. package/dist/ir/this-parameter-inference-rewrap.test.js.map +1 -0
  74. package/dist/ir/this-parameter-inference.test.d.ts +13 -0
  75. package/dist/ir/this-parameter-inference.test.d.ts.map +1 -0
  76. package/dist/ir/this-parameter-inference.test.js +165 -0
  77. package/dist/ir/this-parameter-inference.test.js.map +1 -0
  78. package/dist/ir/type-system/internal/handle-types.d.ts +2 -0
  79. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  80. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -1
  81. package/dist/ir/type-system/internal/nominal-env.js.map +1 -1
  82. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  83. package/dist/ir/type-system/internal/type-converter/orchestrator.js +3 -1
  84. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  85. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  86. package/dist/ir/type-system/internal/type-converter/references.js +204 -2
  87. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  88. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -1
  89. package/dist/ir/type-system/internal/type-converter/utility-types.js +9 -4
  90. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -1
  91. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
  92. package/dist/ir/type-system/internal/type-registry.js +8 -4
  93. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  94. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  95. package/dist/ir/type-system/internal/universe/clr-catalog.js +27 -10
  96. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  97. package/dist/ir/type-system/internal/universe/source-catalog.js +3 -1
  98. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
  99. package/dist/ir/type-system/internal/universe/types.d.ts +7 -0
  100. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -1
  101. package/dist/ir/type-system/internal/universe/types.js.map +1 -1
  102. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -1
  103. package/dist/ir/type-system/internal/universe/unified-universe.js +16 -1
  104. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -1
  105. package/dist/ir/type-system/internal/universe/unified-universe.test.d.ts +2 -0
  106. package/dist/ir/type-system/internal/universe/unified-universe.test.d.ts.map +1 -0
  107. package/dist/ir/type-system/internal/universe/unified-universe.test.js +87 -0
  108. package/dist/ir/type-system/internal/universe/unified-universe.test.js.map +1 -0
  109. package/dist/ir/type-system/type-system.d.ts +12 -0
  110. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  111. package/dist/ir/type-system/type-system.js +291 -35
  112. package/dist/ir/type-system/type-system.js.map +1 -1
  113. package/dist/ir/types/ir-types.d.ts.map +1 -1
  114. package/dist/ir/types/module.d.ts +11 -0
  115. package/dist/ir/types/module.d.ts.map +1 -1
  116. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  117. package/dist/ir/validation/anonymous-type-lowering-pass.js +101 -49
  118. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  119. package/dist/ir/validation/arrow-return-finalization-pass.js +13 -3
  120. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -1
  121. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  122. package/dist/ir/validation/attribute-collection-pass.js +11 -3
  123. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  124. package/dist/ir/validation/attribute-collection-pass.test.js +30 -13
  125. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  126. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -1
  127. package/dist/ir/validation/char-validation-pass.js +6 -3
  128. package/dist/ir/validation/char-validation-pass.js.map +1 -1
  129. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  130. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  131. package/dist/ir/validation/numeric-invariants.test.js +46 -0
  132. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  133. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  134. package/dist/ir/validation/numeric-proof-pass.js +68 -1
  135. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  136. package/dist/ir/validation/rest-type-synthesis-pass.js +1 -1
  137. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -1
  138. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  139. package/dist/ir/validation/soundness-gate.js +6 -4
  140. package/dist/ir/validation/soundness-gate.js.map +1 -1
  141. package/dist/ir/validation/soundness-gate.test.js +89 -0
  142. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  143. package/dist/program/bindings.d.ts +7 -0
  144. package/dist/program/bindings.d.ts.map +1 -1
  145. package/dist/program/bindings.js +17 -6
  146. package/dist/program/bindings.js.map +1 -1
  147. package/dist/program/clr-bindings-discovery.d.ts +19 -0
  148. package/dist/program/clr-bindings-discovery.d.ts.map +1 -0
  149. package/dist/program/clr-bindings-discovery.js +150 -0
  150. package/dist/program/clr-bindings-discovery.js.map +1 -0
  151. package/dist/program/clr-bindings-discovery.test.d.ts +2 -0
  152. package/dist/program/clr-bindings-discovery.test.d.ts.map +1 -0
  153. package/dist/program/clr-bindings-discovery.test.js +119 -0
  154. package/dist/program/clr-bindings-discovery.test.js.map +1 -0
  155. package/dist/program/creation.d.ts.map +1 -1
  156. package/dist/program/creation.js +2 -1
  157. package/dist/program/creation.js.map +1 -1
  158. package/dist/program/creation.test.js.map +1 -1
  159. package/dist/program/dependency-graph.d.ts +2 -2
  160. package/dist/program/dependency-graph.d.ts.map +1 -1
  161. package/dist/program/dependency-graph.js +26 -42
  162. package/dist/program/dependency-graph.js.map +1 -1
  163. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  164. package/dist/resolver/clr-bindings-resolver.js +3 -1
  165. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  166. package/dist/resolver/clr-bindings-resolver.test.js.map +1 -1
  167. package/dist/resolver/namespace.d.ts.map +1 -1
  168. package/dist/resolver/namespace.js +1 -3
  169. package/dist/resolver/namespace.js.map +1 -1
  170. package/dist/tsbindgen/names.d.ts.map +1 -1
  171. package/dist/tsbindgen/names.js +4 -2
  172. package/dist/tsbindgen/names.js.map +1 -1
  173. package/dist/validation/core-intrinsics.d.ts.map +1 -1
  174. package/dist/validation/core-intrinsics.js +3 -1
  175. package/dist/validation/core-intrinsics.js.map +1 -1
  176. package/dist/validation/extension-methods.d.ts.map +1 -1
  177. package/dist/validation/extension-methods.js.map +1 -1
  178. package/dist/validation/generics.d.ts.map +1 -1
  179. package/dist/validation/generics.js +1 -1
  180. package/dist/validation/generics.js.map +1 -1
  181. package/dist/validation/static-safety.d.ts.map +1 -1
  182. package/dist/validation/static-safety.js +17 -2
  183. package/dist/validation/static-safety.js.map +1 -1
  184. package/dist/validator.test.js.map +1 -1
  185. package/package.json +1 -1
@@ -8,6 +8,379 @@ import * as ts from "typescript";
8
8
  import { getSourceSpan, extractTypeArguments, checkIfRequiresSpecialization, } from "./helpers.js";
9
9
  import { convertExpression } from "../../expression-converter.js";
10
10
  import { createDiagnostic } from "../../../types/diagnostic.js";
11
+ const referenceTypeIdentity = (type) => type.typeId?.stableId
12
+ ? `id:${type.typeId.stableId}`
13
+ : type.resolvedClrType
14
+ ? `clr:${type.resolvedClrType}`
15
+ : `name:${type.name}`;
16
+ const irTypesEqual = (left, right) => {
17
+ if (left.kind !== right.kind)
18
+ return false;
19
+ switch (left.kind) {
20
+ case "primitiveType":
21
+ return left.name === right.name;
22
+ case "literalType":
23
+ return left.value === right.value;
24
+ case "voidType":
25
+ case "unknownType":
26
+ case "anyType":
27
+ case "neverType":
28
+ return true;
29
+ case "typeParameterType":
30
+ return left.name === right.name;
31
+ case "arrayType":
32
+ return irTypesEqual(left.elementType, right.elementType);
33
+ case "tupleType": {
34
+ const rhs = right;
35
+ if (left.elementTypes.length !== rhs.elementTypes.length)
36
+ return false;
37
+ return left.elementTypes.every((t, i) => {
38
+ const other = rhs.elementTypes[i];
39
+ return other ? irTypesEqual(t, other) : false;
40
+ });
41
+ }
42
+ case "dictionaryType":
43
+ return (irTypesEqual(left.keyType, right.keyType) &&
44
+ irTypesEqual(left.valueType, right.valueType));
45
+ case "referenceType": {
46
+ const rhs = right;
47
+ if (referenceTypeIdentity(left) !== referenceTypeIdentity(rhs))
48
+ return false;
49
+ const leftArgs = left.typeArguments ?? [];
50
+ const rightArgs = rhs.typeArguments ?? [];
51
+ if (leftArgs.length !== rightArgs.length)
52
+ return false;
53
+ return leftArgs.every((t, i) => {
54
+ const other = rightArgs[i];
55
+ return other ? irTypesEqual(t, other) : false;
56
+ });
57
+ }
58
+ case "unionType":
59
+ case "intersectionType": {
60
+ const rhs = right;
61
+ if (left.types.length !== rhs.types.length)
62
+ return false;
63
+ return left.types.every((t, i) => {
64
+ const other = rhs.types[i];
65
+ return other ? irTypesEqual(t, other) : false;
66
+ });
67
+ }
68
+ case "functionType": {
69
+ const rhs = right;
70
+ if (left.parameters.length !== rhs.parameters.length)
71
+ return false;
72
+ const paramsEqual = left.parameters.every((p, i) => {
73
+ const other = rhs.parameters[i];
74
+ if (!other ||
75
+ p.isRest !== other.isRest ||
76
+ p.isOptional !== other.isOptional)
77
+ return false;
78
+ if (!p.type || !other.type)
79
+ return p.type === other.type;
80
+ return irTypesEqual(p.type, other.type);
81
+ });
82
+ return paramsEqual && irTypesEqual(left.returnType, rhs.returnType);
83
+ }
84
+ case "objectType": {
85
+ const rhs = right;
86
+ if (left.members.length !== rhs.members.length)
87
+ return false;
88
+ return left.members.every((m, i) => {
89
+ const other = rhs.members[i];
90
+ if (!other || m.kind !== other.kind || m.name !== other.name) {
91
+ return false;
92
+ }
93
+ if (m.kind === "propertySignature") {
94
+ return (other.kind === "propertySignature" &&
95
+ m.isOptional === other.isOptional &&
96
+ m.isReadonly === other.isReadonly &&
97
+ irTypesEqual(m.type, other.type));
98
+ }
99
+ if (other.kind !== "methodSignature")
100
+ return false;
101
+ if ((m.typeParameters?.length ?? 0) !==
102
+ (other.typeParameters?.length ?? 0))
103
+ return false;
104
+ if (m.parameters.length !== other.parameters.length)
105
+ return false;
106
+ const paramsMatch = m.parameters.every((p, paramIndex) => {
107
+ const otherParam = other.parameters[paramIndex];
108
+ if (!otherParam)
109
+ return false;
110
+ if (p.isRest !== otherParam.isRest ||
111
+ p.isOptional !== otherParam.isOptional ||
112
+ p.passing !== otherParam.passing) {
113
+ return false;
114
+ }
115
+ if (!p.type || !otherParam.type)
116
+ return p.type === otherParam.type;
117
+ return irTypesEqual(p.type, otherParam.type);
118
+ });
119
+ if (!paramsMatch)
120
+ return false;
121
+ if (!m.returnType || !other.returnType) {
122
+ return m.returnType === other.returnType;
123
+ }
124
+ return irTypesEqual(m.returnType, other.returnType);
125
+ });
126
+ }
127
+ }
128
+ };
129
+ const unifyTypeTemplate = (template, actual, substitutions) => {
130
+ if (template.kind === "typeParameterType") {
131
+ const existing = substitutions.get(template.name);
132
+ if (!existing) {
133
+ substitutions.set(template.name, actual);
134
+ return true;
135
+ }
136
+ return irTypesEqual(existing, actual);
137
+ }
138
+ if (template.kind !== actual.kind)
139
+ return false;
140
+ switch (template.kind) {
141
+ case "primitiveType":
142
+ return template.name === actual.name;
143
+ case "literalType":
144
+ return template.value === actual.value;
145
+ case "voidType":
146
+ case "unknownType":
147
+ case "anyType":
148
+ case "neverType":
149
+ return true;
150
+ case "arrayType":
151
+ return unifyTypeTemplate(template.elementType, actual.elementType, substitutions);
152
+ case "tupleType": {
153
+ const rhs = actual;
154
+ if (template.elementTypes.length !== rhs.elementTypes.length)
155
+ return false;
156
+ return template.elementTypes.every((t, i) => {
157
+ const other = rhs.elementTypes[i];
158
+ return other ? unifyTypeTemplate(t, other, substitutions) : false;
159
+ });
160
+ }
161
+ case "dictionaryType":
162
+ return (unifyTypeTemplate(template.keyType, actual.keyType, substitutions) &&
163
+ unifyTypeTemplate(template.valueType, actual.valueType, substitutions));
164
+ case "referenceType": {
165
+ const rhs = actual;
166
+ if (referenceTypeIdentity(template) !== referenceTypeIdentity(rhs))
167
+ return false;
168
+ const templateArgs = template.typeArguments ?? [];
169
+ const actualArgs = rhs.typeArguments ?? [];
170
+ if (templateArgs.length !== actualArgs.length)
171
+ return false;
172
+ return templateArgs.every((t, i) => {
173
+ const other = actualArgs[i];
174
+ return other ? unifyTypeTemplate(t, other, substitutions) : false;
175
+ });
176
+ }
177
+ case "unionType":
178
+ case "intersectionType": {
179
+ const rhs = actual;
180
+ if (template.types.length !== rhs.types.length)
181
+ return false;
182
+ return template.types.every((t, i) => {
183
+ const other = rhs.types[i];
184
+ return other ? unifyTypeTemplate(t, other, substitutions) : false;
185
+ });
186
+ }
187
+ case "functionType": {
188
+ const rhs = actual;
189
+ if (template.parameters.length !== rhs.parameters.length)
190
+ return false;
191
+ const paramsMatch = template.parameters.every((p, i) => {
192
+ const other = rhs.parameters[i];
193
+ if (!other ||
194
+ p.isRest !== other.isRest ||
195
+ p.isOptional !== other.isOptional)
196
+ return false;
197
+ if (!p.type || !other.type)
198
+ return p.type === other.type;
199
+ return unifyTypeTemplate(p.type, other.type, substitutions);
200
+ });
201
+ return (paramsMatch &&
202
+ unifyTypeTemplate(template.returnType, rhs.returnType, substitutions));
203
+ }
204
+ case "objectType": {
205
+ const rhs = actual;
206
+ if (template.members.length !== rhs.members.length)
207
+ return false;
208
+ return template.members.every((m, i) => {
209
+ const other = rhs.members[i];
210
+ if (!other || m.kind !== other.kind || m.name !== other.name) {
211
+ return false;
212
+ }
213
+ if (m.kind === "propertySignature") {
214
+ return (other.kind === "propertySignature" &&
215
+ m.isOptional === other.isOptional &&
216
+ m.isReadonly === other.isReadonly &&
217
+ unifyTypeTemplate(m.type, other.type, substitutions));
218
+ }
219
+ if (other.kind !== "methodSignature")
220
+ return false;
221
+ if ((m.typeParameters?.length ?? 0) !==
222
+ (other.typeParameters?.length ?? 0))
223
+ return false;
224
+ if (m.parameters.length !== other.parameters.length)
225
+ return false;
226
+ const paramsMatch = m.parameters.every((p, paramIndex) => {
227
+ const otherParam = other.parameters[paramIndex];
228
+ if (!otherParam)
229
+ return false;
230
+ if (p.isRest !== otherParam.isRest ||
231
+ p.isOptional !== otherParam.isOptional ||
232
+ p.passing !== otherParam.passing) {
233
+ return false;
234
+ }
235
+ if (!p.type || !otherParam.type)
236
+ return p.type === otherParam.type;
237
+ return unifyTypeTemplate(p.type, otherParam.type, substitutions);
238
+ });
239
+ if (!paramsMatch)
240
+ return false;
241
+ if (!m.returnType || !other.returnType) {
242
+ return m.returnType === other.returnType;
243
+ }
244
+ return unifyTypeTemplate(m.returnType, other.returnType, substitutions);
245
+ });
246
+ }
247
+ }
248
+ };
249
+ const deriveSubstitutionsFromExpectedReturn = (returnTemplate, expectedType) => {
250
+ if (!returnTemplate || !expectedType)
251
+ return undefined;
252
+ const candidateQueue = expectedType.kind === "unionType"
253
+ ? [...expectedType.types]
254
+ : [expectedType];
255
+ const candidates = [];
256
+ const seen = new Set();
257
+ const enqueue = (candidate) => {
258
+ const key = JSON.stringify(candidate);
259
+ if (seen.has(key))
260
+ return;
261
+ seen.add(key);
262
+ candidateQueue.push(candidate);
263
+ };
264
+ while (candidateQueue.length > 0) {
265
+ const candidate = candidateQueue.shift();
266
+ if (!candidate)
267
+ continue;
268
+ candidates.push(candidate);
269
+ if (candidate.kind === "referenceType" &&
270
+ candidate.typeArguments &&
271
+ candidate.typeArguments.length === 1) {
272
+ const simpleName = candidate.name.split(".").pop() ?? candidate.name;
273
+ const clrName = candidate.resolvedClrType ?? candidate.name;
274
+ const isAsyncWrapper = simpleName === "Promise" ||
275
+ simpleName === "Task_1" ||
276
+ simpleName === "Task`1" ||
277
+ simpleName === "ValueTask_1" ||
278
+ simpleName === "ValueTask`1" ||
279
+ clrName === "System.Threading.Tasks.Task" ||
280
+ clrName === "System.Threading.Tasks.ValueTask" ||
281
+ clrName.startsWith("System.Threading.Tasks.Task`1") ||
282
+ clrName.startsWith("System.Threading.Tasks.ValueTask`1");
283
+ if (isAsyncWrapper) {
284
+ const inner = candidate.typeArguments[0];
285
+ if (inner)
286
+ enqueue(inner);
287
+ }
288
+ }
289
+ else if (candidate.kind === "unionType") {
290
+ for (const member of candidate.types) {
291
+ enqueue(member);
292
+ }
293
+ }
294
+ }
295
+ let matched;
296
+ for (const candidate of candidates) {
297
+ const attempt = new Map();
298
+ if (!unifyTypeTemplate(returnTemplate, candidate, attempt))
299
+ continue;
300
+ if (attempt.size === 0)
301
+ continue;
302
+ if (matched) {
303
+ return undefined;
304
+ }
305
+ matched = attempt;
306
+ }
307
+ return matched;
308
+ };
309
+ const substituteTypeParameters = (type, substitutions) => {
310
+ if (!type)
311
+ return undefined;
312
+ switch (type.kind) {
313
+ case "typeParameterType":
314
+ return substitutions.get(type.name) ?? type;
315
+ case "arrayType":
316
+ return {
317
+ ...type,
318
+ elementType: substituteTypeParameters(type.elementType, substitutions),
319
+ };
320
+ case "tupleType":
321
+ return {
322
+ ...type,
323
+ elementTypes: type.elementTypes.map((t) => substituteTypeParameters(t, substitutions)),
324
+ };
325
+ case "dictionaryType":
326
+ return {
327
+ ...type,
328
+ keyType: substituteTypeParameters(type.keyType, substitutions),
329
+ valueType: substituteTypeParameters(type.valueType, substitutions),
330
+ };
331
+ case "referenceType":
332
+ return {
333
+ ...type,
334
+ ...(type.typeArguments
335
+ ? {
336
+ typeArguments: type.typeArguments.map((t) => substituteTypeParameters(t, substitutions)),
337
+ }
338
+ : {}),
339
+ };
340
+ case "unionType":
341
+ case "intersectionType":
342
+ return {
343
+ ...type,
344
+ types: type.types.map((t) => substituteTypeParameters(t, substitutions)),
345
+ };
346
+ case "functionType":
347
+ return {
348
+ ...type,
349
+ parameters: type.parameters.map((p) => ({
350
+ ...p,
351
+ type: substituteTypeParameters(p.type, substitutions),
352
+ })),
353
+ returnType: substituteTypeParameters(type.returnType, substitutions),
354
+ };
355
+ case "objectType":
356
+ return {
357
+ ...type,
358
+ members: type.members.map((m) => {
359
+ if (m.kind === "propertySignature") {
360
+ return {
361
+ ...m,
362
+ type: substituteTypeParameters(m.type, substitutions),
363
+ };
364
+ }
365
+ return {
366
+ ...m,
367
+ typeParameters: m.typeParameters?.map((tp) => ({
368
+ ...tp,
369
+ constraint: substituteTypeParameters(tp.constraint, substitutions),
370
+ default: substituteTypeParameters(tp.default, substitutions),
371
+ })),
372
+ parameters: m.parameters.map((p) => ({
373
+ ...p,
374
+ type: substituteTypeParameters(p.type, substitutions),
375
+ })),
376
+ returnType: substituteTypeParameters(m.returnType, substitutions),
377
+ };
378
+ }),
379
+ };
380
+ default:
381
+ return type;
382
+ }
383
+ };
11
384
  /**
12
385
  * Unwrap call-site argument modifier markers.
13
386
  *
@@ -337,7 +710,12 @@ const extractArgumentPassingFromBinding = (callee, argCount, ctx, parameterTypes
337
710
  case "referenceType": {
338
711
  const lastDot = t.name.lastIndexOf(".");
339
712
  const simple = lastDot >= 0 ? t.name.slice(lastDot + 1) : t.name;
340
- return [simple.replace(/\$instance$/, "").replace(/^\_\_/, "").replace(/\$views$/, "")];
713
+ return [
714
+ simple
715
+ .replace(/\$instance$/, "")
716
+ .replace(/^\_\_/, "")
717
+ .replace(/\$views$/, ""),
718
+ ];
341
719
  }
342
720
  case "unionType":
343
721
  return Array.from(new Set(t.types.flatMap((x) => collectMatchNames(x))));
@@ -420,7 +798,7 @@ const extractArgumentPassingFromBinding = (callee, argCount, ctx, parameterTypes
420
798
  /**
421
799
  * Convert call expression
422
800
  */
423
- export const convertCallExpression = (node, ctx) => {
801
+ export const convertCallExpression = (node, ctx, expectedType) => {
424
802
  // Check for asinterface<T>(x) - compile-time-only interface view.
425
803
  //
426
804
  // Airplane-grade rule:
@@ -638,9 +1016,16 @@ export const convertCallExpression = (node, ctx) => {
638
1016
  argumentCount,
639
1017
  receiverType: receiverIrType,
640
1018
  explicitTypeArgs,
1019
+ expectedReturnType: expectedType,
641
1020
  })
642
1021
  : undefined;
643
- const initialParameterTypes = initialResolved?.parameterTypes;
1022
+ const initialParameterTypes = (() => {
1023
+ const substitutions = deriveSubstitutionsFromExpectedReturn(initialResolved?.returnType, expectedType);
1024
+ if (!substitutions || !initialResolved?.parameterTypes) {
1025
+ return initialResolved?.parameterTypes;
1026
+ }
1027
+ return initialResolved.parameterTypes.map((t) => substituteTypeParameters(t, substitutions));
1028
+ })();
644
1029
  const isLambdaArg = (expr) => {
645
1030
  if (ts.isArrowFunction(expr) || ts.isFunctionExpression(expr))
646
1031
  return true;
@@ -701,6 +1086,7 @@ export const convertCallExpression = (node, ctx) => {
701
1086
  receiverType: receiverIrType,
702
1087
  explicitTypeArgs,
703
1088
  argTypes: argTypesForInference,
1089
+ expectedReturnType: expectedType,
704
1090
  })
705
1091
  : initialResolved;
706
1092
  const parameterTypesForLambdaContext = lambdaContextResolved?.parameterTypes ?? initialParameterTypes;
@@ -733,7 +1119,7 @@ export const convertCallExpression = (node, ctx) => {
733
1119
  const lambdaExpectedType = expectedType?.kind === "functionType"
734
1120
  ? expectedType
735
1121
  : expectedType
736
- ? typeSystem.delegateToFunctionType(expectedType) ?? expectedType
1122
+ ? (typeSystem.delegateToFunctionType(expectedType) ?? expectedType)
737
1123
  : undefined;
738
1124
  argsWorking[index] = convertExpression(unwrapped.expression, ctx, lambdaExpectedType);
739
1125
  }
@@ -751,6 +1137,7 @@ export const convertCallExpression = (node, ctx) => {
751
1137
  receiverType: receiverIrType,
752
1138
  explicitTypeArgs,
753
1139
  argTypes,
1140
+ expectedReturnType: expectedType,
754
1141
  })
755
1142
  : lambdaContextResolved;
756
1143
  const parameterTypes = finalResolved?.parameterTypes ?? initialParameterTypes;
@@ -892,7 +1279,7 @@ export const convertNewExpression = (node, ctx) => {
892
1279
  const lambdaExpectedType = expectedType?.kind === "functionType"
893
1280
  ? expectedType
894
1281
  : expectedType
895
- ? typeSystem.delegateToFunctionType(expectedType) ?? expectedType
1282
+ ? (typeSystem.delegateToFunctionType(expectedType) ?? expectedType)
896
1283
  : undefined;
897
1284
  argsWorking[index] = convertExpression(unwrapped.expression, ctx, lambdaExpectedType);
898
1285
  }
@@ -932,7 +1319,9 @@ export const convertNewExpression = (node, ctx) => {
932
1319
  : lambdaContextResolved;
933
1320
  // Phase 15: inferredType MUST be finalResolved.returnType
934
1321
  // If sigId is missing, use unknownType (do not fabricate a nominal type)
935
- const inferredType = finalResolved?.returnType ?? { kind: "unknownType" };
1322
+ const inferredType = finalResolved?.returnType ?? {
1323
+ kind: "unknownType",
1324
+ };
936
1325
  const parameterTypes = finalResolved?.parameterTypes ?? initialParameterTypes;
937
1326
  const argumentPassingBase = finalResolved
938
1327
  ? finalResolved.parameterModes.slice(0, argumentCount)
@@ -940,7 +1329,9 @@ export const convertNewExpression = (node, ctx) => {
940
1329
  const argumentPassing = applyCallSiteArgumentModifiers(argumentPassingBase, callSiteArgModifiers, argumentCount, ctx, node);
941
1330
  // Phase 18: IrNewExpression.typeArguments must include inferred type arguments.
942
1331
  // The emitter relies on this field to emit generic constructor calls (e.g., new Box<int>(...)).
943
- const inferredTypeArguments = inferredType.kind === "referenceType" ? inferredType.typeArguments : undefined;
1332
+ const inferredTypeArguments = inferredType.kind === "referenceType"
1333
+ ? inferredType.typeArguments
1334
+ : undefined;
944
1335
  const typeArgumentsForIr = typeArguments ??
945
1336
  (inferredTypeArguments && inferredTypeArguments.length > 0
946
1337
  ? inferredTypeArguments
@@ -1 +1 @@
1
- {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAIlB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA4G/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,EAAE,CAAC,sBAAsB,EAC/B,KAAK,cAAc,EACnB,cAAc,MAAM,GAAG,SAAS,KAC/B,iBAqDF,CAAC;AAoCF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,uBAAuB,EAChC,KAAK,cAAc,EACnB,eAAe,MAAM,KACpB,kBA+QF,CAAC"}
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAGlB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA4G/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,EAAE,CAAC,sBAAsB,EAC/B,KAAK,cAAc,EACnB,cAAc,MAAM,GAAG,SAAS,KAC/B,iBAqDF,CAAC;AA0CF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,uBAAuB,EAChC,KAAK,cAAc,EACnB,eAAe,MAAM,KACpB,kBAsPF,CAAC"}