@tsonic/emitter 0.0.6 → 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 (223) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +5 -5
  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/imports.test.js +6 -3
  13. package/dist/core/imports.test.js.map +1 -1
  14. package/dist/core/index.d.ts +2 -0
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +2 -0
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  19. package/dist/core/module-emitter/static-container.js +50 -1
  20. package/dist/core/module-emitter/static-container.js.map +1 -1
  21. package/dist/core/module-emitter.test.js +2 -1
  22. package/dist/core/module-emitter.test.js.map +1 -1
  23. package/dist/core/module-map.d.ts.map +1 -1
  24. package/dist/core/module-map.js +5 -1
  25. package/dist/core/module-map.js.map +1 -1
  26. package/dist/core/module-map.test.d.ts +8 -0
  27. package/dist/core/module-map.test.d.ts.map +1 -0
  28. package/dist/core/module-map.test.js +94 -0
  29. package/dist/core/module-map.test.js.map +1 -0
  30. package/dist/core/type-compatibility.d.ts +31 -0
  31. package/dist/core/type-compatibility.d.ts.map +1 -0
  32. package/dist/core/type-compatibility.js +99 -0
  33. package/dist/core/type-compatibility.js.map +1 -0
  34. package/dist/core/type-resolution.d.ts +83 -3
  35. package/dist/core/type-resolution.d.ts.map +1 -1
  36. package/dist/core/type-resolution.js +262 -4
  37. package/dist/core/type-resolution.js.map +1 -1
  38. package/dist/core/type-resolution.test.js +110 -1
  39. package/dist/core/type-resolution.test.js.map +1 -1
  40. package/dist/emitter-types/context.d.ts.map +1 -1
  41. package/dist/emitter-types/context.js +21 -1
  42. package/dist/emitter-types/context.js.map +1 -1
  43. package/dist/emitter-types/core.d.ts +26 -0
  44. package/dist/emitter-types/core.d.ts.map +1 -1
  45. package/dist/emitter-types/identifiers.d.ts.map +1 -1
  46. package/dist/emitter-types/identifiers.js +4 -43
  47. package/dist/emitter-types/identifiers.js.map +1 -1
  48. package/dist/emitter-types/index.d.ts +1 -1
  49. package/dist/emitter-types/index.d.ts.map +1 -1
  50. package/dist/emitter-types/index.js.map +1 -1
  51. package/dist/emitter.d.ts.map +1 -1
  52. package/dist/emitter.js +47 -1
  53. package/dist/emitter.js.map +1 -1
  54. package/dist/expression-emitter.d.ts.map +1 -1
  55. package/dist/expression-emitter.js +51 -3
  56. package/dist/expression-emitter.js.map +1 -1
  57. package/dist/expressions/access.d.ts.map +1 -1
  58. package/dist/expressions/access.js +138 -23
  59. package/dist/expressions/access.js.map +1 -1
  60. package/dist/expressions/calls.d.ts.map +1 -1
  61. package/dist/expressions/calls.js +90 -13
  62. package/dist/expressions/calls.js.map +1 -1
  63. package/dist/expressions/collections.d.ts +3 -2
  64. package/dist/expressions/collections.d.ts.map +1 -1
  65. package/dist/expressions/collections.js +251 -52
  66. package/dist/expressions/collections.js.map +1 -1
  67. package/dist/expressions/functions.d.ts +2 -2
  68. package/dist/expressions/functions.d.ts.map +1 -1
  69. package/dist/expressions/functions.js +81 -38
  70. package/dist/expressions/functions.js.map +1 -1
  71. package/dist/expressions/identifiers.d.ts.map +1 -1
  72. package/dist/expressions/identifiers.js +28 -7
  73. package/dist/expressions/identifiers.js.map +1 -1
  74. package/dist/expressions/index.test.js +191 -4
  75. package/dist/expressions/index.test.js.map +1 -1
  76. package/dist/expressions/literals.d.ts +7 -17
  77. package/dist/expressions/literals.d.ts.map +1 -1
  78. package/dist/expressions/literals.js +27 -87
  79. package/dist/expressions/literals.js.map +1 -1
  80. package/dist/expressions/literals.test.js +52 -2
  81. package/dist/expressions/literals.test.js.map +1 -1
  82. package/dist/expressions/operators.d.ts +29 -11
  83. package/dist/expressions/operators.d.ts.map +1 -1
  84. package/dist/expressions/operators.js +244 -67
  85. package/dist/expressions/operators.js.map +1 -1
  86. package/dist/expressions/other.d.ts +3 -0
  87. package/dist/expressions/other.d.ts.map +1 -1
  88. package/dist/expressions/other.js +27 -3
  89. package/dist/expressions/other.js.map +1 -1
  90. package/dist/generator-exchange.d.ts +1 -1
  91. package/dist/generator-exchange.d.ts.map +1 -1
  92. package/dist/generator-exchange.js +15 -4
  93. package/dist/generator-exchange.js.map +1 -1
  94. package/dist/generator-wrapper.d.ts +84 -0
  95. package/dist/generator-wrapper.d.ts.map +1 -0
  96. package/dist/generator-wrapper.js +312 -0
  97. package/dist/generator-wrapper.js.map +1 -0
  98. package/dist/generator-wrapper.test.d.ts +12 -0
  99. package/dist/generator-wrapper.test.d.ts.map +1 -0
  100. package/dist/generator-wrapper.test.js +179 -0
  101. package/dist/generator-wrapper.test.js.map +1 -0
  102. package/dist/generator.test.js +596 -6
  103. package/dist/generator.test.js.map +1 -1
  104. package/dist/golden-tests/config-parser.d.ts.map +1 -1
  105. package/dist/golden-tests/config-parser.js +81 -11
  106. package/dist/golden-tests/config-parser.js.map +1 -1
  107. package/dist/golden-tests/discovery.d.ts +14 -3
  108. package/dist/golden-tests/discovery.d.ts.map +1 -1
  109. package/dist/golden-tests/discovery.js +105 -12
  110. package/dist/golden-tests/discovery.js.map +1 -1
  111. package/dist/golden-tests/index.d.ts +1 -1
  112. package/dist/golden-tests/index.d.ts.map +1 -1
  113. package/dist/golden-tests/index.js.map +1 -1
  114. package/dist/golden-tests/runner.d.ts +1 -0
  115. package/dist/golden-tests/runner.d.ts.map +1 -1
  116. package/dist/golden-tests/runner.js +83 -25
  117. package/dist/golden-tests/runner.js.map +1 -1
  118. package/dist/golden-tests/types.d.ts +18 -1
  119. package/dist/golden-tests/types.d.ts.map +1 -1
  120. package/dist/golden.test.d.ts +12 -5
  121. package/dist/golden.test.d.ts.map +1 -1
  122. package/dist/golden.test.js +40 -21
  123. package/dist/golden.test.js.map +1 -1
  124. package/dist/hierarchical-bindings.test.js +2 -2
  125. package/dist/hierarchical-bindings.test.js.map +1 -1
  126. package/dist/integration.test.js +57 -10
  127. package/dist/integration.test.js.map +1 -1
  128. package/dist/invariants/emitter-globals-subset.test.d.ts +15 -0
  129. package/dist/invariants/emitter-globals-subset.test.d.ts.map +1 -0
  130. package/dist/invariants/emitter-globals-subset.test.js +137 -0
  131. package/dist/invariants/emitter-globals-subset.test.js.map +1 -0
  132. package/dist/invariants/numeric-proof-contract.test.d.ts +19 -0
  133. package/dist/invariants/numeric-proof-contract.test.d.ts.map +1 -0
  134. package/dist/invariants/numeric-proof-contract.test.js +565 -0
  135. package/dist/invariants/numeric-proof-contract.test.js.map +1 -0
  136. package/dist/specialization/generic-functions.test.js +376 -0
  137. package/dist/specialization/generic-functions.test.js.map +1 -1
  138. package/dist/specialization/interfaces.test.js +6 -6
  139. package/dist/specialization/interfaces.test.js.map +1 -1
  140. package/dist/specialization/substitution.d.ts.map +1 -1
  141. package/dist/specialization/substitution.js +7 -0
  142. package/dist/specialization/substitution.js.map +1 -1
  143. package/dist/specialization/type-aliases.test.js +88 -5
  144. package/dist/specialization/type-aliases.test.js.map +1 -1
  145. package/dist/statement-emitter.d.ts.map +1 -1
  146. package/dist/statement-emitter.js +5 -1
  147. package/dist/statement-emitter.js.map +1 -1
  148. package/dist/statements/blocks.d.ts +39 -1
  149. package/dist/statements/blocks.d.ts.map +1 -1
  150. package/dist/statements/blocks.js +129 -3
  151. package/dist/statements/blocks.js.map +1 -1
  152. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  153. package/dist/statements/classes/members/methods.js +16 -5
  154. package/dist/statements/classes/members/methods.js.map +1 -1
  155. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  156. package/dist/statements/classes/members/properties.js +10 -1
  157. package/dist/statements/classes/members/properties.js.map +1 -1
  158. package/dist/statements/classes/properties.d.ts.map +1 -1
  159. package/dist/statements/classes/properties.js +4 -0
  160. package/dist/statements/classes/properties.js.map +1 -1
  161. package/dist/statements/control/conditionals.d.ts.map +1 -1
  162. package/dist/statements/control/conditionals.js +352 -1
  163. package/dist/statements/control/conditionals.js.map +1 -1
  164. package/dist/statements/control/loops.d.ts +6 -0
  165. package/dist/statements/control/loops.d.ts.map +1 -1
  166. package/dist/statements/control/loops.js +9 -2
  167. package/dist/statements/control/loops.js.map +1 -1
  168. package/dist/statements/declarations/classes.d.ts.map +1 -1
  169. package/dist/statements/declarations/classes.js +20 -6
  170. package/dist/statements/declarations/classes.js.map +1 -1
  171. package/dist/statements/declarations/functions.d.ts.map +1 -1
  172. package/dist/statements/declarations/functions.js +98 -26
  173. package/dist/statements/declarations/functions.js.map +1 -1
  174. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  175. package/dist/statements/declarations/interfaces.js +11 -1
  176. package/dist/statements/declarations/interfaces.js.map +1 -1
  177. package/dist/statements/declarations/structs.test.js +7 -5
  178. package/dist/statements/declarations/structs.test.js.map +1 -1
  179. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  180. package/dist/statements/declarations/type-aliases.js +18 -9
  181. package/dist/statements/declarations/type-aliases.js.map +1 -1
  182. package/dist/statements/declarations/variables.d.ts.map +1 -1
  183. package/dist/statements/declarations/variables.js +54 -2
  184. package/dist/statements/declarations/variables.js.map +1 -1
  185. package/dist/statements/index.test.js +164 -3
  186. package/dist/statements/index.test.js.map +1 -1
  187. package/dist/types/arrays.d.ts +10 -1
  188. package/dist/types/arrays.d.ts.map +1 -1
  189. package/dist/types/arrays.js +16 -1
  190. package/dist/types/arrays.js.map +1 -1
  191. package/dist/types/dictionaries.d.ts +3 -2
  192. package/dist/types/dictionaries.d.ts.map +1 -1
  193. package/dist/types/dictionaries.js +14 -8
  194. package/dist/types/dictionaries.js.map +1 -1
  195. package/dist/types/emitter.d.ts.map +1 -1
  196. package/dist/types/emitter.js +3 -0
  197. package/dist/types/emitter.js.map +1 -1
  198. package/dist/types/index.test.js +5 -2
  199. package/dist/types/index.test.js.map +1 -1
  200. package/dist/types/parameters.d.ts.map +1 -1
  201. package/dist/types/parameters.js +29 -0
  202. package/dist/types/parameters.js.map +1 -1
  203. package/dist/types/primitives.d.ts +12 -1
  204. package/dist/types/primitives.d.ts.map +1 -1
  205. package/dist/types/primitives.js +14 -1
  206. package/dist/types/primitives.js.map +1 -1
  207. package/dist/types/references.d.ts.map +1 -1
  208. package/dist/types/references.js +136 -30
  209. package/dist/types/references.js.map +1 -1
  210. package/dist/types/references.test.d.ts +11 -0
  211. package/dist/types/references.test.d.ts.map +1 -0
  212. package/dist/types/references.test.js +382 -0
  213. package/dist/types/references.test.js.map +1 -0
  214. package/dist/types/tuples.d.ts +23 -0
  215. package/dist/types/tuples.d.ts.map +1 -0
  216. package/dist/types/tuples.js +54 -0
  217. package/dist/types/tuples.js.map +1 -0
  218. package/dist/types/unions.test.js +62 -15
  219. package/dist/types/unions.test.js.map +1 -1
  220. package/dist/types.d.ts +1 -1
  221. package/dist/types.d.ts.map +1 -1
  222. package/dist/types.js.map +1 -1
  223. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"type-aliases.test.js","sourceRoot":"","sources":["../../src/specialization/type-aliases.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-aliases.test.js","sourceRoot":"","sources":["../../src/specialization/type-aliases.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"statement-emitter.d.ts","sourceRoot":"","sources":["../src/statement-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AA4BvD;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,WAAW,EACjB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAwEzB,CAAC;AAGF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"statement-emitter.d.ts","sourceRoot":"","sources":["../src/statement-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AA8BvD;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,WAAW,EACjB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA8EzB,CAAC;AAGF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  import { getIndent } from "./types.js";
6
6
  // Import statement emitters from specialized modules
7
7
  import { emitVariableDeclaration, emitFunctionDeclaration, emitClassDeclaration, emitInterfaceDeclaration, emitEnumDeclaration, emitTypeAliasDeclaration, } from "./statements/declarations.js";
8
- import { emitBlockStatement, emitReturnStatement, emitExpressionStatement, } from "./statements/blocks.js";
8
+ import { emitBlockStatement, emitReturnStatement, emitExpressionStatement, emitYieldStatement, emitGeneratorReturnStatement, } from "./statements/blocks.js";
9
9
  import { emitIfStatement, emitWhileStatement, emitForStatement, emitForOfStatement, emitSwitchStatement, emitTryStatement, emitThrowStatement, } from "./statements/control.js";
10
10
  /**
11
11
  * Emit a C# statement from an IR statement
@@ -55,6 +55,10 @@ export const emitStatement = (stmt, context) => {
55
55
  return [`${ind}continue;`, context];
56
56
  case "expressionStatement":
57
57
  return emitExpressionStatement(stmt, context);
58
+ case "yieldStatement":
59
+ return emitYieldStatement(stmt, context);
60
+ case "generatorReturnStatement":
61
+ return emitGeneratorReturnStatement(stmt, context);
58
62
  case "emptyStatement":
59
63
  return [`${ind};`, context];
60
64
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"statement-emitter.js","sourceRoot":"","sources":["../src/statement-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAkB,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,qDAAqD;AACrD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAiB,EACjB,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,qBAAqB;YACxB,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,kBAAkB;YACrB,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,KAAK,sBAAsB;YACzB,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,KAAK,iBAAiB;YACpB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,KAAK,sBAAsB;YACzB,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3C,KAAK,aAAa;YAChB,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAExC,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3C,iDAAiD;QACjD,2BAA2B;QAC3B,gDAAgD;QAEhD,KAAK,cAAc;YACjB,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3C,+CAA+C;QAC/C,yBAAyB;QACzB,8CAA8C;QAE9C,KAAK,iBAAiB;YACpB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,KAAK,cAAc;YACjB,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3C,KAAK,iBAAiB;YACpB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,KAAK,gBAAgB;YACnB,OAAO,CAAC,GAAG,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnC,KAAK,mBAAmB;YACtB,OAAO,CAAC,GAAG,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC;QAEtC,KAAK,qBAAqB;YACxB,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,gBAAgB;YACnB,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9B;YACE,OAAO,CAAC,GAAG,GAAG,8BAA8B,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF,+DAA+D;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"statement-emitter.js","sourceRoot":"","sources":["../src/statement-emitter.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare const emitReturnStatement: (stmt: Extract<IrStatement, {
18
18
  }>, context: EmitterContext) => [string, EmitterContext];
19
19
  /**
20
20
  * Emit yield expression as C# yield return with exchange object pattern
21
+ * (Legacy handler for IrYieldExpression - used for unidirectional generators)
21
22
  *
22
23
  * TypeScript: yield value
23
24
  * C#:
@@ -29,13 +30,50 @@ export declare const emitReturnStatement: (stmt: Extract<IrStatement, {
29
30
  * foreach (var item in OtherGenerator())
30
31
  * yield return item;
31
32
  */
32
- export declare const emitYieldStatement: (expr: Extract<IrExpression, {
33
+ export declare const emitYieldExpression: (expr: Extract<IrExpression, {
33
34
  kind: "yield";
34
35
  }>, context: EmitterContext) => [string, EmitterContext];
36
+ /**
37
+ * Emit IrYieldStatement (lowered form from yield-lowering pass)
38
+ * Handles bidirectional communication: const x = yield value;
39
+ *
40
+ * TypeScript: const x = yield value;
41
+ * C#:
42
+ * exchange.Output = value;
43
+ * yield return exchange;
44
+ * var x = exchange.Input; // or pattern destructuring
45
+ *
46
+ * TypeScript: yield value; (no receiveTarget)
47
+ * C#:
48
+ * exchange.Output = value;
49
+ * yield return exchange;
50
+ */
51
+ export declare const emitYieldStatement: (stmt: Extract<IrStatement, {
52
+ kind: "yieldStatement";
53
+ }>, context: EmitterContext) => [string, EmitterContext];
35
54
  /**
36
55
  * Emit an expression statement
37
56
  */
38
57
  export declare const emitExpressionStatement: (stmt: Extract<IrStatement, {
39
58
  kind: "expressionStatement";
40
59
  }>, context: EmitterContext) => [string, EmitterContext];
60
+ /**
61
+ * Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
62
+ * Handles return statements in generators with TReturn.
63
+ *
64
+ * TypeScript: return "done";
65
+ * C#:
66
+ * __returnValue = "done";
67
+ * yield break;
68
+ *
69
+ * TypeScript: return; (no expression)
70
+ * C#:
71
+ * yield break;
72
+ *
73
+ * The __returnValue variable is declared in the enclosing function emission.
74
+ * The wrapper's _getReturnValue closure captures this value when iteration completes.
75
+ */
76
+ export declare const emitGeneratorReturnStatement: (stmt: Extract<IrStatement, {
77
+ kind: "generatorReturnStatement";
78
+ }>, context: EmitterContext) => [string, EmitterContext];
41
79
  //# sourceMappingURL=blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAIxD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAazB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAczB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAiCzB,CAAC;AAEF;;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,CAUzB,CAAC"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAIxD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAazB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAczB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAqCzB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAwCzB,CAAC;AAyDF;;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,CAYzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAAC,EAChE,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAmBzB,CAAC"}
@@ -34,6 +34,7 @@ export const emitReturnStatement = (stmt, context) => {
34
34
  };
35
35
  /**
36
36
  * Emit yield expression as C# yield return with exchange object pattern
37
+ * (Legacy handler for IrYieldExpression - used for unidirectional generators)
37
38
  *
38
39
  * TypeScript: yield value
39
40
  * C#:
@@ -45,7 +46,7 @@ export const emitReturnStatement = (stmt, context) => {
45
46
  * foreach (var item in OtherGenerator())
46
47
  * yield return item;
47
48
  */
48
- export const emitYieldStatement = (expr, context) => {
49
+ export const emitYieldExpression = (expr, context) => {
49
50
  const ind = getIndent(context);
50
51
  let currentContext = context;
51
52
  const parts = [];
@@ -54,7 +55,11 @@ export const emitYieldStatement = (expr, context) => {
54
55
  if (expr.expression) {
55
56
  const [delegateFrag, newContext] = emitExpression(expr.expression, currentContext);
56
57
  currentContext = newContext;
57
- parts.push(`${ind}foreach (var item in ${delegateFrag.text})`);
58
+ // Use await foreach for async generators, foreach for sync
59
+ const foreachKeyword = currentContext.isAsync
60
+ ? "await foreach"
61
+ : "foreach";
62
+ parts.push(`${ind}${foreachKeyword} (var item in ${delegateFrag.text})`);
58
63
  parts.push(`${ind} yield return item;`);
59
64
  }
60
65
  }
@@ -73,16 +78,137 @@ export const emitYieldStatement = (expr, context) => {
73
78
  }
74
79
  return [parts.join("\n"), currentContext];
75
80
  };
81
+ /**
82
+ * Emit IrYieldStatement (lowered form from yield-lowering pass)
83
+ * Handles bidirectional communication: const x = yield value;
84
+ *
85
+ * TypeScript: const x = yield value;
86
+ * C#:
87
+ * exchange.Output = value;
88
+ * yield return exchange;
89
+ * var x = exchange.Input; // or pattern destructuring
90
+ *
91
+ * TypeScript: yield value; (no receiveTarget)
92
+ * C#:
93
+ * exchange.Output = value;
94
+ * yield return exchange;
95
+ */
96
+ export const emitYieldStatement = (stmt, context) => {
97
+ const ind = getIndent(context);
98
+ let currentContext = context;
99
+ const parts = [];
100
+ if (stmt.delegate) {
101
+ // yield* delegation - emit foreach pattern
102
+ if (stmt.output) {
103
+ const [delegateFrag, newContext] = emitExpression(stmt.output, currentContext);
104
+ currentContext = newContext;
105
+ // Use await foreach for async generators, foreach for sync
106
+ const foreachKeyword = currentContext.isAsync
107
+ ? "await foreach"
108
+ : "foreach";
109
+ parts.push(`${ind}${foreachKeyword} (var item in ${delegateFrag.text})`);
110
+ parts.push(`${ind} yield return item;`);
111
+ }
112
+ }
113
+ else {
114
+ // Regular yield with optional bidirectional support
115
+ if (stmt.output) {
116
+ const [valueFrag, newContext] = emitExpression(stmt.output, currentContext);
117
+ currentContext = newContext;
118
+ parts.push(`${ind}exchange.Output = ${valueFrag.text};`);
119
+ }
120
+ parts.push(`${ind}yield return exchange;`);
121
+ // Handle receiveTarget for bidirectional communication
122
+ if (stmt.receiveTarget) {
123
+ const targetCode = emitPattern(stmt.receiveTarget, "exchange.Input", ind);
124
+ parts.push(targetCode);
125
+ }
126
+ }
127
+ return [parts.join("\n"), currentContext];
128
+ };
129
+ /**
130
+ * Emit pattern for receiving yield input
131
+ * Handles identifier, array, and object patterns
132
+ * Note: Input is nullable (?), so we use null-coalescing for value types
133
+ */
134
+ const emitPattern = (pattern, inputExpr, indent) => {
135
+ if (!pattern)
136
+ return "";
137
+ switch (pattern.kind) {
138
+ case "identifierPattern":
139
+ // Use null-coalescing to handle nullable Input
140
+ // For value types (like double), use .Value or ?? default
141
+ return `${indent}var ${pattern.name} = ${inputExpr} ?? default!;`;
142
+ case "arrayPattern": {
143
+ // Array destructuring: const [a, b] = yield expr;
144
+ const parts = [];
145
+ parts.push(`${indent}var __input = ${inputExpr};`);
146
+ pattern.elements.forEach((elem, i) => {
147
+ if (elem && elem.kind === "identifierPattern") {
148
+ parts.push(`${indent}var ${elem.name} = __input[${i}];`);
149
+ }
150
+ // TODO: Handle nested patterns
151
+ });
152
+ return parts.join("\n");
153
+ }
154
+ case "objectPattern": {
155
+ // Object destructuring: const {a, b} = yield expr;
156
+ const parts = [];
157
+ parts.push(`${indent}var __input = ${inputExpr};`);
158
+ for (const prop of pattern.properties) {
159
+ if (prop.kind === "property" &&
160
+ prop.value.kind === "identifierPattern") {
161
+ const key = typeof prop.key === "string" ? prop.key : prop.value.name;
162
+ parts.push(`${indent}var ${prop.value.name} = __input.${key};`);
163
+ }
164
+ // TODO: Handle shorthand and rest patterns
165
+ }
166
+ return parts.join("\n");
167
+ }
168
+ }
169
+ };
76
170
  /**
77
171
  * Emit an expression statement
78
172
  */
79
173
  export const emitExpressionStatement = (stmt, context) => {
80
174
  const ind = getIndent(context);
81
175
  // Special handling for yield expressions in generators
176
+ // Note: After yield-lowering pass, generators will have IrYieldStatement nodes instead
177
+ // This is kept for backward compatibility with unprocessed IR
82
178
  if (stmt.expression.kind === "yield") {
83
- return emitYieldStatement(stmt.expression, context);
179
+ return emitYieldExpression(stmt.expression, context);
84
180
  }
85
181
  const [exprFrag, newContext] = emitExpression(stmt.expression, context);
86
182
  return [`${ind}${exprFrag.text};`, newContext];
87
183
  };
184
+ /**
185
+ * Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
186
+ * Handles return statements in generators with TReturn.
187
+ *
188
+ * TypeScript: return "done";
189
+ * C#:
190
+ * __returnValue = "done";
191
+ * yield break;
192
+ *
193
+ * TypeScript: return; (no expression)
194
+ * C#:
195
+ * yield break;
196
+ *
197
+ * The __returnValue variable is declared in the enclosing function emission.
198
+ * The wrapper's _getReturnValue closure captures this value when iteration completes.
199
+ */
200
+ export const emitGeneratorReturnStatement = (stmt, context) => {
201
+ const ind = getIndent(context);
202
+ let currentContext = context;
203
+ const parts = [];
204
+ if (stmt.expression) {
205
+ // Capture the return value in __returnValue before terminating
206
+ const [valueFrag, newContext] = emitExpression(stmt.expression, currentContext);
207
+ currentContext = newContext;
208
+ parts.push(`${ind}__returnValue = ${valueFrag.text};`);
209
+ }
210
+ // Terminate the iterator
211
+ parts.push(`${ind}yield break;`);
212
+ return [parts.join("\n"), currentContext];
213
+ };
88
214
  //# sourceMappingURL=blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../../../src/statements/classes/members/methods.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,aAAa,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,EACrD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoIzB,CAAC"}
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../../../src/statements/classes/members/methods.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAO3B;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,aAAa,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,EACrD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAwJzB,CAAC"}
@@ -6,6 +6,7 @@ import { emitType, emitTypeParameters } from "../../../type-emitter.js";
6
6
  import { emitBlockStatement } from "../../blocks.js";
7
7
  import { emitParameters } from "../parameters.js";
8
8
  import { escapeCSharpIdentifier } from "../../../emitter-types/index.js";
9
+ import { emitAttributes } from "../../../core/attributes.js";
9
10
  /**
10
11
  * Emit a method declaration
11
12
  */
@@ -62,9 +63,13 @@ export const emitMethodMember = (member, context) => {
62
63
  const baseBodyContext = withAsync(indent(currentContext), member.isAsync);
63
64
  if (!member.body) {
64
65
  // Abstract method without body
66
+ // Emit attributes before the method declaration
67
+ const [attributesCode, attrContext] = emitAttributes(member.attributes, currentContext);
65
68
  const signature = parts.join(" ");
66
- const code = `${ind}${signature}${typeParamsStr}(${params[0]})${whereClause};`;
67
- return [code, currentContext];
69
+ // Build final code with attributes (if any)
70
+ const attrPrefix = attributesCode ? attributesCode + "\n" : "";
71
+ const code = `${attrPrefix}${ind}${signature}${typeParamsStr}(${params[0]})${whereClause};`;
72
+ return [code, attrContext];
68
73
  }
69
74
  // Build type parameter names set for this method (includes class type params from context)
70
75
  const methodTypeParams = new Set([
@@ -72,10 +77,12 @@ export const emitMethodMember = (member, context) => {
72
77
  ...(member.typeParameters?.map((tp) => tp.name) ?? []),
73
78
  ]);
74
79
  // Emit body with scoped typeParameters and returnType
80
+ // Note: member.body is guaranteed to exist here (early return above handles undefined case)
81
+ const body = member.body;
75
82
  const [bodyCode, finalContext] = withScoped(baseBodyContext, {
76
83
  typeParameters: methodTypeParams,
77
84
  returnType: member.returnType,
78
- }, (scopedCtx) => emitBlockStatement(member.body, scopedCtx));
85
+ }, (scopedCtx) => emitBlockStatement(body, scopedCtx));
79
86
  // Collect out parameters that need initialization (escape C# keywords)
80
87
  const outParams = [];
81
88
  for (const param of member.parameters) {
@@ -107,8 +114,12 @@ export const emitMethodMember = (member, context) => {
107
114
  finalBodyCode = lines.join("\n");
108
115
  }
109
116
  }
117
+ // Emit attributes before the method declaration
118
+ const [attributesCode, attrContext] = emitAttributes(member.attributes, finalContext);
110
119
  const signature = parts.join(" ");
111
- const code = `${ind}${signature}${typeParamsStr}(${params[0]})${whereClause}\n${finalBodyCode}`;
112
- return [code, dedent(finalContext)];
120
+ // Build final code with attributes (if any)
121
+ const attrPrefix = attributesCode ? attributesCode + "\n" : "";
122
+ const code = `${attrPrefix}${ind}${signature}${typeParamsStr}(${params[0]})${whereClause}\n${finalBodyCode}`;
123
+ return [code, dedent(attrContext)];
113
124
  };
114
125
  //# sourceMappingURL=methods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../../src/statements/classes/members/methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../../src/statements/classes/members/methods.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../../src/statements/classes/members/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAK9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,GAAG;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA8CzB,CAAC"}
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../../src/statements/classes/members/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAM9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,GAAG;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA2DzB,CAAC"}
@@ -5,6 +5,7 @@ import { getIndent } from "../../../types.js";
5
5
  import { emitExpression } from "../../../expression-emitter.js";
6
6
  import { emitType } from "../../../type-emitter.js";
7
7
  import { escapeCSharpIdentifier } from "../../../emitter-types/index.js";
8
+ import { emitAttributes } from "../../../core/attributes.js";
8
9
  /**
9
10
  * Emit a property declaration
10
11
  */
@@ -22,6 +23,10 @@ export const emitPropertyMember = (member, context) => {
22
23
  if (member.isOverride) {
23
24
  parts.push("override");
24
25
  }
26
+ // Required modifier (C# 11) - must be set in object initializer
27
+ if (member.isRequired) {
28
+ parts.push("required");
29
+ }
25
30
  if (member.isReadonly) {
26
31
  parts.push("readonly");
27
32
  }
@@ -37,8 +42,12 @@ export const emitPropertyMember = (member, context) => {
37
42
  }
38
43
  // Property name (escape C# keywords)
39
44
  parts.push(escapeCSharpIdentifier(member.name));
45
+ // Emit attributes before the property declaration
46
+ const [attributesCode, attrContext] = emitAttributes(member.attributes, currentContext);
47
+ currentContext = attrContext;
40
48
  // Emit as field (TypeScript class fields map to C# fields, not properties)
41
- let code = `${ind}${parts.join(" ")}`;
49
+ const attrPrefix = attributesCode ? attributesCode + "\n" : "";
50
+ let code = `${attrPrefix}${ind}${parts.join(" ")}`;
42
51
  if (member.initializer) {
43
52
  const [initFrag, finalContext] = emitExpression(member.initializer, currentContext);
44
53
  code += ` = ${initFrag.text}`;
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../src/statements/classes/members/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAuD,EACvD,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,cAAc,GAAG,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,+DAA+D;IAC/D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,uDAAuD;IACvD,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACrE,cAAc,GAAG,UAAU,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,2EAA2E;IAC3E,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,cAAc,CAC7C,MAAM,CAAC,WAAW,EAClB,cAAc,CACf,CAAC;QACF,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,cAAc,GAAG,YAAY,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,cAAc,CAAC,CAAC;AACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../src/statements/classes/members/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAuD,EACvD,OAAuB,EACG,EAAE;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,cAAc,GAAG,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,+DAA+D;IAC/D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,gEAAgE;IAChE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,uDAAuD;IACvD,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACrE,cAAc,GAAG,UAAU,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,kDAAkD;IAClD,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,cAAc,CAClD,MAAM,CAAC,UAAU,EACjB,cAAc,CACf,CAAC;IACF,cAAc,GAAG,WAAW,CAAC;IAE7B,2EAA2E;IAC3E,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,IAAI,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,cAAc,CAC7C,MAAM,CAAC,WAAW,EAClB,cAAc,CACf,CAAC;QACF,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,cAAc,GAAG,YAAY,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,cAAc,CAAC,CAAC;AACtC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAM3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,iBAAiB,EACzB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA6EzB,CAAC"}
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAM3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,iBAAiB,EACzB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAkFzB,CAAC"}
@@ -17,6 +17,10 @@ export const emitInterfaceMemberAsProperty = (member, context) => {
17
17
  let currentContext = context;
18
18
  const parts = [];
19
19
  parts.push("public"); // All properties public
20
+ // Required modifier for non-optional properties (C# 11)
21
+ if (!member.isOptional) {
22
+ parts.push("required");
23
+ }
20
24
  // Property type
21
25
  if (member.type) {
22
26
  // If this is an inline object type, use the extracted class name
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/statements/classes/properties.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditionals.d.ts","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAiD3E;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,EACnD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAyBzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAwCzB,CAAC"}
1
+ {"version":3,"file":"conditionals.d.ts","sourceRoot":"","sources":["../../../src/statements/control/conditionals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,WAAW,EAAU,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,cAAc,EAKf,MAAM,gBAAgB,CAAC;AAqSxB;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,EACnD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAsSzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAwCzB,CAAC"}