@tsonic/frontend 0.0.63 → 0.0.64

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 (98) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/extraction/imports.d.ts.map +1 -1
  3. package/dist/graph/extraction/imports.js +10 -2
  4. package/dist/graph/extraction/imports.js.map +1 -1
  5. package/dist/ir/binding-resolution.test.js +248 -0
  6. package/dist/ir/binding-resolution.test.js.map +1 -1
  7. package/dist/ir/builder/imports.d.ts.map +1 -1
  8. package/dist/ir/builder/imports.js +8 -1
  9. package/dist/ir/builder/imports.js.map +1 -1
  10. package/dist/ir/builder.test.js +137 -0
  11. package/dist/ir/builder.test.js.map +1 -1
  12. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
  13. package/dist/ir/converters/expressions/access/access-converter.js +1 -1
  14. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
  15. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +2 -2
  16. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  17. package/dist/ir/converters/expressions/access/binding-resolution.js +64 -1
  18. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  19. package/dist/ir/program-context.d.ts +5 -0
  20. package/dist/ir/program-context.d.ts.map +1 -1
  21. package/dist/ir/program-context.js +1 -0
  22. package/dist/ir/program-context.js.map +1 -1
  23. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  24. package/dist/ir/type-system/internal/type-converter/orchestrator.js +12 -5
  25. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  26. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  27. package/dist/ir/type-system/internal/universe/clr-type-parser.js +66 -0
  28. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  29. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
  30. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
  31. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
  32. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
  33. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  34. package/dist/ir/type-system/type-system-inference.js +38 -0
  35. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  36. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  37. package/dist/ir/validation/anonymous-type-lowering-pass.js +34 -0
  38. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  39. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
  40. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
  41. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
  42. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
  43. package/dist/ir/validation/numeric-invariants.test.js +29 -0
  44. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  45. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  46. package/dist/ir/validation/numeric-proof-pass.js +21 -0
  47. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  48. package/dist/program/creation.d.ts.map +1 -1
  49. package/dist/program/creation.js +104 -13
  50. package/dist/program/creation.js.map +1 -1
  51. package/dist/program/creation.test.js +133 -1
  52. package/dist/program/creation.test.js.map +1 -1
  53. package/dist/program/diagnostics.d.ts +1 -1
  54. package/dist/program/diagnostics.d.ts.map +1 -1
  55. package/dist/program/diagnostics.js +47 -2
  56. package/dist/program/diagnostics.js.map +1 -1
  57. package/dist/program/diagnostics.test.d.ts +2 -0
  58. package/dist/program/diagnostics.test.d.ts.map +1 -0
  59. package/dist/program/diagnostics.test.js +58 -0
  60. package/dist/program/diagnostics.test.js.map +1 -0
  61. package/dist/program/types.d.ts +2 -0
  62. package/dist/program/types.d.ts.map +1 -1
  63. package/dist/resolver/import-resolution.d.ts +2 -0
  64. package/dist/resolver/import-resolution.d.ts.map +1 -1
  65. package/dist/resolver/import-resolution.js +12 -4
  66. package/dist/resolver/import-resolution.js.map +1 -1
  67. package/dist/resolver/node-module-aliases.d.ts +6 -0
  68. package/dist/resolver/node-module-aliases.d.ts.map +1 -0
  69. package/dist/resolver/node-module-aliases.js +164 -0
  70. package/dist/resolver/node-module-aliases.js.map +1 -0
  71. package/dist/resolver/node-module-aliases.test.d.ts +2 -0
  72. package/dist/resolver/node-module-aliases.test.d.ts.map +1 -0
  73. package/dist/resolver/node-module-aliases.test.js +64 -0
  74. package/dist/resolver/node-module-aliases.test.js.map +1 -0
  75. package/dist/resolver.test.js +103 -0
  76. package/dist/resolver.test.js.map +1 -1
  77. package/dist/surface/js-surface-shims.d.ts +3 -0
  78. package/dist/surface/js-surface-shims.d.ts.map +1 -0
  79. package/dist/surface/js-surface-shims.js +332 -0
  80. package/dist/surface/js-surface-shims.js.map +1 -0
  81. package/dist/surface/js-surface-shims.test.d.ts +2 -0
  82. package/dist/surface/js-surface-shims.test.d.ts.map +1 -0
  83. package/dist/surface/js-surface-shims.test.js +53 -0
  84. package/dist/surface/js-surface-shims.test.js.map +1 -0
  85. package/dist/surface/profiles.d.ts +10 -0
  86. package/dist/surface/profiles.d.ts.map +1 -0
  87. package/dist/surface/profiles.js +65 -0
  88. package/dist/surface/profiles.js.map +1 -0
  89. package/dist/surface/profiles.test.d.ts +2 -0
  90. package/dist/surface/profiles.test.d.ts.map +1 -0
  91. package/dist/surface/profiles.test.js +44 -0
  92. package/dist/surface/profiles.test.js.map +1 -0
  93. package/dist/validation/imports.d.ts.map +1 -1
  94. package/dist/validation/imports.js +28 -5
  95. package/dist/validation/imports.js.map +1 -1
  96. package/dist/validation/imports.test.js +102 -3
  97. package/dist/validation/imports.test.js.map +1 -1
  98. package/package.json +1 -1
