@tsonic/emitter 0.0.12 → 0.0.13

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 (140) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +6 -6
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/attributes.d.ts +43 -0
  5. package/dist/core/attributes.d.ts.map +1 -0
  6. package/dist/core/attributes.js +128 -0
  7. package/dist/core/attributes.js.map +1 -0
  8. package/dist/core/attributes.test.d.ts +5 -0
  9. package/dist/core/attributes.test.d.ts.map +1 -0
  10. package/dist/core/attributes.test.js +296 -0
  11. package/dist/core/attributes.test.js.map +1 -0
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  17. package/dist/core/module-emitter/static-container.js +50 -1
  18. package/dist/core/module-emitter/static-container.js.map +1 -1
  19. package/dist/core/module-emitter.test.js +2 -1
  20. package/dist/core/module-emitter.test.js.map +1 -1
  21. package/dist/core/module-map.d.ts.map +1 -1
  22. package/dist/core/module-map.js +5 -1
  23. package/dist/core/module-map.js.map +1 -1
  24. package/dist/core/module-map.test.d.ts +8 -0
  25. package/dist/core/module-map.test.d.ts.map +1 -0
  26. package/dist/core/module-map.test.js +94 -0
  27. package/dist/core/module-map.test.js.map +1 -0
  28. package/dist/core/type-compatibility.d.ts +6 -1
  29. package/dist/core/type-compatibility.d.ts.map +1 -1
  30. package/dist/core/type-compatibility.js +12 -22
  31. package/dist/core/type-compatibility.js.map +1 -1
  32. package/dist/core/type-resolution.d.ts +2 -2
  33. package/dist/core/type-resolution.js +6 -6
  34. package/dist/core/type-resolution.js.map +1 -1
  35. package/dist/emitter.d.ts.map +1 -1
  36. package/dist/emitter.js +47 -1
  37. package/dist/emitter.js.map +1 -1
  38. package/dist/expression-emitter.d.ts.map +1 -1
  39. package/dist/expression-emitter.js +3 -3
  40. package/dist/expression-emitter.js.map +1 -1
  41. package/dist/expressions/access.d.ts.map +1 -1
  42. package/dist/expressions/access.js +46 -15
  43. package/dist/expressions/access.js.map +1 -1
  44. package/dist/expressions/calls.d.ts.map +1 -1
  45. package/dist/expressions/calls.js +86 -13
  46. package/dist/expressions/calls.js.map +1 -1
  47. package/dist/expressions/collections.d.ts.map +1 -1
  48. package/dist/expressions/collections.js +44 -35
  49. package/dist/expressions/collections.js.map +1 -1
  50. package/dist/expressions/identifiers.d.ts.map +1 -1
  51. package/dist/expressions/identifiers.js +1 -0
  52. package/dist/expressions/identifiers.js.map +1 -1
  53. package/dist/expressions/index.test.js +3 -1
  54. package/dist/expressions/index.test.js.map +1 -1
  55. package/dist/expressions/literals.d.ts +7 -15
  56. package/dist/expressions/literals.d.ts.map +1 -1
  57. package/dist/expressions/literals.js +15 -99
  58. package/dist/expressions/literals.js.map +1 -1
  59. package/dist/expressions/literals.test.js +11 -2
  60. package/dist/expressions/literals.test.js.map +1 -1
  61. package/dist/expressions/operators.d.ts +25 -11
  62. package/dist/expressions/operators.d.ts.map +1 -1
  63. package/dist/expressions/operators.js +151 -107
  64. package/dist/expressions/operators.js.map +1 -1
  65. package/dist/expressions/other.d.ts +3 -0
  66. package/dist/expressions/other.d.ts.map +1 -1
  67. package/dist/expressions/other.js +18 -1
  68. package/dist/expressions/other.js.map +1 -1
  69. package/dist/generator.test.js +2 -2
  70. package/dist/generator.test.js.map +1 -1
  71. package/dist/golden-tests/discovery.d.ts +14 -3
  72. package/dist/golden-tests/discovery.d.ts.map +1 -1
  73. package/dist/golden-tests/discovery.js +93 -10
  74. package/dist/golden-tests/discovery.js.map +1 -1
  75. package/dist/golden-tests/index.d.ts +1 -1
  76. package/dist/golden-tests/index.d.ts.map +1 -1
  77. package/dist/golden-tests/index.js.map +1 -1
  78. package/dist/golden-tests/runner.d.ts +1 -0
  79. package/dist/golden-tests/runner.d.ts.map +1 -1
  80. package/dist/golden-tests/runner.js +30 -27
  81. package/dist/golden-tests/runner.js.map +1 -1
  82. package/dist/golden-tests/types.d.ts +7 -0
  83. package/dist/golden-tests/types.d.ts.map +1 -1
  84. package/dist/golden.test.d.ts +12 -5
  85. package/dist/golden.test.d.ts.map +1 -1
  86. package/dist/golden.test.js +40 -21
  87. package/dist/golden.test.js.map +1 -1
  88. package/dist/integration.test.js +8 -8
  89. package/dist/integration.test.js.map +1 -1
  90. package/dist/invariants/emitter-globals-subset.test.js +4 -4
  91. package/dist/invariants/emitter-globals-subset.test.js.map +1 -1
  92. package/dist/invariants/numeric-proof-contract.test.js +20 -15
  93. package/dist/invariants/numeric-proof-contract.test.js.map +1 -1
  94. package/dist/specialization/generic-functions.test.js +366 -0
  95. package/dist/specialization/generic-functions.test.js.map +1 -1
  96. package/dist/specialization/interfaces.test.js +6 -6
  97. package/dist/specialization/interfaces.test.js.map +1 -1
  98. package/dist/specialization/type-aliases.test.js +88 -5
  99. package/dist/specialization/type-aliases.test.js.map +1 -1
  100. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  101. package/dist/statements/classes/members/methods.js +13 -4
  102. package/dist/statements/classes/members/methods.js.map +1 -1
  103. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  104. package/dist/statements/classes/members/properties.js +10 -1
  105. package/dist/statements/classes/members/properties.js.map +1 -1
  106. package/dist/statements/classes/properties.d.ts.map +1 -1
  107. package/dist/statements/classes/properties.js +4 -0
  108. package/dist/statements/classes/properties.js.map +1 -1
  109. package/dist/statements/control/conditionals.d.ts.map +1 -1
  110. package/dist/statements/control/conditionals.js +138 -1
  111. package/dist/statements/control/conditionals.js.map +1 -1
  112. package/dist/statements/declarations/classes.d.ts.map +1 -1
  113. package/dist/statements/declarations/classes.js +7 -1
  114. package/dist/statements/declarations/classes.js.map +1 -1
  115. package/dist/statements/declarations/functions.d.ts.map +1 -1
  116. package/dist/statements/declarations/functions.js +7 -1
  117. package/dist/statements/declarations/functions.js.map +1 -1
  118. package/dist/statements/declarations/structs.test.js +7 -5
  119. package/dist/statements/declarations/structs.test.js.map +1 -1
  120. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  121. package/dist/statements/declarations/type-aliases.js +7 -8
  122. package/dist/statements/declarations/type-aliases.js.map +1 -1
  123. package/dist/statements/declarations/variables.d.ts.map +1 -1
  124. package/dist/statements/declarations/variables.js +54 -2
  125. package/dist/statements/declarations/variables.js.map +1 -1
  126. package/dist/statements/index.test.js +2 -3
  127. package/dist/statements/index.test.js.map +1 -1
  128. package/dist/types/parameters.d.ts.map +1 -1
  129. package/dist/types/parameters.js +29 -0
  130. package/dist/types/parameters.js.map +1 -1
  131. package/dist/types/primitives.d.ts +12 -1
  132. package/dist/types/primitives.d.ts.map +1 -1
  133. package/dist/types/primitives.js +14 -1
  134. package/dist/types/primitives.js.map +1 -1
  135. package/dist/types/references.d.ts.map +1 -1
  136. package/dist/types/references.js +19 -12
  137. package/dist/types/references.js.map +1 -1
  138. package/dist/types/references.test.js +6 -8
  139. package/dist/types/references.test.js.map +1 -1
  140. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/statements/declarations/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAEL,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAA2D,EAC3D,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,yFAAyF;IACzF,4EAA4E;IAC5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;QACrC,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACrD,CAAC,CAAC;IAEH,sFAAsF;IACtF,IAAI,cAAc,GAAmB;QACnC,GAAG,OAAO;QACV,cAAc,EAAE,cAAc;KAC/B,CAAC;IAEF,mBAAmB;IACnB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,8DAA8D;IAC9D,MAAM,eAAe,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAExD,cAAc;IACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,eAAe,EAAE,CAAC;YACpB,oDAAoD;YACpD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,YAAY,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,uFAAuF;YACvF,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC;YAC7C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CACR,6DAA6D,YAAY,GAAG,CAC7E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CACR,kDAAkD,YAAY,GAAG,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3E,cAAc,GAAG,UAAU,CAAC;QAC5B,sEAAsE;QACtE,sBAAsB;QACtB,IACE,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,eAAe;YACxC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAClC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAgC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,OAAO;gBACV,CAAC,CAAC,uCAAuC,UAAU,GAAG;gBACtD,CAAC,CAAC,UAAU,CACf,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,gBAAgB,CAAC,GAAG,kBAAkB,CACxE,IAAI,CAAC,cAAc,EACnB,cAAc,CACf,CAAC;IACF,cAAc,GAAG,gBAAgB,CAAC;IAElC,aAAa;IACb,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/D,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3B,yDAAyD;IACzD,6EAA6E;IAC7E,MAAM,eAAe,GAAG,SAAS,CAC/B,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EACzC,IAAI,CAAC,OAAO,CACb,CAAC;IAEF,sDAAsD;IACtD,iEAAiE;IACjE,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAC3B,eAAe,EACf;QACE,cAAc,EAAE,cAAc;QAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,EACD,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CACxD,CAAC;IAEF,kDAAkD;IAClD,MAAM,SAAS,GAA0C,EAAE,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,qFAAqF;QACrF,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC1E,iCAAiC;YACjC,IAAI,QAAQ,GAAG,QAAQ,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACvD,QAAQ,GAAG,OAAO,CAAC;YACrB,CAAC;YACD,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChD,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,IAAI,IAAI,CAAC,WAAW,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC;QAC7C,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,YAAY,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO;YACjC,CAAC,CAAC,uDAAuD,YAAY,GAAG;YACxE,CAAC,CAAC,kDAAkD,YAAY,GAAG,CAAC;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnD,uEAAuE;QACvE,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEnD,iDAAiD;QACjD,IAAI,aAAa,GAAG,QAAQ,CAAC;QAC7B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EACJ,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,kBAAkB,GAC/B,GAAG,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC9D,cAAc,GAAG,kBAAkB,CAAC;YACpC,aAAa,GAAG,mBAAmB,CAAC;QACtC,CAAC;QAED,8CAA8C;QAC9C,MAAM,YAAY,GAAG,QAAQ;aAC1B,KAAK,CAAC,IAAI,CAAC;aACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oCAAoC;aACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,mBAAmB;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,6CAA6C;QAC7C,MAAM,SAAS,GAAG;YAChB,GAAG,GAAG,GAAG;YACT,GAAG,OAAO,sBAAsB,YAAY,KAAK;SAClD,CAAC;QAEF,mDAAmD;QACnD,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,aAAa,4BAA4B,CAAC,CAAC;QACzE,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,eAAe,CAAC,CAAC;QAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnB,gEAAgE;QAChE,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CACZ,GAAG,OAAO,cAAc,WAAW,gDAAgD,CACpF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CACZ,GAAG,OAAO,cAAc,WAAW,2BAA2B,CAC/D,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAE1B,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,sBAAsB,YAAY,KAAK,CAAC,CAAC;QACtE,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,IAAI,aAAa,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;gBACvC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,cAAc,CAClD,IAAI,CAAC,UAAU,EACf,cAAc,CACf,CAAC;IACF,cAAc,GAAG,WAAW,CAAC;IAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GACf,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,KAAK,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE;QACpD,CAAC,CAAC,EAAE,CAAC;IAET,4CAA4C;IAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,SAAS,GAAG,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;IAE7G,wEAAwE;IACxE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAChC,CAAC,CAAC"}
