@tsonic/emitter 0.0.72 → 0.0.73
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/core/semantic/imports.js +9 -0
- package/dist/core/semantic/imports.js.map +1 -1
- package/dist/core/semantic/imports.test.js +43 -0
- package/dist/core/semantic/imports.test.js.map +1 -1
- package/dist/core/semantic/type-resolution.d.ts +1 -0
- package/dist/core/semantic/type-resolution.d.ts.map +1 -1
- package/dist/core/semantic/type-resolution.js +167 -5
- package/dist/core/semantic/type-resolution.js.map +1 -1
- package/dist/core/semantic/type-resolution.test.js +35 -0
- package/dist/core/semantic/type-resolution.test.js.map +1 -1
- package/dist/emitter-types/core.d.ts +5 -0
- package/dist/emitter-types/core.d.ts.map +1 -1
- package/dist/expression-emitter.d.ts.map +1 -1
- package/dist/expression-emitter.js +801 -2
- package/dist/expression-emitter.js.map +1 -1
- package/dist/expressions/access.d.ts.map +1 -1
- package/dist/expressions/access.js +58 -1
- package/dist/expressions/access.js.map +1 -1
- package/dist/expressions/calls/call-emitter.d.ts.map +1 -1
- package/dist/expressions/calls/call-emitter.js +8 -45
- package/dist/expressions/calls/call-emitter.js.map +1 -1
- package/dist/expressions/collections.d.ts.map +1 -1
- package/dist/expressions/collections.js +211 -3
- package/dist/expressions/collections.js.map +1 -1
- package/dist/expressions/identifiers.d.ts.map +1 -1
- package/dist/expressions/identifiers.js +8 -1
- package/dist/expressions/identifiers.js.map +1 -1
- package/dist/expressions/index.test.js +117 -0
- package/dist/expressions/index.test.js.map +1 -1
- package/dist/expressions/operators/binary-emitter.d.ts.map +1 -1
- package/dist/expressions/operators/binary-emitter.js +97 -56
- package/dist/expressions/operators/binary-emitter.js.map +1 -1
- package/dist/expressions/other.d.ts.map +1 -1
- package/dist/expressions/other.js +59 -1
- package/dist/expressions/other.js.map +1 -1
- package/dist/integration.test.js +393 -5
- package/dist/integration.test.js.map +1 -1
- package/dist/specialization/type-aliases.test.js +8 -0
- package/dist/specialization/type-aliases.test.js.map +1 -1
- package/dist/statements/classes/members/methods.d.ts.map +1 -1
- package/dist/statements/classes/members/methods.js +2 -13
- package/dist/statements/classes/members/methods.js.map +1 -1
- package/dist/statements/control/conditionals/guard-analysis.d.ts +42 -0
- package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-analysis.js +284 -121
- package/dist/statements/control/conditionals/guard-analysis.js.map +1 -1
- package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emitter.js +168 -44
- package/dist/statements/control/conditionals/if-emitter.js.map +1 -1
- package/dist/statements/declarations/functions.d.ts.map +1 -1
- package/dist/statements/declarations/functions.js +2 -13
- package/dist/statements/declarations/functions.js.map +1 -1
- package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
- package/dist/statements/declarations/type-aliases.js +2 -1
- package/dist/statements/declarations/type-aliases.js.map +1 -1
- package/dist/statements/declarations/variables.d.ts.map +1 -1
- package/dist/statements/declarations/variables.js +17 -15
- package/dist/statements/declarations/variables.js.map +1 -1
- package/dist/statements/index.test.js +940 -0
- package/dist/statements/index.test.js.map +1 -1
- package/dist/types/references.d.ts.map +1 -1
- package/dist/types/references.js +12 -8
- package/dist/types/references.js.map +1 -1
- package/dist/types/references.test.js +112 -0
- package/dist/types/references.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard-analysis.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/guard-analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guard-analysis.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/guard-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if-emitter.d.ts","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/if-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"if-emitter.d.ts","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/if-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AAIpE,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,2CAA2C,CAAC;AAkVnD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,EACnD,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAmpChD,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { emitTypeAst } from "../../../type-emitter.js";
|
|
|
8
8
|
import { emitStatementAst } from "../../../statement-emitter.js";
|
|
9
9
|
import { escapeCSharpIdentifier } from "../../../emitter-types/index.js";
|
|
10
10
|
import { emitBooleanConditionAst, toBooleanConditionAst, } from "../../../core/semantic/boolean-context.js";
|
|
11
|
-
import { tryResolvePredicateGuard, tryResolveInstanceofGuard, tryResolveInGuard, tryResolveDiscriminantEqualityGuard, tryResolveSimpleNullableGuard, tryResolveNullableGuard, isDefinitelyTerminating, } from "./guard-analysis.js";
|
|
11
|
+
import { tryResolvePredicateGuard, tryResolveInstanceofGuard, tryResolveInGuard, tryResolveDiscriminantEqualityGuard, tryResolvePropertyTruthinessGuard, tryResolveSimpleNullableGuard, tryResolveNullableGuard, isDefinitelyTerminating, } from "./guard-analysis.js";
|
|
12
12
|
/** Standard emitExpressionAst adapter for emitBooleanConditionAst callback. */
|
|
13
13
|
const emitExprAstCb = (e, ctx) => emitExpressionAst(e, ctx);
|
|
14
14
|
/**
|
|
@@ -26,6 +26,53 @@ const buildUnionNarrowAst = (escapedOrig, memberN) => ({
|
|
|
26
26
|
arguments: [],
|
|
27
27
|
},
|
|
28
28
|
});
|
|
29
|
+
const buildSubsetUnionType = (members) => {
|
|
30
|
+
if (members.length === 0)
|
|
31
|
+
return undefined;
|
|
32
|
+
if (members.length === 1)
|
|
33
|
+
return members[0];
|
|
34
|
+
return { kind: "unionType", types: [...members] };
|
|
35
|
+
};
|
|
36
|
+
const buildComplementNarrowedBinding = (escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, selectedMemberN) => {
|
|
37
|
+
const remainingPairs = candidateMemberNs.flatMap((runtimeMemberN, index) => {
|
|
38
|
+
if (runtimeMemberN === selectedMemberN) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const memberType = candidateMembers[index];
|
|
42
|
+
if (!memberType) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
return [{ runtimeMemberN, memberType }];
|
|
46
|
+
});
|
|
47
|
+
if (remainingPairs.length === 0) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
if (remainingPairs.length === 1) {
|
|
51
|
+
const remaining = remainingPairs[0];
|
|
52
|
+
if (!remaining)
|
|
53
|
+
return undefined;
|
|
54
|
+
return {
|
|
55
|
+
kind: "expr",
|
|
56
|
+
exprAst: buildUnionNarrowAst(escapedOrig, remaining.runtimeMemberN),
|
|
57
|
+
type: remaining.memberType,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
kind: "runtimeSubset",
|
|
62
|
+
runtimeMemberNs: remainingPairs.map((pair) => pair.runtimeMemberN),
|
|
63
|
+
runtimeUnionArity,
|
|
64
|
+
type: buildSubsetUnionType(remainingPairs.map((pair) => pair.memberType)),
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
const withComplementNarrowing = (originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, selectedMemberN, baseContext) => {
|
|
68
|
+
const binding = buildComplementNarrowedBinding(escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, selectedMemberN);
|
|
69
|
+
if (!binding) {
|
|
70
|
+
return baseContext;
|
|
71
|
+
}
|
|
72
|
+
const narrowedBindings = new Map(baseContext.narrowedBindings ?? []);
|
|
73
|
+
narrowedBindings.set(originalName, binding);
|
|
74
|
+
return { ...baseContext, narrowedBindings };
|
|
75
|
+
};
|
|
29
76
|
/** Wrap an array of statements in a single statement (block if >1). */
|
|
30
77
|
const wrapInBlock = (stmts) => {
|
|
31
78
|
if (stmts.length === 1 && stmts[0])
|
|
@@ -187,7 +234,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
187
234
|
if (stmt.condition.kind === "call") {
|
|
188
235
|
const guard = tryResolvePredicateGuard(stmt.condition, context);
|
|
189
236
|
if (guard) {
|
|
190
|
-
const { memberN, ctxWithId, escapedOrig, escapedNarrow, narrowedMap } = guard;
|
|
237
|
+
const { originalName, memberN, unionArity, runtimeUnionArity, candidateMemberNs, candidateMembers, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = guard;
|
|
191
238
|
const condAst = buildIsNCondition(escapedOrig, memberN, false);
|
|
192
239
|
const castStmt = buildCastLocalDecl(escapedNarrow, escapedOrig, memberN);
|
|
193
240
|
const thenCtx = {
|
|
@@ -201,9 +248,29 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
201
248
|
};
|
|
202
249
|
let elseStmt;
|
|
203
250
|
if (stmt.elseStatement) {
|
|
204
|
-
const
|
|
251
|
+
const elseCtxBase = unionArity === 2
|
|
252
|
+
? withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext)
|
|
253
|
+
: finalContext;
|
|
254
|
+
const [elseStmts, elseCtx] = emitStatementAst(stmt.elseStatement, elseCtxBase);
|
|
205
255
|
elseStmt = wrapInBlock(elseStmts);
|
|
206
|
-
finalContext =
|
|
256
|
+
finalContext = {
|
|
257
|
+
...elseCtx,
|
|
258
|
+
narrowedBindings: ctxWithId.narrowedBindings,
|
|
259
|
+
};
|
|
260
|
+
return [
|
|
261
|
+
[
|
|
262
|
+
{
|
|
263
|
+
kind: "ifStatement",
|
|
264
|
+
condition: condAst,
|
|
265
|
+
thenStatement: thenBlock,
|
|
266
|
+
elseStatement: elseStmt,
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
finalContext,
|
|
270
|
+
];
|
|
271
|
+
}
|
|
272
|
+
if (isDefinitelyTerminating(stmt.thenStatement)) {
|
|
273
|
+
finalContext = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
207
274
|
}
|
|
208
275
|
const ifStmt = {
|
|
209
276
|
kind: "ifStatement",
|
|
@@ -218,7 +285,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
218
285
|
// Union 'in' narrowing rewrite → if (auth.IsN()) { var auth__N_k = auth.AsN(); ... }
|
|
219
286
|
const inGuard = tryResolveInGuard(stmt.condition, context);
|
|
220
287
|
if (inGuard) {
|
|
221
|
-
const { originalName, memberN, unionArity, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = inGuard;
|
|
288
|
+
const { originalName, memberN, unionArity, runtimeUnionArity, candidateMemberNs, candidateMembers, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = inGuard;
|
|
222
289
|
const condAst = buildIsNCondition(escapedOrig, memberN, false);
|
|
223
290
|
const castStmt = buildCastLocalDecl(escapedNarrow, escapedOrig, memberN);
|
|
224
291
|
const thenCtx = {
|
|
@@ -230,14 +297,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
230
297
|
let elseStmt;
|
|
231
298
|
if (stmt.elseStatement) {
|
|
232
299
|
if (unionArity === 2) {
|
|
233
|
-
const
|
|
234
|
-
const exprAst = buildUnionNarrowAst(escapedOrig, otherMemberN);
|
|
235
|
-
const elseNarrowedMap = new Map(ctxWithId.narrowedBindings ?? []);
|
|
236
|
-
elseNarrowedMap.set(originalName, { kind: "expr", exprAst });
|
|
237
|
-
const elseCtx = {
|
|
238
|
-
...finalContext,
|
|
239
|
-
narrowedBindings: elseNarrowedMap,
|
|
240
|
-
};
|
|
300
|
+
const elseCtx = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
241
301
|
const [elseStmts, elseCtxAfter] = emitStatementAst(stmt.elseStatement, elseCtx);
|
|
242
302
|
elseStmt = wrapInBlock(elseStmts);
|
|
243
303
|
finalContext = {
|
|
@@ -279,12 +339,80 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
279
339
|
];
|
|
280
340
|
}
|
|
281
341
|
// Post-if narrowing for early-exit patterns (2-member unions only)
|
|
282
|
-
if (
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
342
|
+
if (isDefinitelyTerminating(stmt.thenStatement)) {
|
|
343
|
+
finalContext = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
344
|
+
return [
|
|
345
|
+
[{ kind: "ifStatement", condition: condAst, thenStatement: thenBlock }],
|
|
346
|
+
finalContext,
|
|
347
|
+
];
|
|
348
|
+
}
|
|
349
|
+
finalContext = {
|
|
350
|
+
...finalContext,
|
|
351
|
+
narrowedBindings: ctxWithId.narrowedBindings,
|
|
352
|
+
};
|
|
353
|
+
return [
|
|
354
|
+
[{ kind: "ifStatement", condition: condAst, thenStatement: thenBlock }],
|
|
355
|
+
finalContext,
|
|
356
|
+
];
|
|
357
|
+
}
|
|
358
|
+
// Case A3b: if (result.success) { ... } / if (!result.success) { ... }
|
|
359
|
+
// Truthy/falsy discriminant narrowing over runtime unions.
|
|
360
|
+
const propertyTruthinessGuard = tryResolvePropertyTruthinessGuard(stmt.condition, context);
|
|
361
|
+
if (propertyTruthinessGuard) {
|
|
362
|
+
const { originalName, memberN, unionArity, runtimeUnionArity, candidateMemberNs, candidateMembers, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = propertyTruthinessGuard;
|
|
363
|
+
const condAst = buildIsNCondition(escapedOrig, memberN, false);
|
|
364
|
+
const castStmt = buildCastLocalDecl(escapedNarrow, escapedOrig, memberN);
|
|
365
|
+
const thenCtx = {
|
|
366
|
+
...ctxWithId,
|
|
367
|
+
narrowedBindings: narrowedMap,
|
|
368
|
+
};
|
|
369
|
+
const [thenBlock, thenBodyCtx] = emitForcedBlockWithPreambleAst([castStmt], stmt.thenStatement, thenCtx);
|
|
370
|
+
let finalContext = thenBodyCtx;
|
|
371
|
+
let elseStmt;
|
|
372
|
+
if (stmt.elseStatement) {
|
|
373
|
+
if (unionArity === 2) {
|
|
374
|
+
const elseCtx = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
375
|
+
const [elseStmts, elseCtxAfter] = emitStatementAst(stmt.elseStatement, elseCtx);
|
|
376
|
+
elseStmt = wrapInBlock(elseStmts);
|
|
377
|
+
finalContext = {
|
|
378
|
+
...elseCtxAfter,
|
|
379
|
+
narrowedBindings: ctxWithId.narrowedBindings,
|
|
380
|
+
};
|
|
381
|
+
return [
|
|
382
|
+
[
|
|
383
|
+
{
|
|
384
|
+
kind: "ifStatement",
|
|
385
|
+
condition: condAst,
|
|
386
|
+
thenStatement: thenBlock,
|
|
387
|
+
elseStatement: elseStmt,
|
|
388
|
+
},
|
|
389
|
+
],
|
|
390
|
+
finalContext,
|
|
391
|
+
];
|
|
392
|
+
}
|
|
393
|
+
const [elseStmts, elseCtx] = emitStatementAst(stmt.elseStatement, {
|
|
394
|
+
...finalContext,
|
|
395
|
+
narrowedBindings: ctxWithId.narrowedBindings,
|
|
396
|
+
});
|
|
397
|
+
elseStmt = wrapInBlock(elseStmts);
|
|
398
|
+
finalContext = {
|
|
399
|
+
...elseCtx,
|
|
400
|
+
narrowedBindings: ctxWithId.narrowedBindings,
|
|
401
|
+
};
|
|
402
|
+
return [
|
|
403
|
+
[
|
|
404
|
+
{
|
|
405
|
+
kind: "ifStatement",
|
|
406
|
+
condition: condAst,
|
|
407
|
+
thenStatement: thenBlock,
|
|
408
|
+
elseStatement: elseStmt,
|
|
409
|
+
},
|
|
410
|
+
],
|
|
411
|
+
finalContext,
|
|
412
|
+
];
|
|
413
|
+
}
|
|
414
|
+
if (isDefinitelyTerminating(stmt.thenStatement)) {
|
|
415
|
+
finalContext = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
288
416
|
return [
|
|
289
417
|
[{ kind: "ifStatement", condition: condAst, thenStatement: thenBlock }],
|
|
290
418
|
finalContext,
|
|
@@ -303,7 +431,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
303
431
|
// Discriminant literal equality narrowing
|
|
304
432
|
const eqGuard = tryResolveDiscriminantEqualityGuard(stmt.condition, context);
|
|
305
433
|
if (eqGuard) {
|
|
306
|
-
const { originalName, operator, memberN, unionArity, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = eqGuard;
|
|
434
|
+
const { originalName, operator, memberN, unionArity, runtimeUnionArity, candidateMemberNs, candidateMembers, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = eqGuard;
|
|
307
435
|
const isInequality = operator === "!==" || operator === "!=";
|
|
308
436
|
const condAst = buildIsNCondition(escapedOrig, memberN, isInequality);
|
|
309
437
|
let finalContext = ctxWithId;
|
|
@@ -319,11 +447,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
319
447
|
let elseStmt;
|
|
320
448
|
if (stmt.elseStatement) {
|
|
321
449
|
if (unionArity === 2) {
|
|
322
|
-
const
|
|
323
|
-
const exprAst = buildUnionNarrowAst(escapedOrig, otherMemberN);
|
|
324
|
-
const elseNarrowedMap = new Map(ctxWithId.narrowedBindings ?? []);
|
|
325
|
-
elseNarrowedMap.set(originalName, { kind: "expr", exprAst });
|
|
326
|
-
const [elseStmts, elseCtxAfter] = emitStatementAst(stmt.elseStatement, { ...finalContext, narrowedBindings: elseNarrowedMap });
|
|
450
|
+
const [elseStmts, elseCtxAfter] = emitStatementAst(stmt.elseStatement, withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext));
|
|
327
451
|
elseStmt = wrapInBlock(elseStmts);
|
|
328
452
|
finalContext = {
|
|
329
453
|
...elseCtxAfter,
|
|
@@ -363,12 +487,8 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
363
487
|
];
|
|
364
488
|
}
|
|
365
489
|
// Post-if narrowing for early-exit patterns (2-member unions only)
|
|
366
|
-
if (
|
|
367
|
-
|
|
368
|
-
const exprAst = buildUnionNarrowAst(escapedOrig, otherMemberN);
|
|
369
|
-
const postMap = new Map(ctxWithId.narrowedBindings ?? []);
|
|
370
|
-
postMap.set(originalName, { kind: "expr", exprAst });
|
|
371
|
-
finalContext = { ...finalContext, narrowedBindings: postMap };
|
|
490
|
+
if (isDefinitelyTerminating(stmt.thenStatement)) {
|
|
491
|
+
finalContext = withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, finalContext);
|
|
372
492
|
return [
|
|
373
493
|
[
|
|
374
494
|
{
|
|
@@ -394,13 +514,8 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
394
514
|
let thenStmt;
|
|
395
515
|
let thenCtx;
|
|
396
516
|
if (unionArity === 2) {
|
|
397
|
-
const otherMemberN = memberN === 1 ? 2 : 1;
|
|
398
|
-
const exprAst = buildUnionNarrowAst(escapedOrig, otherMemberN);
|
|
399
|
-
const thenNarrowedMap = new Map(ctxWithId.narrowedBindings ?? []);
|
|
400
|
-
thenNarrowedMap.set(originalName, { kind: "expr", exprAst });
|
|
401
517
|
const [thenStmts, thenCtxAfter] = emitStatementAst(stmt.thenStatement, {
|
|
402
|
-
...ctxWithId,
|
|
403
|
-
narrowedBindings: thenNarrowedMap,
|
|
518
|
+
...withComplementNarrowing(originalName, escapedOrig, runtimeUnionArity, candidateMemberNs, candidateMembers, memberN, ctxWithId),
|
|
404
519
|
});
|
|
405
520
|
thenStmt = wrapInBlock(thenStmts);
|
|
406
521
|
thenCtx = thenCtxAfter;
|
|
@@ -433,11 +548,14 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
433
548
|
];
|
|
434
549
|
}
|
|
435
550
|
// Post-if narrowing for early-exit patterns
|
|
436
|
-
if (
|
|
437
|
-
const
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
551
|
+
if (isDefinitelyTerminating(stmt.thenStatement)) {
|
|
552
|
+
const narrowedBindings = new Map(finalContext.narrowedBindings ?? []);
|
|
553
|
+
narrowedBindings.set(originalName, {
|
|
554
|
+
kind: "expr",
|
|
555
|
+
exprAst: buildUnionNarrowAst(escapedOrig, memberN),
|
|
556
|
+
type: candidateMembers[candidateMemberNs.findIndex((runtimeMemberN) => runtimeMemberN === memberN)],
|
|
557
|
+
});
|
|
558
|
+
finalContext = { ...finalContext, narrowedBindings };
|
|
441
559
|
return [
|
|
442
560
|
[
|
|
443
561
|
{
|
|
@@ -501,13 +619,18 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
501
619
|
const innerCall = stmt.condition.expression;
|
|
502
620
|
const guard = tryResolvePredicateGuard(innerCall, context);
|
|
503
621
|
if (guard) {
|
|
504
|
-
const { originalName, memberN, unionArity, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = guard;
|
|
622
|
+
const { originalName, memberN, unionArity, candidateMemberNs, candidateMembers, ctxWithId, escapedOrig, escapedNarrow, narrowedMap, } = guard;
|
|
505
623
|
const condAst = buildIsNCondition(escapedOrig, memberN, true);
|
|
506
624
|
// THEN branch: for 2-member unions narrow to OTHER member
|
|
507
625
|
let thenStmt;
|
|
508
626
|
let thenCtx;
|
|
509
627
|
if (unionArity === 2) {
|
|
510
|
-
const
|
|
628
|
+
const otherIndex = candidateMemberNs.findIndex((runtimeMemberN) => runtimeMemberN !== memberN);
|
|
629
|
+
const otherMemberN = otherIndex >= 0 ? candidateMemberNs[otherIndex] : undefined;
|
|
630
|
+
const otherMemberType = otherIndex >= 0 ? candidateMembers[otherIndex] : undefined;
|
|
631
|
+
if (!otherMemberN || !otherMemberType) {
|
|
632
|
+
throw new Error("ICE: Failed to resolve complement runtime union member for negated predicate guard.");
|
|
633
|
+
}
|
|
511
634
|
const nextId = (ctxWithId.tempVarId ?? 0) + 1;
|
|
512
635
|
const thenCtxWithId = {
|
|
513
636
|
...ctxWithId,
|
|
@@ -519,6 +642,7 @@ export const emitIfStatementAst = (stmt, context) => {
|
|
|
519
642
|
thenNarrowedMap.set(originalName, {
|
|
520
643
|
kind: "rename",
|
|
521
644
|
name: thenNarrowedName,
|
|
645
|
+
type: otherMemberType,
|
|
522
646
|
});
|
|
523
647
|
const thenCastStmt = buildCastLocalDecl(escapedThenNarrow, escapedOrig, otherMemberN);
|
|
524
648
|
const [thenBlock, thenBlockCtx] = emitForcedBlockWithPreambleAst([thenCastStmt], stmt.thenStatement, { ...thenCtxWithId, narrowedBindings: thenNarrowedMap });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if-emitter.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/if-emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"if-emitter.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/if-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAyB,MAAM,gBAAgB,CAAC;AAcvE,OAAO,KAAK,EACV,kBAAkB,EAIlB,eAAe,EAChB,MAAM,wCAAwC,CAAC;AAiDhD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,eAAe,EAAE,EAAE,cAAc,CA4W7C,CAAC;AAkHF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAuWhD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Function declaration emission
|
|
3
3
|
*/
|
|
4
|
+
import { getAwaitedIrType, } from "@tsonic/frontend";
|
|
4
5
|
import { withAsync, withStatic } from "../../types.js";
|
|
5
6
|
import { emitTypeAst, emitTypeParametersAst } from "../../type-emitter.js";
|
|
6
7
|
import { emitBlockStatementAst } from "../blocks.js";
|
|
@@ -14,19 +15,7 @@ import { allocateLocalName } from "../../core/format/local-names.js";
|
|
|
14
15
|
const getAsyncBodyReturnType = (isAsync, returnType) => {
|
|
15
16
|
if (!isAsync || !returnType)
|
|
16
17
|
return returnType;
|
|
17
|
-
|
|
18
|
-
? returnType.name.includes(".")
|
|
19
|
-
? returnType.name.slice(returnType.name.lastIndexOf(".") + 1)
|
|
20
|
-
: returnType.name
|
|
21
|
-
: undefined;
|
|
22
|
-
if (returnType.kind === "referenceType" &&
|
|
23
|
-
(simpleName === "Promise" ||
|
|
24
|
-
simpleName === "Task" ||
|
|
25
|
-
simpleName === "ValueTask") &&
|
|
26
|
-
returnType.typeArguments?.length === 1) {
|
|
27
|
-
return returnType.typeArguments[0];
|
|
28
|
-
}
|
|
29
|
-
return returnType;
|
|
18
|
+
return getAwaitedIrType(returnType) ?? returnType;
|
|
30
19
|
};
|
|
31
20
|
const seedLocalNameMapFromParameters = (params, context) => {
|
|
32
21
|
const map = new Map(context.localNameMap ?? []);
|