@@ -531,6 +531,130 @@ describe("Binding Resolution in IR", () => {
531
531
  });
532
532
  });
533
533
  describe("Extension Method Binding Resolution", () => {
534
+ it("should resolve js-surface extension methods by receiver type fallback", () => {
535
+ const source = `
536
+ interface String { trim(): string; }
537
+
538
+ export function test(s: string): string {
539
+ return s.trim();
540
+ }
541
+ `;
542
+ const bindings = new BindingRegistry();
543
+ bindings.addBindings("/test/Tsonic.JSRuntime/bindings.json", {
544
+ namespace: "Tsonic.JSRuntime",
545
+ types: [
546
+ {
547
+ clrName: "Tsonic.JSRuntime.String",
548
+ assemblyName: "Tsonic.JSRuntime",
549
+ methods: [
550
+ {
551
+ clrName: "trim",
552
+ normalizedSignature: "trim|(System.String):System.String|static=true",
553
+ parameterCount: 1,
554
+ declaringClrType: "Tsonic.JSRuntime.String",
555
+ declaringAssemblyName: "Tsonic.JSRuntime",
556
+ isExtensionMethod: true,
557
+ },
558
+ ],
559
+ properties: [],
560
+ fields: [],
561
+ },
562
+ ],
563
+ });
564
+ const { testProgram, options } = createTestProgram(source, bindings);
565
+ const sourceFile = testProgram.sourceFiles[0];
566
+ if (!sourceFile)
567
+ throw new Error("Failed to create source file");
568
+ const jsProgram = {
569
+ ...testProgram,
570
+ options: {
571
+ ...testProgram.options,
572
+ surface: "js",
573
+ },
574
+ };
575
+ const ctx = createProgramContext(jsProgram, options);
576
+ const result = buildIrModule(sourceFile, jsProgram, options, ctx);
577
+ expect(result.ok).to.equal(true);
578
+ if (!result.ok)
579
+ return;
580
+ const module = result.value;
581
+ const funcDecl = module.body[0];
582
+ if (funcDecl?.kind !== "functionDeclaration")
583
+ return;
584
+ const returnStmt = funcDecl.body.statements[0];
585
+ if (returnStmt?.kind !== "returnStatement" || !returnStmt.expression)
586
+ return;
587
+ if (returnStmt.expression.kind !== "call")
588
+ return;
589
+ if (returnStmt.expression.callee.kind !== "memberAccess")
590
+ return;
591
+ expect(returnStmt.expression.callee.memberBinding).to.not.equal(undefined);
592
+ expect(returnStmt.expression.callee.memberBinding?.isExtensionMethod).to.equal(true);
593
+ expect(returnStmt.expression.callee.memberBinding?.type).to.equal("Tsonic.JSRuntime.String");
594
+ expect(returnStmt.expression.callee.memberBinding?.member).to.equal("trim");
595
+ });
596
+ it("should inherit js-surface extension fallback in nodejs surface", () => {
597
+ const source = `
598
+ interface String { trim(): string; }
599
+
600
+ export function test(s: string): string {
601
+ return s.trim();
602
+ }
603
+ `;
604
+ const bindings = new BindingRegistry();
605
+ bindings.addBindings("/test/Tsonic.JSRuntime/bindings.json", {
606
+ namespace: "Tsonic.JSRuntime",
607
+ types: [
608
+ {
609
+ clrName: "Tsonic.JSRuntime.String",
610
+ assemblyName: "Tsonic.JSRuntime",
611
+ methods: [
612
+ {
613
+ clrName: "trim",
614
+ normalizedSignature: "trim|(System.String):System.String|static=true",
615
+ parameterCount: 1,
616
+ declaringClrType: "Tsonic.JSRuntime.String",
617
+ declaringAssemblyName: "Tsonic.JSRuntime",
618
+ isExtensionMethod: true,
619
+ },
620
+ ],
621
+ properties: [],
622
+ fields: [],
623
+ },
624
+ ],
625
+ });
626
+ const { testProgram, options } = createTestProgram(source, bindings);
627
+ const sourceFile = testProgram.sourceFiles[0];
628
+ if (!sourceFile)
629
+ throw new Error("Failed to create source file");
630
+ const jsProgram = {
631
+ ...testProgram,
632
+ options: {
633
+ ...testProgram.options,
634
+ surface: "nodejs",
635
+ },
636
+ };
637
+ const ctx = createProgramContext(jsProgram, options);
638
+ const result = buildIrModule(sourceFile, jsProgram, options, ctx);
639
+ expect(result.ok).to.equal(true);
640
+ if (!result.ok)
641
+ return;
642
+ const module = result.value;
643
+ const funcDecl = module.body[0];
644
+ if (funcDecl?.kind !== "functionDeclaration")
645
+ return;
646
+ const returnStmt = funcDecl.body.statements[0];
647
+ if (returnStmt?.kind !== "returnStatement" || !returnStmt.expression)
648
+ return;
649
+ if (returnStmt.expression.kind !== "call")
650
+ return;
651
+ if (returnStmt.expression.callee.kind !== "memberAccess")
652
+ return;
653
+ expect(returnStmt.expression.callee.memberBinding).to.not.equal(undefined);
654
+ expect(returnStmt.expression.callee.memberBinding?.isExtensionMethod).to.equal(true);
655
+ expect(returnStmt.expression.callee.memberBinding?.type).to.equal("Tsonic.JSRuntime.String");
656
+ expect(returnStmt.expression.callee.memberBinding?.member).to.equal("trim");
657
+ });
534
658
  it("should resolve instance-style tsbindgen extension methods via __Ext_* container", () => {
535
659
  const source = `
536
660
  interface IEnumerable_1<T> {}
@@ -689,6 +813,130 @@ describe("Binding Resolution in IR", () => {
689
813
  "out",
690
814
  ]);
691
815
  });
816
+ it("should resolve js-surface number receiver extensions by primitive fallback", () => {
817
+ const source = `
818
+ interface Number { toFixed(fractionDigits?: number): string; }
819
+
820
+ export function test(n: number): string {
821
+ return n.toFixed(2);
822
+ }
823
+ `;
824
+ const bindings = new BindingRegistry();
825
+ bindings.addBindings("/test/Tsonic.JSRuntime/bindings.json", {
826
+ namespace: "Tsonic.JSRuntime",
827
+ types: [
828
+ {
829
+ clrName: "Tsonic.JSRuntime.Number",
830
+ assemblyName: "Tsonic.JSRuntime",
831
+ methods: [
832
+ {
833
+ clrName: "toFixed",
834
+ normalizedSignature: "toFixed|(System.Double,System.Int32):System.String|static=true",
835
+ parameterCount: 2,
836
+ declaringClrType: "Tsonic.JSRuntime.Number",
837
+ declaringAssemblyName: "Tsonic.JSRuntime",
838
+ isExtensionMethod: true,
839
+ },
840
+ ],
841
+ properties: [],
842
+ fields: [],
843
+ },
844
+ ],
845
+ });
846
+ const { testProgram, options } = createTestProgram(source, bindings);
847
+ const sourceFile = testProgram.sourceFiles[0];
848
+ if (!sourceFile)
849
+ throw new Error("Failed to create source file");
850
+ const jsProgram = {
851
+ ...testProgram,
852
+ options: {
853
+ ...testProgram.options,
854
+ surface: "js",
855
+ },
856
+ };
857
+ const ctx = createProgramContext(jsProgram, options);
858
+ const result = buildIrModule(sourceFile, jsProgram, options, ctx);
859
+ expect(result.ok).to.equal(true);
860
+ if (!result.ok)
861
+ return;
862
+ const module = result.value;
863
+ const fn = module.body[0];
864
+ if (fn?.kind !== "functionDeclaration")
865
+ return;
866
+ const ret = fn.body.statements[0];
867
+ if (ret?.kind !== "returnStatement" || !ret.expression)
868
+ return;
869
+ if (ret.expression.kind !== "call")
870
+ return;
871
+ if (ret.expression.callee.kind !== "memberAccess")
872
+ return;
873
+ expect(ret.expression.callee.memberBinding).to.not.equal(undefined);
874
+ expect(ret.expression.callee.memberBinding?.type).to.equal("Tsonic.JSRuntime.Number");
875
+ expect(ret.expression.callee.memberBinding?.member).to.equal("toFixed");
876
+ expect(ret.expression.callee.memberBinding?.isExtensionMethod).to.equal(true);
877
+ });
878
+ it("should resolve js-surface array receiver extensions by array fallback candidates", () => {
879
+ const source = `
880
+ interface Array<T> { join(separator?: string): string; }
881
+
882
+ export function test(xs: number[]): string {
883
+ return xs.join(",");
884
+ }
885
+ `;
886
+ const bindings = new BindingRegistry();
887
+ bindings.addBindings("/test/Tsonic.JSRuntime/bindings.json", {
888
+ namespace: "Tsonic.JSRuntime",
889
+ types: [
890
+ {
891
+ clrName: "Tsonic.JSRuntime.Array",
892
+ assemblyName: "Tsonic.JSRuntime",
893
+ methods: [
894
+ {
895
+ clrName: "join",
896
+ normalizedSignature: "join|(JSArray_1,System.String):System.String|static=true",
897
+ parameterCount: 2,
898
+ declaringClrType: "Tsonic.JSRuntime.Array",
899
+ declaringAssemblyName: "Tsonic.JSRuntime",
900
+ isExtensionMethod: true,
901
+ },
902
+ ],
903
+ properties: [],
904
+ fields: [],
905
+ },
906
+ ],
907
+ });
908
+ const { testProgram, options } = createTestProgram(source, bindings);
909
+ const sourceFile = testProgram.sourceFiles[0];
910
+ if (!sourceFile)
911
+ throw new Error("Failed to create source file");
912
+ const jsProgram = {
913
+ ...testProgram,
914
+ options: {
915
+ ...testProgram.options,
916
+ surface: "js",
917
+ },
918
+ };
919
+ const ctx = createProgramContext(jsProgram, options);
920
+ const result = buildIrModule(sourceFile, jsProgram, options, ctx);
921
+ expect(result.ok).to.equal(true);
922
+ if (!result.ok)
923
+ return;
924
+ const module = result.value;
925
+ const fn = module.body[0];
926
+ if (fn?.kind !== "functionDeclaration")
927
+ return;
928
+ const ret = fn.body.statements[0];
929
+ if (ret?.kind !== "returnStatement" || !ret.expression)
930
+ return;
931
+ if (ret.expression.kind !== "call")
932
+ return;
933
+ if (ret.expression.callee.kind !== "memberAccess")
934
+ return;
935
+ expect(ret.expression.callee.memberBinding).to.not.equal(undefined);
936
+ expect(ret.expression.callee.memberBinding?.type).to.equal("Tsonic.JSRuntime.Array");
937
+ expect(ret.expression.callee.memberBinding?.member).to.equal("join");
938
+ expect(ret.expression.callee.memberBinding?.isExtensionMethod).to.equal(true);
939
+ });
692
940
  });
693
941
  describe("Call-site argument modifier intrinsics (out/ref/inref)", () => {
694
942
  it("should erase out(x) marker for out-parameter extension methods", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"binding-resolution.test.js","sourceRoot":"","sources":["../../src/ir/binding-resolution.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding-resolution.test.js","sourceRoot":"","sources":["../../src/ir/binding-resolution.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAoBnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,EACzB,KAAK,cAAc,KAClB,SAAS,QAAQ,EA6NnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,OAAO,EAChB,YAAY,aAAa,KACxB,SAAS,iBAAiB,EAkC5B,CAAC"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAsBnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,EACzB,KAAK,cAAc,KAClB,SAAS,QAAQ,EAkOnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,OAAO,EAChB,YAAY,aAAa,KACxB,SAAS,iBAAiB,EAkC5B,CAAC"}
@@ -8,6 +8,8 @@ import { existsSync, readFileSync } from "node:fs";
8
8
  import { basename, dirname, join } from "node:path";
9
9
  import { createDiagnostic } from "../../types/diagnostic.js";
10
10
  import { getSourceLocation } from "../../program/diagnostics.js";
11
+ import { resolveNodeModuleAlias } from "../../resolver/node-module-aliases.js";
12
+ import { resolveSurfaceCapabilities } from "../../surface/profiles.js";
11
13
  const getSourceSpan = (node) => {
12
14
  try {
13
15
  const sourceFile = node.getSourceFile();
@@ -30,7 +32,12 @@ export const extractImports = (sourceFile, ctx) => {
30
32
  const visitor = (node) => {
31
33
  if (ts.isImportDeclaration(node) &&
32
34
  ts.isStringLiteral(node.moduleSpecifier)) {
33
- const source = node.moduleSpecifier.text;
35
+ const originalSource = node.moduleSpecifier.text;
36
+ const surfaceCapabilities = resolveSurfaceCapabilities(ctx.surface);
37
+ const source = surfaceCapabilities.enableNodeModuleAliases
38
+ ? (resolveNodeModuleAlias(originalSource)?.canonicalSpecifier ??
39
+ originalSource)
40
+ : originalSource;
34
41
  const isLocal = source.startsWith(".") || source.startsWith("/");
35
42
  // Use import-driven resolution to detect CLR imports
36
43
  // This works for any package that provides bindings.json
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"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"}
@@ -963,6 +963,143 @@ describe("IR Builder", () => {
963
963
  const result = buildIrModule(sourceFile, testProgram, options, ctx);
964
964
  expect(result.ok).to.equal(true);
965
965
  });
966
+ it("types Record<string, unknown>.Keys as string[] without unknown poison", () => {
967
+ const source = `
968
+ export function firstKey(settings: Record<string, unknown>): string | undefined {
969
+ const settingsKeys = settings.Keys;
970
+ if (settingsKeys.Length === 0) {
971
+ return undefined;
972
+ }
973
+ return settingsKeys[0];
974
+ }
975
+ `;
976
+ const { testProgram, ctx, options } = createTestProgram(source);
977
+ const sourceFile = testProgram.sourceFiles[0];
978
+ if (!sourceFile)
979
+ throw new Error("Failed to create source file");
980
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
981
+ expect(result.ok).to.equal(true);
982
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
983
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5107")).to.equal(false);
984
+ if (!result.ok)
985
+ return;
986
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "firstKey");
987
+ expect(fn).to.not.equal(undefined);
988
+ if (!fn)
989
+ return;
990
+ const keyDecl = fn.body.statements.find((stmt) => stmt.kind === "variableDeclaration" &&
991
+ stmt.declarations.some((d) => d.name.kind === "identifierPattern" &&
992
+ d.name.name === "settingsKeys"));
993
+ expect(keyDecl).to.not.equal(undefined);
994
+ const keyInit = keyDecl?.declarations[0]?.initializer;
995
+ expect(keyInit?.kind).to.equal("memberAccess");
996
+ if (!keyInit || keyInit.kind !== "memberAccess")
997
+ return;
998
+ expect(keyInit.inferredType).to.deep.equal({
999
+ kind: "arrayType",
1000
+ elementType: { kind: "primitiveType", name: "string" },
1001
+ });
1002
+ });
1003
+ it("types Record<string, unknown>.Values as unknown[] deterministically", () => {
1004
+ const source = `
1005
+ export function firstValue(settings: Record<string, unknown>): unknown | undefined {
1006
+ const values = settings.Values;
1007
+ return values.Length > 0 ? values[0] : undefined;
1008
+ }
1009
+ `;
1010
+ const { testProgram, ctx, options } = createTestProgram(source);
1011
+ const sourceFile = testProgram.sourceFiles[0];
1012
+ if (!sourceFile)
1013
+ throw new Error("Failed to create source file");
1014
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1015
+ expect(result.ok).to.equal(true);
1016
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1017
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5107")).to.equal(false);
1018
+ if (!result.ok)
1019
+ return;
1020
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "firstValue");
1021
+ expect(fn).to.not.equal(undefined);
1022
+ if (!fn)
1023
+ return;
1024
+ const valuesDecl = fn.body.statements.find((stmt) => stmt.kind === "variableDeclaration" &&
1025
+ stmt.declarations.some((d) => d.name.kind === "identifierPattern" && d.name.name === "values"));
1026
+ expect(valuesDecl).to.not.equal(undefined);
1027
+ const valuesInit = valuesDecl?.declarations[0]?.initializer;
1028
+ expect(valuesInit?.kind).to.equal("memberAccess");
1029
+ if (!valuesInit || valuesInit.kind !== "memberAccess")
1030
+ return;
1031
+ expect(valuesInit.inferredType).to.deep.equal({
1032
+ kind: "arrayType",
1033
+ elementType: { kind: "unknownType" },
1034
+ });
1035
+ });
1036
+ it("types inferred array Length access as int without unknown poison", () => {
1037
+ const source = `
1038
+ export function count(items: string[]): int {
1039
+ const copy = items;
1040
+ return copy.Length;
1041
+ }
1042
+ `;
1043
+ const { testProgram, ctx, options } = createTestProgram(source);
1044
+ const sourceFile = testProgram.sourceFiles[0];
1045
+ if (!sourceFile)
1046
+ throw new Error("Failed to create source file");
1047
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1048
+ expect(result.ok).to.equal(true);
1049
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1050
+ if (!result.ok)
1051
+ return;
1052
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "count");
1053
+ expect(fn).to.not.equal(undefined);
1054
+ if (!fn)
1055
+ return;
1056
+ const returnStmt = fn.body.statements.find((s) => s.kind === "returnStatement");
1057
+ expect(returnStmt).to.not.equal(undefined);
1058
+ if (!returnStmt ||
1059
+ returnStmt.kind !== "returnStatement" ||
1060
+ !returnStmt.expression)
1061
+ return;
1062
+ expect(returnStmt.expression.kind).to.equal("memberAccess");
1063
+ if (returnStmt.expression.kind !== "memberAccess")
1064
+ return;
1065
+ expect(returnStmt.expression.inferredType).to.deep.equal({
1066
+ kind: "primitiveType",
1067
+ name: "int",
1068
+ });
1069
+ });
1070
+ it("types tuple Length access as int without unknown poison", () => {
1071
+ const source = `
1072
+ export function tupleCount(pair: [string, int]): int {
1073
+ return pair.Length;
1074
+ }
1075
+ `;
1076
+ const { testProgram, ctx, options } = createTestProgram(source);
1077
+ const sourceFile = testProgram.sourceFiles[0];
1078
+ if (!sourceFile)
1079
+ throw new Error("Failed to create source file");
1080
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1081
+ expect(result.ok).to.equal(true);
1082
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1083
+ if (!result.ok)
1084
+ return;
1085
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "tupleCount");
1086
+ expect(fn).to.not.equal(undefined);
1087
+ if (!fn)
1088
+ return;
1089
+ const returnStmt = fn.body.statements.find((s) => s.kind === "returnStatement");
1090
+ expect(returnStmt).to.not.equal(undefined);
1091
+ if (!returnStmt ||
1092
+ returnStmt.kind !== "returnStatement" ||
1093
+ !returnStmt.expression)
1094
+ return;
1095
+ expect(returnStmt.expression.kind).to.equal("memberAccess");
1096
+ if (returnStmt.expression.kind !== "memberAccess")
1097
+ return;
1098
+ expect(returnStmt.expression.inferredType).to.deep.equal({
1099
+ kind: "primitiveType",
1100
+ name: "int",
1101
+ });
1102
+ });
966
1103
  });
967
1104
  describe("For-Await Loop Conversion", () => {
968
1105
  it("should set isAwait=true for 'for await' loop", () => {