@tsonic/frontend 0.0.15 → 0.0.16
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
- package/dist/graph/extraction/orchestrator.js +3 -2
- package/dist/graph/extraction/orchestrator.js.map +1 -1
- package/dist/ir/binding/index.d.ts +21 -0
- package/dist/ir/binding/index.d.ts.map +1 -1
- package/dist/ir/binding/index.js +316 -6
- package/dist/ir/binding/index.js.map +1 -1
- package/dist/ir/bindings-disambiguation.test.d.ts +11 -0
- package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -0
- package/dist/ir/bindings-disambiguation.test.js +416 -0
- package/dist/ir/bindings-disambiguation.test.js.map +1 -0
- package/dist/ir/builder/orchestrator.d.ts.map +1 -1
- package/dist/ir/builder/orchestrator.js +8 -2
- package/dist/ir/builder/orchestrator.js.map +1 -1
- package/dist/ir/builder/types.d.ts +2 -3
- package/dist/ir/builder/types.d.ts.map +1 -1
- package/dist/ir/builder.test.js +1 -1
- package/dist/ir/converters/context.d.ts.map +1 -1
- package/dist/ir/converters/context.js +1 -0
- package/dist/ir/converters/context.js.map +1 -1
- package/dist/ir/converters/expressions/access.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access.js +161 -39
- package/dist/ir/converters/expressions/access.js.map +1 -1
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
- package/dist/ir/converters/expressions/calls.js +256 -19
- package/dist/ir/converters/expressions/calls.js.map +1 -1
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
- package/dist/ir/converters/expressions/functions.js +30 -12
- package/dist/ir/converters/expressions/functions.js.map +1 -1
- package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
- package/dist/ir/converters/expressions/operators.js +5 -1
- package/dist/ir/converters/expressions/operators.js.map +1 -1
- package/dist/ir/converters/flow-narrowing.d.ts +27 -0
- package/dist/ir/converters/flow-narrowing.d.ts.map +1 -0
- package/dist/ir/converters/flow-narrowing.js +73 -0
- package/dist/ir/converters/flow-narrowing.js.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.js +19 -2
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
- package/dist/ir/expression-converter.d.ts.map +1 -1
- package/dist/ir/expression-converter.js +11 -4
- package/dist/ir/expression-converter.js.map +1 -1
- package/dist/ir/program-context.d.ts +17 -4
- package/dist/ir/program-context.d.ts.map +1 -1
- package/dist/ir/program-context.js +3 -0
- package/dist/ir/program-context.js.map +1 -1
- package/dist/ir/thisarg-inference.test.js +18 -18
- package/dist/ir/thisarg-inference.test.js.map +1 -1
- package/dist/ir/type-system/internal/handle-types.d.ts +7 -0
- package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts +3 -3
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/primitives.js +2 -2
- package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
- package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/references.js +5 -11
- package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
- package/dist/ir/type-system/internal/type-registry.d.ts +6 -1
- package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-registry.js +11 -10
- package/dist/ir/type-system/internal/type-registry.js.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-catalog.js +20 -4
- package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts +2 -0
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -1
- package/dist/ir/type-system/internal/universe/source-catalog.js +8 -3
- package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
- package/dist/ir/type-system/internal/universe/types.d.ts +1 -1
- package/dist/ir/type-system/type-system.d.ts.map +1 -1
- package/dist/ir/type-system/type-system.js +192 -33
- package/dist/ir/type-system/type-system.js.map +1 -1
- package/dist/ir/types/expressions.d.ts +2 -0
- package/dist/ir/types/expressions.d.ts.map +1 -1
- package/dist/ir/types/ir-types.d.ts +1 -1
- package/dist/ir/types/statements.d.ts +9 -0
- package/dist/ir/types/statements.d.ts.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.js +1 -0
- package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
- package/dist/ir/validation/char-validation-pass.d.ts +26 -0
- package/dist/ir/validation/char-validation-pass.d.ts.map +1 -0
- package/dist/ir/validation/char-validation-pass.js +495 -0
- package/dist/ir/validation/char-validation-pass.js.map +1 -0
- package/dist/program/bindings.d.ts +16 -0
- package/dist/program/bindings.d.ts.map +1 -1
- package/dist/program/bindings.js +44 -0
- package/dist/program/bindings.js.map +1 -1
- package/dist/program/creation.d.ts.map +1 -1
- package/dist/program/creation.js +11 -104
- package/dist/program/creation.js.map +1 -1
- package/dist/program/dependency-graph.d.ts.map +1 -1
- package/dist/program/dependency-graph.js +8 -1
- package/dist/program/dependency-graph.js.map +1 -1
- package/dist/program/diagnostics.d.ts.map +1 -1
- package/dist/program/diagnostics.js +0 -6
- package/dist/program/diagnostics.js.map +1 -1
- package/dist/program/types.d.ts +2 -3
- package/dist/program/types.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts +5 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +121 -31
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/resolver/clr-bindings-resolver.test.d.ts +2 -0
- package/dist/resolver/clr-bindings-resolver.test.d.ts.map +1 -0
- package/dist/resolver/clr-bindings-resolver.test.js +161 -0
- package/dist/resolver/clr-bindings-resolver.test.js.map +1 -0
- package/dist/resolver/namespace.d.ts +2 -1
- package/dist/resolver/namespace.d.ts.map +1 -1
- package/dist/resolver/namespace.js +5 -2
- package/dist/resolver/namespace.js.map +1 -1
- package/dist/resolver/namespace.test.js +6 -6
- package/dist/resolver/naming-policy.d.ts +20 -0
- package/dist/resolver/naming-policy.d.ts.map +1 -0
- package/dist/resolver/naming-policy.js +40 -0
- package/dist/resolver/naming-policy.js.map +1 -0
- package/dist/resolver/naming.d.ts +2 -5
- package/dist/resolver/naming.d.ts.map +1 -1
- package/dist/resolver/naming.js +2 -30
- package/dist/resolver/naming.js.map +1 -1
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +1 -0
- package/dist/resolver.js.map +1 -1
- package/dist/resolver.test.js +7 -6
- package/dist/resolver.test.js.map +1 -1
- package/dist/types/diagnostic.d.ts +1 -1
- package/dist/types/diagnostic.d.ts.map +1 -1
- package/dist/types/diagnostic.js.map +1 -1
- package/dist/validation/core-intrinsics.d.ts +18 -0
- package/dist/validation/core-intrinsics.d.ts.map +1 -0
- package/dist/validation/core-intrinsics.js +186 -0
- package/dist/validation/core-intrinsics.js.map +1 -0
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/orchestrator.d.ts.map +1 -1
- package/dist/validation/orchestrator.js +2 -0
- package/dist/validation/orchestrator.js.map +1 -1
- package/dist/validator.test.js +52 -6
- package/dist/validator.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/ir/clr-type-mappings.d.ts +0 -42
- package/dist/ir/clr-type-mappings.d.ts.map +0 -1
- package/dist/ir/clr-type-mappings.js +0 -139
- package/dist/ir/clr-type-mappings.js.map +0 -1
- package/dist/ir/type-converter.d.ts +0 -9
- package/dist/ir/type-converter.d.ts.map +0 -1
- package/dist/ir/type-converter.js +0 -9
- package/dist/ir/type-converter.js.map +0 -1
- package/dist/ir/type-system/core.d.ts +0 -29
- package/dist/ir/type-system/core.d.ts.map +0 -1
- package/dist/ir/type-system/core.js +0 -456
- package/dist/ir/type-system/core.js.map +0 -1
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts +0 -12
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +0 -1
- package/dist/ir/type-system/internal/type-converter/patterns.js +0 -82
- package/dist/ir/type-system/internal/type-converter/patterns.js.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.d.ts +0 -44
- package/dist/ir/type-universe/assembly-catalog.d.ts.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.js +0 -532
- package/dist/ir/type-universe/assembly-catalog.js.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.test.d.ts +0 -7
- package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.test.js +0 -105
- package/dist/ir/type-universe/assembly-catalog.test.js.map +0 -1
- package/dist/ir/type-universe/index.d.ts +0 -19
- package/dist/ir/type-universe/index.d.ts.map +0 -1
- package/dist/ir/type-universe/index.js +0 -21
- package/dist/ir/type-universe/index.js.map +0 -1
- package/dist/ir/type-universe/types.d.ts +0 -436
- package/dist/ir/type-universe/types.d.ts.map +0 -1
- package/dist/ir/type-universe/types.js +0 -69
- package/dist/ir/type-universe/types.js.map +0 -1
- package/dist/ir/type-universe/unified-catalog.d.ts +0 -70
- package/dist/ir/type-universe/unified-catalog.d.ts.map +0 -1
- package/dist/ir/type-universe/unified-catalog.js +0 -319
- package/dist/ir/type-universe/unified-catalog.js.map +0 -1
- package/dist/ir/type-universe/unified-catalog.test.d.ts +0 -7
- package/dist/ir/type-universe/unified-catalog.test.d.ts.map +0 -1
- package/dist/ir/type-universe/unified-catalog.test.js +0 -135
- package/dist/ir/type-universe/unified-catalog.test.js.map +0 -1
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
* be normalized nominally (e.g., tsbindgen `$instance & __views` intersections).
|
|
7
7
|
*/
|
|
8
8
|
import * as ts from "typescript";
|
|
9
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
10
|
+
import { dirname, join } from "node:path";
|
|
9
11
|
import { getSourceSpan } from "./helpers.js";
|
|
10
12
|
import { convertExpression } from "../../expression-converter.js";
|
|
13
|
+
import { createDiagnostic } from "../../../types/diagnostic.js";
|
|
11
14
|
/**
|
|
12
15
|
* Fallback for getDeclaredPropertyType when TypeSystem can't resolve the member.
|
|
13
16
|
* Uses TypeSystem.typeOfMemberId() to get member types for:
|
|
@@ -157,6 +160,8 @@ const extractTypeName = (inferredType) => {
|
|
|
157
160
|
return "Double"; // System.Double (TS number is double)
|
|
158
161
|
case "boolean":
|
|
159
162
|
return "Boolean"; // System.Boolean
|
|
163
|
+
case "char":
|
|
164
|
+
return "Char"; // System.Char
|
|
160
165
|
default:
|
|
161
166
|
return undefined;
|
|
162
167
|
}
|
|
@@ -215,6 +220,40 @@ const extractTypeName = (inferredType) => {
|
|
|
215
220
|
*/
|
|
216
221
|
const resolveHierarchicalBinding = (object, propertyName, ctx) => {
|
|
217
222
|
const registry = ctx.bindings;
|
|
223
|
+
const toIrMemberBinding = (overloads) => {
|
|
224
|
+
const first = overloads[0];
|
|
225
|
+
if (!first)
|
|
226
|
+
return undefined;
|
|
227
|
+
const getTargetKey = (m) => `${m.binding.assembly}:${m.binding.type}::${m.binding.member}`;
|
|
228
|
+
const targetKey = getTargetKey(first);
|
|
229
|
+
if (overloads.some((m) => getTargetKey(m) !== targetKey)) {
|
|
230
|
+
// Unsafe: overloads map to different CLR targets.
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
233
|
+
const getModifiersKey = (m) => {
|
|
234
|
+
const mods = m.parameterModifiers ?? [];
|
|
235
|
+
if (mods.length === 0)
|
|
236
|
+
return "";
|
|
237
|
+
return [...mods]
|
|
238
|
+
.slice()
|
|
239
|
+
.sort((a, b) => a.index - b.index)
|
|
240
|
+
.map((mod) => `${mod.index}:${mod.modifier}`)
|
|
241
|
+
.join(",");
|
|
242
|
+
};
|
|
243
|
+
const modsKey = getModifiersKey(first);
|
|
244
|
+
const modsConsistent = overloads.every((m) => getModifiersKey(m) === modsKey);
|
|
245
|
+
return {
|
|
246
|
+
assembly: first.binding.assembly,
|
|
247
|
+
type: first.binding.type,
|
|
248
|
+
member: first.binding.member,
|
|
249
|
+
// IMPORTANT: Only attach parameterModifiers if consistent across all overloads.
|
|
250
|
+
// Overloads can differ in ref/out/in, and those must be selected at call time.
|
|
251
|
+
parameterModifiers: modsConsistent && first.parameterModifiers && first.parameterModifiers.length > 0
|
|
252
|
+
? first.parameterModifiers
|
|
253
|
+
: undefined,
|
|
254
|
+
isExtensionMethod: first.isExtensionMethod,
|
|
255
|
+
};
|
|
256
|
+
};
|
|
218
257
|
// Case 1: object is identifier → check if it's a namespace, then check if property is a type
|
|
219
258
|
if (object.kind === "identifier") {
|
|
220
259
|
const namespace = registry.getNamespace(object.name);
|
|
@@ -234,17 +273,10 @@ const resolveHierarchicalBinding = (object, propertyName, ctx) => {
|
|
|
234
273
|
const directType = registry.getType(object.name) ??
|
|
235
274
|
(object.originalName ? registry.getType(object.originalName) : undefined);
|
|
236
275
|
if (directType) {
|
|
237
|
-
const
|
|
238
|
-
if (
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
assembly: member.binding.assembly,
|
|
242
|
-
type: member.binding.type,
|
|
243
|
-
member: member.binding.member,
|
|
244
|
-
parameterModifiers: member.parameterModifiers,
|
|
245
|
-
isExtensionMethod: member.isExtensionMethod,
|
|
246
|
-
};
|
|
247
|
-
}
|
|
276
|
+
const overloads = registry.getMemberOverloads(directType.alias, propertyName);
|
|
277
|
+
if (!overloads || overloads.length === 0)
|
|
278
|
+
return undefined;
|
|
279
|
+
return toIrMemberBinding(overloads);
|
|
248
280
|
}
|
|
249
281
|
}
|
|
250
282
|
// Case 2: object is member expression with a type reference → check if property is a member
|
|
@@ -257,17 +289,10 @@ const resolveHierarchicalBinding = (object, propertyName, ctx) => {
|
|
|
257
289
|
const type = namespace.types.find((t) => t.alias === object.property);
|
|
258
290
|
if (type) {
|
|
259
291
|
// The object is a type reference (namespace.type), now check if property is a member
|
|
260
|
-
const
|
|
261
|
-
if (
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
assembly: member.binding.assembly,
|
|
265
|
-
type: member.binding.type,
|
|
266
|
-
member: member.binding.member,
|
|
267
|
-
parameterModifiers: member.parameterModifiers,
|
|
268
|
-
isExtensionMethod: member.isExtensionMethod,
|
|
269
|
-
};
|
|
270
|
-
}
|
|
292
|
+
const overloads = registry.getMemberOverloads(type.alias, propertyName);
|
|
293
|
+
if (!overloads || overloads.length === 0)
|
|
294
|
+
return undefined;
|
|
295
|
+
return toIrMemberBinding(overloads);
|
|
271
296
|
}
|
|
272
297
|
}
|
|
273
298
|
}
|
|
@@ -277,19 +302,57 @@ const resolveHierarchicalBinding = (object, propertyName, ctx) => {
|
|
|
277
302
|
const objectTypeName = extractTypeName(object.inferredType);
|
|
278
303
|
if (objectTypeName) {
|
|
279
304
|
// Look up member by type alias and property name
|
|
280
|
-
const
|
|
281
|
-
if (
|
|
282
|
-
return
|
|
283
|
-
|
|
284
|
-
type: member.binding.type,
|
|
285
|
-
member: member.binding.member,
|
|
286
|
-
parameterModifiers: member.parameterModifiers,
|
|
287
|
-
isExtensionMethod: member.isExtensionMethod,
|
|
288
|
-
};
|
|
289
|
-
}
|
|
305
|
+
const overloads = registry.getMemberOverloads(objectTypeName, propertyName);
|
|
306
|
+
if (!overloads || overloads.length === 0)
|
|
307
|
+
return undefined;
|
|
308
|
+
return toIrMemberBinding(overloads);
|
|
290
309
|
}
|
|
291
310
|
return undefined;
|
|
292
311
|
};
|
|
312
|
+
const findNearestBindingsJson = (filePath) => {
|
|
313
|
+
let currentDir = dirname(filePath);
|
|
314
|
+
while (true) {
|
|
315
|
+
const candidate = join(currentDir, "bindings.json");
|
|
316
|
+
if (existsSync(candidate))
|
|
317
|
+
return candidate;
|
|
318
|
+
const parentDir = dirname(currentDir);
|
|
319
|
+
if (parentDir === currentDir)
|
|
320
|
+
return undefined;
|
|
321
|
+
currentDir = parentDir;
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
const disambiguateOverloadsByDeclaringType = (overloads, memberId, declaringTypeTsName, ctx) => {
|
|
325
|
+
const declSourceFilePath = ctx.binding.getSourceFilePathOfMember(memberId);
|
|
326
|
+
if (!declSourceFilePath)
|
|
327
|
+
return undefined;
|
|
328
|
+
const bindingsPath = findNearestBindingsJson(declSourceFilePath);
|
|
329
|
+
if (!bindingsPath)
|
|
330
|
+
return undefined;
|
|
331
|
+
const raw = (() => {
|
|
332
|
+
try {
|
|
333
|
+
return JSON.parse(readFileSync(bindingsPath, "utf8"));
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
return undefined;
|
|
337
|
+
}
|
|
338
|
+
})();
|
|
339
|
+
if (!raw || typeof raw !== "object")
|
|
340
|
+
return undefined;
|
|
341
|
+
const types = raw.types;
|
|
342
|
+
if (!Array.isArray(types))
|
|
343
|
+
return undefined;
|
|
344
|
+
const typeEntry = types.find((t) => {
|
|
345
|
+
if (!t || typeof t !== "object")
|
|
346
|
+
return false;
|
|
347
|
+
const tsEmitName = t.tsEmitName;
|
|
348
|
+
return tsEmitName === declaringTypeTsName;
|
|
349
|
+
});
|
|
350
|
+
const expectedClrType = typeEntry && typeof typeEntry.clrName === "string" ? typeEntry.clrName : undefined;
|
|
351
|
+
if (!expectedClrType)
|
|
352
|
+
return undefined;
|
|
353
|
+
const filtered = overloads.filter((m) => m.binding.type === expectedClrType);
|
|
354
|
+
return filtered.length > 0 ? filtered : undefined;
|
|
355
|
+
};
|
|
293
356
|
/**
|
|
294
357
|
* Resolve hierarchical binding for a member access using Binding-resolved MemberId.
|
|
295
358
|
*
|
|
@@ -315,15 +378,74 @@ const resolveHierarchicalBindingFromMemberId = (node, propertyName, ctx) => {
|
|
|
315
378
|
return name;
|
|
316
379
|
};
|
|
317
380
|
const typeAlias = normalizeDeclaringType(declaringTypeName);
|
|
318
|
-
const
|
|
319
|
-
if (!
|
|
381
|
+
const overloadsAll = ctx.bindings.getMemberOverloads(typeAlias, propertyName);
|
|
382
|
+
if (!overloadsAll || overloadsAll.length === 0) {
|
|
383
|
+
const declSourceFilePath = ctx.binding.getSourceFilePathOfMember(memberId);
|
|
384
|
+
const bindingsPath = declSourceFilePath !== undefined
|
|
385
|
+
? findNearestBindingsJson(declSourceFilePath)
|
|
386
|
+
: undefined;
|
|
387
|
+
// Airplane-grade rule: If this member resolves to a tsbindgen declaration,
|
|
388
|
+
// we MUST have a CLR binding; we must never guess member names via naming policy.
|
|
389
|
+
//
|
|
390
|
+
// We treat it as CLR-bound if:
|
|
391
|
+
// - The declaring type is a tsbindgen extension interface (`__Ext_*`), OR
|
|
392
|
+
// - We can locate a bindings.json near the declaration source file.
|
|
393
|
+
const isClrBound = declaringTypeName.startsWith("__Ext_") || bindingsPath !== undefined;
|
|
394
|
+
if (isClrBound) {
|
|
395
|
+
ctx.diagnostics.push(createDiagnostic("TSN4004", "error", `Missing CLR binding for '${typeAlias}.${propertyName}'.`, getSourceSpan(node), bindingsPath
|
|
396
|
+
? `No matching member binding was found in the loaded bindings for this tsbindgen declaration. (bindings.json: ${bindingsPath})`
|
|
397
|
+
: "No matching member binding was found for this tsbindgen extension interface member."));
|
|
398
|
+
}
|
|
320
399
|
return undefined;
|
|
400
|
+
}
|
|
401
|
+
let overloads = overloadsAll;
|
|
402
|
+
const targetKeys = new Set(overloads.map((m) => `${m.binding.assembly}:${m.binding.type}::${m.binding.member}`));
|
|
403
|
+
if (targetKeys.size > 1) {
|
|
404
|
+
const disambiguated = disambiguateOverloadsByDeclaringType(overloads, memberId, typeAlias, ctx);
|
|
405
|
+
if (disambiguated) {
|
|
406
|
+
overloads = disambiguated;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
const first = overloads[0];
|
|
410
|
+
if (!first)
|
|
411
|
+
return undefined;
|
|
412
|
+
const targetKey = `${first.binding.assembly}:${first.binding.type}::${first.binding.member}`;
|
|
413
|
+
if (overloads.some((m) => `${m.binding.assembly}:${m.binding.type}::${m.binding.member}` !== targetKey)) {
|
|
414
|
+
const declSourceFilePath = ctx.binding.getSourceFilePathOfMember(memberId);
|
|
415
|
+
const bindingsPath = declSourceFilePath !== undefined
|
|
416
|
+
? findNearestBindingsJson(declSourceFilePath)
|
|
417
|
+
: undefined;
|
|
418
|
+
// Only treat this as a CLR ambiguity when we can locate a bindings.json near the
|
|
419
|
+
// TS declaration source (tsbindgen packages). Otherwise, fall back to "no binding"
|
|
420
|
+
// and let local codepaths handle naming policy.
|
|
421
|
+
if (bindingsPath) {
|
|
422
|
+
const targets = [...new Set(overloads.map((m) => `${m.binding.type}.${m.binding.member}`))]
|
|
423
|
+
.sort()
|
|
424
|
+
.join(", ");
|
|
425
|
+
ctx.diagnostics.push(createDiagnostic("TSN4003", "error", `Ambiguous CLR binding for '${typeAlias}.${propertyName}'. Multiple CLR targets found: ${targets}.`, getSourceSpan(node), `This usually indicates multiple tsbindgen packages export the same TS type/member alias. Ensure the correct package is imported, or regenerate bindings to avoid collisions. (bindings.json: ${bindingsPath})`));
|
|
426
|
+
}
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
const getModifiersKey = (m) => {
|
|
430
|
+
const mods = m.parameterModifiers ?? [];
|
|
431
|
+
if (mods.length === 0)
|
|
432
|
+
return "";
|
|
433
|
+
return [...mods]
|
|
434
|
+
.slice()
|
|
435
|
+
.sort((a, b) => a.index - b.index)
|
|
436
|
+
.map((mod) => `${mod.index}:${mod.modifier}`)
|
|
437
|
+
.join(",");
|
|
438
|
+
};
|
|
439
|
+
const modsKey = getModifiersKey(first);
|
|
440
|
+
const modsConsistent = overloads.every((m) => getModifiersKey(m) === modsKey);
|
|
321
441
|
return {
|
|
322
|
-
assembly:
|
|
323
|
-
type:
|
|
324
|
-
member:
|
|
325
|
-
parameterModifiers:
|
|
326
|
-
|
|
442
|
+
assembly: first.binding.assembly,
|
|
443
|
+
type: first.binding.type,
|
|
444
|
+
member: first.binding.member,
|
|
445
|
+
parameterModifiers: modsConsistent && first.parameterModifiers && first.parameterModifiers.length > 0
|
|
446
|
+
? first.parameterModifiers
|
|
447
|
+
: undefined,
|
|
448
|
+
isExtensionMethod: first.isExtensionMethod,
|
|
327
449
|
};
|
|
328
450
|
};
|
|
329
451
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/access.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/calls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAyF/D;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,aAAa,EAC1C,KAAK,cAAc,EACnB,iBAAiB,MAAM,KACtB,MAAM,GAAG,SAqFX,CAAC;AAkOF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,EAAE,CAAC,cAAc,EACvB,KAAK,cAAc,KAClB,gBAAgB,GAAG,mBAAmB,GAAG,sBAkU3C,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,aAAa,EACtB,KAAK,cAAc,KAClB,eAyJF,CAAC"}
|
|
@@ -145,23 +145,9 @@ export const getDeclaredReturnType = (node, ctx, receiverIrType) => {
|
|
|
145
145
|
// Return TypeSystem's answer directly - no fallbacks
|
|
146
146
|
return resolved.returnType;
|
|
147
147
|
};
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
* Converts parameterModifiers to the argumentPassing array format.
|
|
151
|
-
* Returns undefined if no modifiers are present.
|
|
152
|
-
*/
|
|
153
|
-
const extractArgumentPassingFromBinding = (callee, argCount) => {
|
|
154
|
-
// Check if callee is a member access with parameter modifiers
|
|
155
|
-
if (callee.kind !== "memberAccess" ||
|
|
156
|
-
!callee.memberBinding?.parameterModifiers) {
|
|
157
|
-
return undefined;
|
|
158
|
-
}
|
|
159
|
-
const modifiers = callee.memberBinding.parameterModifiers;
|
|
160
|
-
if (modifiers.length === 0) {
|
|
148
|
+
const extractArgumentPassingFromParameterModifiers = (modifiers, argCount) => {
|
|
149
|
+
if (modifiers.length === 0)
|
|
161
150
|
return undefined;
|
|
162
|
-
}
|
|
163
|
-
// Build the argumentPassing array
|
|
164
|
-
// Initialize all as "value", then override based on modifiers
|
|
165
151
|
const passing = Array(argCount).fill("value");
|
|
166
152
|
for (const mod of modifiers) {
|
|
167
153
|
if (mod.index >= 0 && mod.index < argCount) {
|
|
@@ -170,6 +156,208 @@ const extractArgumentPassingFromBinding = (callee, argCount) => {
|
|
|
170
156
|
}
|
|
171
157
|
return passing;
|
|
172
158
|
};
|
|
159
|
+
/**
|
|
160
|
+
* Extract argument passing modes from CLR bindings for the *selected overload*.
|
|
161
|
+
*
|
|
162
|
+
* CRITICAL: Methods can be overloaded, and overloads can differ in ref/out/in modifiers.
|
|
163
|
+
* We must not attach a single overload's modifiers to the member access itself.
|
|
164
|
+
*
|
|
165
|
+
* This resolver selects the best-matching binding overload using the call's argument
|
|
166
|
+
* types, then applies that overload's parameterModifiers.
|
|
167
|
+
*/
|
|
168
|
+
const extractArgumentPassingFromBinding = (callee, argCount, ctx, parameterTypes, argTypes) => {
|
|
169
|
+
if (callee.kind !== "memberAccess" || !callee.memberBinding)
|
|
170
|
+
return undefined;
|
|
171
|
+
// Fast path: already-resolved modifiers (extension methods or non-overloaded members).
|
|
172
|
+
const directMods = callee.memberBinding.parameterModifiers;
|
|
173
|
+
if (directMods && directMods.length > 0) {
|
|
174
|
+
return extractArgumentPassingFromParameterModifiers(directMods, argCount);
|
|
175
|
+
}
|
|
176
|
+
// No member binding → no CLR parameter modifiers.
|
|
177
|
+
const binding = callee.memberBinding;
|
|
178
|
+
const overloadsAll = ctx.bindings.getClrMemberOverloads(binding.assembly, binding.type, binding.member);
|
|
179
|
+
if (!overloadsAll || overloadsAll.length === 0)
|
|
180
|
+
return undefined;
|
|
181
|
+
const calledName = typeof callee.property === "string" ? callee.property : undefined;
|
|
182
|
+
const overloads = calledName
|
|
183
|
+
? overloadsAll.filter((m) => m.alias === calledName || m.name === calledName)
|
|
184
|
+
: overloadsAll;
|
|
185
|
+
if (overloads.length === 0)
|
|
186
|
+
return undefined;
|
|
187
|
+
const matchTypes = parameterTypes ?? argTypes;
|
|
188
|
+
const hasMatchTypes = matchTypes && matchTypes.some((t) => t !== undefined);
|
|
189
|
+
const splitSignatureTypeList = (str) => {
|
|
190
|
+
const result = [];
|
|
191
|
+
let depth = 0;
|
|
192
|
+
let current = "";
|
|
193
|
+
for (const char of str) {
|
|
194
|
+
if (char === "[") {
|
|
195
|
+
depth++;
|
|
196
|
+
current += char;
|
|
197
|
+
}
|
|
198
|
+
else if (char === "]") {
|
|
199
|
+
depth--;
|
|
200
|
+
current += char;
|
|
201
|
+
}
|
|
202
|
+
else if (char === "," && depth === 0) {
|
|
203
|
+
result.push(current.trim());
|
|
204
|
+
current = "";
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
current += char;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (current.trim())
|
|
211
|
+
result.push(current.trim());
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
const parseParameterTypes = (sig) => {
|
|
215
|
+
if (!sig)
|
|
216
|
+
return [];
|
|
217
|
+
const paramsMatch = sig.match(/\|\(([^)]*)\):/);
|
|
218
|
+
const paramsStr = paramsMatch?.[1]?.trim();
|
|
219
|
+
if (!paramsStr)
|
|
220
|
+
return [];
|
|
221
|
+
return splitSignatureTypeList(paramsStr).map((s) => s.trim());
|
|
222
|
+
};
|
|
223
|
+
const extractSimpleClrName = (typeName) => {
|
|
224
|
+
let t = typeName.trim();
|
|
225
|
+
if (t.endsWith("&"))
|
|
226
|
+
t = t.slice(0, -1);
|
|
227
|
+
if (t.endsWith("[]"))
|
|
228
|
+
t = t.slice(0, -2);
|
|
229
|
+
const bracket = t.indexOf("[");
|
|
230
|
+
if (bracket >= 0)
|
|
231
|
+
t = t.slice(0, bracket);
|
|
232
|
+
const lastDot = t.lastIndexOf(".");
|
|
233
|
+
if (lastDot >= 0)
|
|
234
|
+
t = t.slice(lastDot + 1);
|
|
235
|
+
return t;
|
|
236
|
+
};
|
|
237
|
+
const primitiveToClrSimpleName = (name) => {
|
|
238
|
+
switch (name) {
|
|
239
|
+
case "string":
|
|
240
|
+
return "String";
|
|
241
|
+
case "boolean":
|
|
242
|
+
case "bool":
|
|
243
|
+
return "Boolean";
|
|
244
|
+
case "char":
|
|
245
|
+
return "Char";
|
|
246
|
+
case "byte":
|
|
247
|
+
return "Byte";
|
|
248
|
+
case "sbyte":
|
|
249
|
+
return "SByte";
|
|
250
|
+
case "short":
|
|
251
|
+
return "Int16";
|
|
252
|
+
case "ushort":
|
|
253
|
+
return "UInt16";
|
|
254
|
+
case "int":
|
|
255
|
+
return "Int32";
|
|
256
|
+
case "uint":
|
|
257
|
+
return "UInt32";
|
|
258
|
+
case "long":
|
|
259
|
+
return "Int64";
|
|
260
|
+
case "ulong":
|
|
261
|
+
return "UInt64";
|
|
262
|
+
case "float":
|
|
263
|
+
return "Single";
|
|
264
|
+
case "double":
|
|
265
|
+
return "Double";
|
|
266
|
+
case "decimal":
|
|
267
|
+
return "Decimal";
|
|
268
|
+
default:
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
const collectMatchNames = (t) => {
|
|
273
|
+
switch (t.kind) {
|
|
274
|
+
case "primitiveType": {
|
|
275
|
+
const mapped = primitiveToClrSimpleName(t.name);
|
|
276
|
+
return mapped ? [mapped] : [];
|
|
277
|
+
}
|
|
278
|
+
case "referenceType": {
|
|
279
|
+
const lastDot = t.name.lastIndexOf(".");
|
|
280
|
+
const simple = lastDot >= 0 ? t.name.slice(lastDot + 1) : t.name;
|
|
281
|
+
return [simple.replace(/\$instance$/, "").replace(/^\_\_/, "").replace(/\$views$/, "")];
|
|
282
|
+
}
|
|
283
|
+
case "unionType":
|
|
284
|
+
return Array.from(new Set(t.types.flatMap((x) => collectMatchNames(x))));
|
|
285
|
+
case "intersectionType":
|
|
286
|
+
return Array.from(new Set(t.types.flatMap((x) => collectMatchNames(x))));
|
|
287
|
+
default:
|
|
288
|
+
return [];
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
const modifiersKey = (m) => {
|
|
292
|
+
const mods = m.parameterModifiers ?? [];
|
|
293
|
+
if (mods.length === 0)
|
|
294
|
+
return "";
|
|
295
|
+
return [...mods]
|
|
296
|
+
.slice()
|
|
297
|
+
.sort((a, b) => a.index - b.index)
|
|
298
|
+
.map((mod) => `${mod.index}:${mod.modifier}`)
|
|
299
|
+
.join(",");
|
|
300
|
+
};
|
|
301
|
+
const scoreCandidate = (m) => {
|
|
302
|
+
if (!hasMatchTypes)
|
|
303
|
+
return 0;
|
|
304
|
+
const paramTypes = parseParameterTypes(m.signature);
|
|
305
|
+
let score = 0;
|
|
306
|
+
for (let i = 0; i < argCount; i++) {
|
|
307
|
+
const expected = matchTypes?.[i];
|
|
308
|
+
if (!expected)
|
|
309
|
+
continue;
|
|
310
|
+
const expectedNames = collectMatchNames(expected);
|
|
311
|
+
if (expectedNames.length === 0)
|
|
312
|
+
continue;
|
|
313
|
+
const paramType = paramTypes[i];
|
|
314
|
+
if (!paramType)
|
|
315
|
+
continue;
|
|
316
|
+
const paramName = extractSimpleClrName(paramType);
|
|
317
|
+
if (expectedNames.includes(paramName)) {
|
|
318
|
+
score += 10;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
score -= 3;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return score;
|
|
325
|
+
};
|
|
326
|
+
// Discard candidates that can't accept the provided arguments (best-effort, arity only).
|
|
327
|
+
const candidates = overloads.filter((m) => {
|
|
328
|
+
if (typeof m.parameterCount !== "number")
|
|
329
|
+
return true;
|
|
330
|
+
return m.parameterCount >= argCount;
|
|
331
|
+
});
|
|
332
|
+
if (candidates.length === 0)
|
|
333
|
+
return undefined;
|
|
334
|
+
let bestScore = Number.NEGATIVE_INFINITY;
|
|
335
|
+
let best = [];
|
|
336
|
+
for (const c of candidates) {
|
|
337
|
+
const score = scoreCandidate(c);
|
|
338
|
+
if (score > bestScore) {
|
|
339
|
+
bestScore = score;
|
|
340
|
+
best = [c];
|
|
341
|
+
}
|
|
342
|
+
else if (score === bestScore) {
|
|
343
|
+
best.push(c);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
if (best.length === 0)
|
|
347
|
+
return undefined;
|
|
348
|
+
// If ambiguous, only accept when all best candidates agree on modifiers.
|
|
349
|
+
const first = best[0];
|
|
350
|
+
if (!first)
|
|
351
|
+
return undefined;
|
|
352
|
+
const key = modifiersKey(first);
|
|
353
|
+
if (best.some((m) => modifiersKey(m) !== key)) {
|
|
354
|
+
return undefined;
|
|
355
|
+
}
|
|
356
|
+
const chosenMods = first.parameterModifiers;
|
|
357
|
+
if (!chosenMods || chosenMods.length === 0)
|
|
358
|
+
return undefined;
|
|
359
|
+
return extractArgumentPassingFromParameterModifiers(chosenMods, argCount);
|
|
360
|
+
};
|
|
173
361
|
/**
|
|
174
362
|
* Convert call expression
|
|
175
363
|
*/
|
|
@@ -251,6 +439,55 @@ export const convertCallExpression = (node, ctx) => {
|
|
|
251
439
|
const explicitTypeArgs = node.typeArguments
|
|
252
440
|
? node.typeArguments.map((ta) => typeSystem.typeFromSyntax(ctx.binding.captureTypeSyntax(ta)))
|
|
253
441
|
: undefined;
|
|
442
|
+
// If we can't resolve a signature handle (common for calls through function-typed
|
|
443
|
+
// variables), fall back to the callee's inferred function type.
|
|
444
|
+
const calleeFunctionType = (() => {
|
|
445
|
+
const t = callee.inferredType;
|
|
446
|
+
if (!t)
|
|
447
|
+
return undefined;
|
|
448
|
+
if (t.kind === "functionType")
|
|
449
|
+
return t;
|
|
450
|
+
return typeSystem.delegateToFunctionType(t) ?? undefined;
|
|
451
|
+
})();
|
|
452
|
+
if (!sigId && calleeFunctionType) {
|
|
453
|
+
const params = calleeFunctionType.parameters;
|
|
454
|
+
const paramTypesForArgs = [];
|
|
455
|
+
const hasRest = params.some((p) => p.isRest);
|
|
456
|
+
for (let i = 0; i < node.arguments.length; i++) {
|
|
457
|
+
const p = params[i] ?? (hasRest ? params[params.length - 1] : undefined);
|
|
458
|
+
paramTypesForArgs[i] = p?.type;
|
|
459
|
+
}
|
|
460
|
+
const args = [];
|
|
461
|
+
for (let i = 0; i < node.arguments.length; i++) {
|
|
462
|
+
const arg = node.arguments[i];
|
|
463
|
+
if (!arg)
|
|
464
|
+
continue;
|
|
465
|
+
const expectedType = paramTypesForArgs[i];
|
|
466
|
+
if (ts.isSpreadElement(arg)) {
|
|
467
|
+
const spreadExpr = convertExpression(arg.expression, ctx, undefined);
|
|
468
|
+
args.push({
|
|
469
|
+
kind: "spread",
|
|
470
|
+
expression: spreadExpr,
|
|
471
|
+
inferredType: spreadExpr.inferredType,
|
|
472
|
+
sourceSpan: getSourceSpan(arg),
|
|
473
|
+
});
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
args.push(convertExpression(arg, ctx, expectedType));
|
|
477
|
+
}
|
|
478
|
+
return {
|
|
479
|
+
kind: "call",
|
|
480
|
+
callee,
|
|
481
|
+
arguments: args,
|
|
482
|
+
isOptional: node.questionDotToken !== undefined,
|
|
483
|
+
inferredType: calleeFunctionType.returnType,
|
|
484
|
+
sourceSpan: getSourceSpan(node),
|
|
485
|
+
typeArguments,
|
|
486
|
+
requiresSpecialization,
|
|
487
|
+
argumentPassing: extractArgumentPassing(node, ctx),
|
|
488
|
+
parameterTypes: paramTypesForArgs,
|
|
489
|
+
};
|
|
490
|
+
}
|
|
254
491
|
const initialResolved = sigId
|
|
255
492
|
? typeSystem.resolveCall({
|
|
256
493
|
sigId,
|
|
@@ -260,9 +497,6 @@ export const convertCallExpression = (node, ctx) => {
|
|
|
260
497
|
})
|
|
261
498
|
: undefined;
|
|
262
499
|
const initialParameterTypes = initialResolved?.parameterTypes;
|
|
263
|
-
// Try to get argument passing from binding's parameter modifiers first (tsbindgen format),
|
|
264
|
-
// then fall back to TypeScript declaration analysis (ref<T>/out<T>/in<T> wrapper types)
|
|
265
|
-
const argumentPassingFromBinding = extractArgumentPassingFromBinding(callee, node.arguments.length);
|
|
266
500
|
const isLambdaArg = (expr) => {
|
|
267
501
|
if (ts.isArrowFunction(expr) || ts.isFunctionExpression(expr))
|
|
268
502
|
return true;
|
|
@@ -359,6 +593,7 @@ export const convertCallExpression = (node, ctx) => {
|
|
|
359
593
|
: lambdaContextResolved;
|
|
360
594
|
const parameterTypes = finalResolved?.parameterTypes ?? initialParameterTypes;
|
|
361
595
|
const inferredType = finalResolved?.returnType ?? { kind: "unknownType" };
|
|
596
|
+
const argumentPassingFromBinding = extractArgumentPassingFromBinding(callee, node.arguments.length, ctx, parameterTypes, argTypes);
|
|
362
597
|
const argumentPassing = argumentPassingFromBinding ??
|
|
363
598
|
(finalResolved
|
|
364
599
|
? finalResolved.parameterModes.slice(0, node.arguments.length)
|
|
@@ -513,6 +748,7 @@ export const convertNewExpression = (node, ctx) => {
|
|
|
513
748
|
// Phase 15: inferredType MUST be finalResolved.returnType
|
|
514
749
|
// If sigId is missing, use unknownType (do not fabricate a nominal type)
|
|
515
750
|
const inferredType = finalResolved?.returnType ?? { kind: "unknownType" };
|
|
751
|
+
const parameterTypes = finalResolved?.parameterTypes ?? initialParameterTypes;
|
|
516
752
|
// Phase 18: IrNewExpression.typeArguments must include inferred type arguments.
|
|
517
753
|
// The emitter relies on this field to emit generic constructor calls (e.g., new Box<int>(...)).
|
|
518
754
|
const inferredTypeArguments = inferredType.kind === "referenceType" ? inferredType.typeArguments : undefined;
|
|
@@ -526,6 +762,7 @@ export const convertNewExpression = (node, ctx) => {
|
|
|
526
762
|
arguments: convertedArgs,
|
|
527
763
|
inferredType,
|
|
528
764
|
sourceSpan: getSourceSpan(node),
|
|
765
|
+
parameterTypes,
|
|
529
766
|
typeArguments: typeArgumentsForIr,
|
|
530
767
|
requiresSpecialization,
|
|
531
768
|
};
|