@@ -17,6 +17,7 @@ describe("Struct Emission", () => {
17
17
  accessibility: "public",
18
18
  isStatic: false,
19
19
  isReadonly: false,
20
+ isRequired: true,
20
21
  },
21
22
  {
22
23
  kind: "propertyDeclaration",
@@ -25,6 +26,7 @@ describe("Struct Emission", () => {
25
26
  accessibility: "public",
26
27
  isStatic: false,
27
28
  isReadonly: false,
29
+ isRequired: true,
28
30
  },
29
31
  ],
30
32
  implements: [],
@@ -43,8 +45,8 @@ describe("Struct Emission", () => {
43
45
  };
44
46
  const result = emitCSharpFile(module);
45
47
  expect(result).to.include("public struct Point");
46
- expect(result).to.include("public double x");
47
- expect(result).to.include("public double y");
48
+ expect(result).to.include("public required double x");
49
+ expect(result).to.include("public required double y");
48
50
  expect(result).not.to.include("class Point");
49
51
  });
50
52
  it("should emit class for class without isStruct flag", () => {
@@ -122,9 +124,9 @@ describe("Struct Emission", () => {
122
124
  };
123
125
  const result = emitCSharpFile(module);
124
126
  expect(result).to.include("public struct Vector3D");
125
- expect(result).to.include("public double x");
126
- expect(result).to.include("public double y");
127
- expect(result).to.include("public double z");
127
+ expect(result).to.include("public required double x");
128
+ expect(result).to.include("public required double y");
129
+ expect(result).to.include("public required double z");
128
130
  expect(result).not.to.include("class Vector3D");
129
131
  });
130
132
  it("should not emit __brand property for struct", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"structs.test.js","sourceRoot":"","sources":["../../../src/statements/declarations/structs.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structs.test.js","sourceRoot":"","sources":["../../../src/statements/declarations/structs.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-aliases.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/type-aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAInE;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAqGzB,CAAC"}
1
+ {"version":3,"file":"type-aliases.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/type-aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAInE;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAsGzB,CAAC"}
@@ -55,6 +55,10 @@ export const emitTypeAliasDeclaration = (stmt, context) => {
55
55
  if (member.kind === "propertySignature") {
56
56
  const propParts = [];
57
57
  propParts.push("public");
58
+ // Required modifier for non-optional properties (C# 11)
59
+ if (!member.isOptional) {
60
+ propParts.push("required");
61
+ }
58
62
  // Property type
59
63
  if (member.type) {
60
64
  const [propType, newContext] = emitType(member.type, currentContext);
@@ -67,14 +71,9 @@ export const emitTypeAliasDeclaration = (stmt, context) => {
67
71
  propParts.push(member.isOptional ? "object?" : "object");
68
72
  }
69
73
  propParts.push(escapeCSharpIdentifier(member.name));
70
- // Readonly uses private set
71
- const accessors = member.isReadonly
72
- ? "{ get; private set; }"
73
- : "{ get; set; }";
74
- propParts.push(accessors);
75
- // Default initializer
76
- propParts.push("= default!;");
77
- properties.push(`${getIndent(bodyContext)}${propParts.join(" ")}`);
74
+ // Readonly uses get-only, writable uses get; set;
75
+ const accessors = member.isReadonly ? "{ get; }" : "{ get; set; }";
76
+ properties.push(`${getIndent(bodyContext)}${propParts.join(" ")} ${accessors}`);
78
77
  }
79
78
  }
80
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type-aliases.js","sourceRoot":"","sources":["../../../src/statements/declarations/type-aliases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-aliases.js","sourceRoot":"","sources":["../../../src/statements/declarations/type-aliases.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/variables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAK3D;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAgJzB,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/variables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAK3D;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAgMzB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Variable declaration emission
3
3
  */
4
+ import { NUMERIC_KIND_TO_CSHARP, } from "@tsonic/frontend";
4
5
  import { getIndent } from "../../types.js";
5
6
  import { emitExpression } from "../../expression-emitter.js";
6
7
  import { emitType } from "../../type-emitter.js";
@@ -15,8 +16,9 @@ export const emitVariableDeclaration = (stmt, context) => {
15
16
  for (const decl of stmt.declarations) {
16
17
  let varDecl = "";
17
18
  // In static contexts, variable declarations become fields with modifiers
18
- if (context.isStatic && stmt.isExported) {
19
- varDecl = "public static ";
19
+ if (context.isStatic) {
20
+ // Exported: public, non-exported: private
21
+ varDecl = stmt.isExported ? "public static " : "private static ";
20
22
  if (stmt.declarationKind === "const") {
21
23
  varDecl += "readonly ";
22
24
  }
@@ -67,6 +69,56 @@ export const emitVariableDeclaration = (stmt, context) => {
67
69
  const funcType = `global::System.Func<${allTypes.join(", ")}>`;
68
70
  varDecl += `${funcType} `;
69
71
  }
72
+ else if (context.isStatic) {
73
+ // Static fields cannot use 'var' - infer type from initializer if possible
74
+ // Priority: 1) new expression with type args, 2) literals, 3) fall back to object
75
+ if (decl.initializer?.kind === "new") {
76
+ // Construct type from the new expression's callee and type arguments
77
+ // This preserves explicit type arguments like `int` instead of using
78
+ // inferredType which TypeScript sees as `number`
79
+ const newExpr = decl.initializer;
80
+ const [calleeFrag, calleeContext] = emitExpression(newExpr.callee, currentContext);
81
+ currentContext = calleeContext;
82
+ if (newExpr.typeArguments && newExpr.typeArguments.length > 0) {
83
+ // Emit type with explicit type arguments
84
+ const typeArgs = [];
85
+ for (const typeArg of newExpr.typeArguments) {
86
+ const [typeArgStr, newCtx] = emitType(typeArg, currentContext);
87
+ typeArgs.push(typeArgStr);
88
+ currentContext = newCtx;
89
+ }
90
+ varDecl += `${calleeFrag.text}<${typeArgs.join(", ")}> `;
91
+ }
92
+ else {
93
+ // Non-generic constructor
94
+ varDecl += `${calleeFrag.text} `;
95
+ }
96
+ }
97
+ else if (decl.initializer?.kind === "literal") {
98
+ const lit = decl.initializer;
99
+ if (typeof lit.value === "string") {
100
+ varDecl += "string ";
101
+ }
102
+ else if (typeof lit.value === "number") {
103
+ // Use expression-level numericIntent (from literal lexeme) to determine int vs double
104
+ // INVARIANT: numericIntent is on the literal expression, NOT on the type
105
+ const numericIntent = lit.numericIntent;
106
+ const csharpType = numericIntent
107
+ ? (NUMERIC_KIND_TO_CSHARP.get(numericIntent) ?? "double")
108
+ : "double";
109
+ varDecl += `${csharpType} `;
110
+ }
111
+ else if (typeof lit.value === "boolean") {
112
+ varDecl += "bool ";
113
+ }
114
+ else {
115
+ varDecl += "object ";
116
+ }
117
+ }
118
+ else {
119
+ varDecl += "object ";
120
+ }
121
+ }
70
122
  else {
71
123
  varDecl += "var ";
72
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/statements/declarations/variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/statements/declarations/variables.ts"],"names":[],"mappings":"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"}
@@ -164,11 +164,10 @@ describe("Statement Emission", () => {
164
164
  property: {
165
165
  kind: "identifier",
166
166
  name: "i",
167
- // Proof marker: loop counter is Int32
167
+ // Proof marker: loop counter is int
168
168
  inferredType: {
169
169
  kind: "primitiveType",
170
- name: "number",
171
- numericIntent: "Int32",
170
+ name: "int",
172
171
  },
173
172
  },
174
173
  isComputed: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/statements/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/statements/index.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/types/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,SAAS,eAAe,EAAE,GAAG,SAAS,EAClD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,CA+BnC,CAAC;AAwBF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,GAAG,SAAS,EACxB,YAAY,OAAO,EACnB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAiBzB,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/types/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,SAAS,eAAe,EAAE,GAAG,SAAS,EAClD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,CAgEnC,CAAC;AAwBF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,GAAG,SAAS,EACxB,YAAY,OAAO,EACnB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAiBzB,CAAC"}
@@ -23,6 +23,35 @@ export const emitTypeParameters = (typeParams, context) => {
23
23
  // Structural constraints generate interfaces - reference them
24
24
  whereClauses.push(`where ${tp.name} : __Constraint_${tp.name}`);
25
25
  }
26
+ else if (tp.constraint.kind === "intersectionType") {
27
+ // Multiple constraints: T extends A & B → where T : A, B
28
+ const constraintParts = [];
29
+ for (const member of tp.constraint.types) {
30
+ if (member.kind === "referenceType" && member.name === "struct") {
31
+ constraintParts.push("struct");
32
+ }
33
+ else if (member.kind === "referenceType" &&
34
+ member.name === "object") {
35
+ constraintParts.push("class");
36
+ }
37
+ else {
38
+ const [constraintStr, newContext] = emitType(member, currentContext);
39
+ currentContext = newContext;
40
+ constraintParts.push(constraintStr);
41
+ }
42
+ }
43
+ whereClauses.push(`where ${tp.name} : ${constraintParts.join(", ")}`);
44
+ }
45
+ else if (tp.constraint.kind === "referenceType" &&
46
+ tp.constraint.name === "struct") {
47
+ // Special case: T extends struct → where T : struct (C# value type constraint)
48
+ whereClauses.push(`where ${tp.name} : struct`);
49
+ }
50
+ else if (tp.constraint.kind === "referenceType" &&
51
+ tp.constraint.name === "object") {
52
+ // Special case: T extends object → where T : class (C# reference type constraint)
53
+ whereClauses.push(`where ${tp.name} : class`);
54
+ }
26
55
  else {
27
56
  const [constraintStr, newContext] = emitType(tp.constraint, currentContext);
28
57
  currentContext = newContext;
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/types/parameters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/types/parameters.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  /**
2
2
  * Primitive type emission
3
+ *
4
+ * INVARIANT A: "number" always emits as C# "double". No exceptions.
5
+ * INVARIANT B: "int" always emits as C# "int". No exceptions.
6
+ *
7
+ * These are distinct types in the IR, not decorated versions of each other.
8
+ * The numericIntent field on literals is for expression-level classification,
9
+ * NOT for type-level emission decisions.
3
10
  */
4
11
  import { IrType } from "@tsonic/frontend";
5
12
  import { EmitterContext } from "../types.js";
6
13
  /**
7
- * Emit primitive types (number, string, boolean, null, undefined)
14
+ * Emit primitive types (number, int, string, boolean, null, undefined)
15
+ *
16
+ * For numeric types:
17
+ * - primitiveType(name="number") → "double"
18
+ * - primitiveType(name="int") → "int"
8
19
  */
9
20
  export declare const emitPrimitiveType: (type: Extract<IrType, {
10
21
  kind: "primitiveType";
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,EAChD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAUzB,CAAC"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,EAChD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAYzB,CAAC"}
@@ -1,14 +1,27 @@
1
1
  /**
2
2
  * Primitive type emission
3
+ *
4
+ * INVARIANT A: "number" always emits as C# "double". No exceptions.
5
+ * INVARIANT B: "int" always emits as C# "int". No exceptions.
6
+ *
7
+ * These are distinct types in the IR, not decorated versions of each other.
8
+ * The numericIntent field on literals is for expression-level classification,
9
+ * NOT for type-level emission decisions.
3
10
  */
4
11
  /**
5
- * Emit primitive types (number, string, boolean, null, undefined)
12
+ * Emit primitive types (number, int, string, boolean, null, undefined)
13
+ *
14
+ * For numeric types:
15
+ * - primitiveType(name="number") → "double"
16
+ * - primitiveType(name="int") → "int"
6
17
  */
7
18
  export const emitPrimitiveType = (type, context) => {
8
19
  const typeMap = {
9
20
  number: "double",
21
+ int: "int",
10
22
  string: "string",
11
23
  boolean: "bool",
24
+ char: "char",
12
25
  null: "object",
13
26
  undefined: "object",
14
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAgD,EAChD,OAAuB,EACG,EAAE;IAC5B,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/types/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAgD,EAChD,OAAuB,EACG,EAAE;IAC5B,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/types/references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiG7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,EAChD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA+LzB,CAAC"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/types/references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiG7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,EAChD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAyMzB,CAAC"}
@@ -8,29 +8,29 @@ import { isNestedType, tsCSharpNestedTypeName, } from "@tsonic/frontend/types/ne
8
8
  import { substituteTypeArgs } from "../core/type-resolution.js";
9
9
  /**
10
10
  * C# primitive type names that can be emitted directly without qualification.
11
- * These correspond to the types defined in @tsonic/types package.
11
+ * These correspond to the types defined in @tsonic/core package.
12
12
  */
13
13
  const CSHARP_PRIMITIVES = new Set([
14
- // Signed integers (from @tsonic/types)
14
+ // Signed integers (from @tsonic/core)
15
15
  "sbyte",
16
16
  "short",
17
17
  "int",
18
18
  "long",
19
19
  "nint",
20
20
  "int128",
21
- // Unsigned integers (from @tsonic/types)
21
+ // Unsigned integers (from @tsonic/core)
22
22
  "byte",
23
23
  "ushort",
24
24
  "uint",
25
25
  "ulong",
26
26
  "nuint",
27
27
  "uint128",
28
- // Floating-point (from @tsonic/types)
28
+ // Floating-point (from @tsonic/core)
29
29
  "half",
30
30
  "float",
31
31
  "double",
32
32
  "decimal",
33
- // Other primitives (from @tsonic/types)
33
+ // Other primitives (from @tsonic/core)
34
34
  "bool",
35
35
  "char",
36
36
  // Additional C# keywords that are valid type names
@@ -184,15 +184,15 @@ export const emitReferenceType = (type, context) => {
184
184
  if (name === "Promise") {
185
185
  return ["global::System.Threading.Tasks.Task", context];
186
186
  }
187
- // NOTE: Map and Set are NOT in js-globals or dotnet-globals.
188
- // They must be explicitly imported or will fail as unresolved types.
189
- // Per Alice's decision: no ambient Map/Set handling.
187
+ // NOTE: Map and Set are in js-globals but not in base globals.
188
+ // They must be explicitly imported in dotnet mode or will fail as unresolved types.
189
+ // Per Alice's decision: no ambient Map/Set handling in dotnet mode.
190
190
  // Get runtime mode for conditional mappings
191
191
  const runtime = context.options.runtime ?? "js";
192
192
  // Map common JS types to .NET equivalents
193
193
  // Only types actually defined in the globals packages
194
- // Error: only in js-globals (not in dotnet-globals)
195
- // PromiseLike: in both js-globals and dotnet-globals
194
+ // Error: only in js-globals (not in base globals)
195
+ // PromiseLike: in base globals (available in both modes)
196
196
  if (name === "Error" && runtime === "js") {
197
197
  return ["global::System.Exception", context];
198
198
  }
@@ -231,9 +231,16 @@ export const emitReferenceType = (type, context) => {
231
231
  }
232
232
  // FALLTHROUGH is only permitted for local types.
233
233
  // Emitting a bare external name is unsound and forbidden.
234
- if (context.localTypes?.has(name)) {
234
+ const localTypeInfo = context.localTypes?.get(name);
235
+ if (localTypeInfo) {
235
236
  // Convert nested type names (Outer$Inner → Outer.Inner)
236
- const csharpName = isNestedType(name) ? tsCSharpNestedTypeName(name) : name;
237
+ let csharpName = isNestedType(name) ? tsCSharpNestedTypeName(name) : name;
238
+ // Type aliases with objectType underlying type are emitted as classes with __Alias suffix
239
+ // (per spec/16-types-and-interfaces.md §3.4)
240
+ if (localTypeInfo.kind === "typeAlias" &&
241
+ localTypeInfo.type.kind === "objectType") {
242
+ csharpName = `${csharpName}__Alias`;
243
+ }
237
244
  if (typeArguments && typeArguments.length > 0) {
238
245
  const typeParams = [];
239
246
  let currentContext = context;
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/types/references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,uCAAuC;IACvC,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,yCAAyC;IACzC,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,SAAS;IACT,sCAAsC;IACtC,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,wCAAwC;IACxC,MAAM;IACN,MAAM;IACN,mDAAmD;IACnD,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC;AACzE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAsB,EAAE;IAC3D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAElD,iFAAiF;IACjF,MAAM,YAAY,GAAI,CAA2B,CAAC,OAAO,CAAC;IAC1D,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,0EAA0E;IAC1E,MAAM,SAAS,GAAI,CAAwB,CAAC,IAAI,CAAC;IACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAsB,EAAE;IAC3E,IACE,QAAQ,KAAK,iBAAiB;QAC9B,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,EACvC,CAAC;QACD,OAAO,6EAA6E,CAAC;IACvF,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO,uFAAuF,CAAC;IACjG,CAAC;IACD,IAAI,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACxE,OAAO,2EAA2E,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAgD,EAChD,OAAuB,EACG,EAAE;IAC5B,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAEtD,gHAAgH;IAChH,0FAA0F;IAC1F,kGAAkG;IAClG,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,oEAAoE;QACpE,MAAM,aAAa,GAAG,cAAc,KAAK,WAAW,CAAC;QAErD,IAAI,aAAa,EAAE,CAAC;YAClB,uCAAuC;YACvC,MAAM,cAAc,GAClB,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBACvC,CAAC,CAAC,kBAAkB,CAChB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,cAAc,EACvB,aAAa,CACd;gBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpB,OAAO,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,6EAA6E;IAC/E,CAAC;IAED,4DAA4D;IAC5D,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,cAAc,GAAG,OAAO,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,sEAAsE;IACtE,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,aAAa,EAAE,CAAC;QAClB,2EAA2E;QAC3E,mFAAmF;QACnF,qEAAqE;QACrE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,aAAa,GACjB,aAAa,CAAC,IAAI,KAAK,MAAM;YAC3B,CAAC,CAAC,aAAa,CAAC,OAAO;YACvB,CAAC,CAAC,aAAa,CAAC,MAAM;gBACpB,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE;gBACpD,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;QAE9B,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,cAAc,GAAG,OAAO,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,gBAAgB,EAAE,CAAC;QACrB,oDAAoD;QACpD,sEAAsE;QACtE,OAAO,CAAC,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,aAAa,gBAAgB,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,KAAK,OAAO,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,iDAAiD,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO;YACL,2CAA2C,WAAW,GAAG;YACzD,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9D,oDAAoD;QACpD,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,qCAAqC,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,uCAAuC,WAAW,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,6DAA6D;IAC7D,qEAAqE;IACrE,qDAAqD;IAErD,4CAA4C;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IAEhD,0CAA0C;IAC1C,sDAAsD;IACtD,oDAAoD;IACpD,qDAAqD;IACrD,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,wEAAwE;QACxE,OAAO,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,wEAAwE;IACxE,mFAAmF;IACnF,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,cAAc,GAAG,OAAO,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,6CAA6C;IAC7C,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,iDAAiD;IACjD,0DAA0D;IAC1D,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,wDAAwD;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,cAAc,GAAG,OAAO,CAAC;YAE7B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YAED,OAAO,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,mDAAmD;IACnD,yEAAyE;IACzE,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,2EAA2E,CACnH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/types/references.ts"],"names":[],"mappings":"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"}
@@ -124,12 +124,12 @@ describe("Reference Type Emission", () => {
124
124
  const result = emitModule(module, { runtime: "js" });
125
125
  expect(result).to.include("global::System.Exception");
126
126
  });
127
- it("should fail for Error in dotnet mode (not in dotnet-globals)", () => {
127
+ it("should fail for Error in dotnet mode (not in base globals)", () => {
128
128
  const module = createModuleWithType({
129
129
  kind: "referenceType",
130
130
  name: "Error",
131
131
  });
132
- // Error is not in dotnet-globals, so it should fail as unresolved
132
+ // Error is not in base globals, so it should fail as unresolved
133
133
  expect(() => emitModule(module, { runtime: "dotnet" })).to.throw("ICE: Unresolved reference type 'Error'");
134
134
  });
135
135
  });
@@ -287,11 +287,10 @@ describe("Reference Type Emission", () => {
287
287
  property: {
288
288
  kind: "literal",
289
289
  value: 0,
290
- // Proof marker: Int32 literal
290
+ // Proof marker: int literal
291
291
  inferredType: {
292
292
  kind: "primitiveType",
293
- name: "number",
294
- numericIntent: "Int32",
293
+ name: "int",
295
294
  },
296
295
  },
297
296
  isComputed: true,
@@ -358,11 +357,10 @@ describe("Reference Type Emission", () => {
358
357
  property: {
359
358
  kind: "literal",
360
359
  value: 0,
361
- // Proof marker: Int32 literal
360
+ // Proof marker: int literal
362
361
  inferredType: {
363
362
  kind: "primitiveType",
364
- name: "number",
365
- numericIntent: "Int32",
363
+ name: "int",
366
364
  },
367
365
  },
368
366
  isComputed: true,