@tsonic/emitter 0.0.63 → 0.0.65

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 (55) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/semantic/boolean-context.d.ts.map +1 -1
  3. package/dist/core/semantic/boolean-context.js +88 -26
  4. package/dist/core/semantic/boolean-context.js.map +1 -1
  5. package/dist/core/semantic/boolean-context.test.js +42 -1
  6. package/dist/core/semantic/boolean-context.test.js.map +1 -1
  7. package/dist/core/semantic/imports.d.ts.map +1 -1
  8. package/dist/core/semantic/imports.js +83 -10
  9. package/dist/core/semantic/imports.js.map +1 -1
  10. package/dist/core/semantic/imports.test.js +244 -0
  11. package/dist/core/semantic/imports.test.js.map +1 -1
  12. package/dist/emitter-types/core.d.ts +2 -0
  13. package/dist/emitter-types/core.d.ts.map +1 -1
  14. package/dist/expression-emitter.d.ts.map +1 -1
  15. package/dist/expression-emitter.js +224 -2
  16. package/dist/expression-emitter.js.map +1 -1
  17. package/dist/expressions/access.d.ts.map +1 -1
  18. package/dist/expressions/access.js +134 -1
  19. package/dist/expressions/access.js.map +1 -1
  20. package/dist/expressions/calls/call-emitter.d.ts.map +1 -1
  21. package/dist/expressions/calls/call-emitter.js +76 -0
  22. package/dist/expressions/calls/call-emitter.js.map +1 -1
  23. package/dist/expressions/collections.d.ts.map +1 -1
  24. package/dist/expressions/collections.js +17 -0
  25. package/dist/expressions/collections.js.map +1 -1
  26. package/dist/expressions/index.test.js +442 -0
  27. package/dist/expressions/index.test.js.map +1 -1
  28. package/dist/integration.test.js +3 -0
  29. package/dist/integration.test.js.map +1 -1
  30. package/dist/specialization/type-aliases.test.js +44 -0
  31. package/dist/specialization/type-aliases.test.js.map +1 -1
  32. package/dist/statements/blocks.d.ts.map +1 -1
  33. package/dist/statements/blocks.js +52 -1
  34. package/dist/statements/blocks.js.map +1 -1
  35. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  36. package/dist/statements/classes/members/methods.js +8 -3
  37. package/dist/statements/classes/members/methods.js.map +1 -1
  38. package/dist/statements/declarations/classes.d.ts.map +1 -1
  39. package/dist/statements/declarations/classes.js +43 -2
  40. package/dist/statements/declarations/classes.js.map +1 -1
  41. package/dist/statements/declarations/functions.d.ts.map +1 -1
  42. package/dist/statements/declarations/functions.js +8 -3
  43. package/dist/statements/declarations/functions.js.map +1 -1
  44. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  45. package/dist/statements/declarations/interfaces.js +21 -1
  46. package/dist/statements/declarations/interfaces.js.map +1 -1
  47. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  48. package/dist/statements/declarations/type-aliases.js +27 -0
  49. package/dist/statements/declarations/type-aliases.js.map +1 -1
  50. package/dist/statements/declarations/variables.d.ts.map +1 -1
  51. package/dist/statements/declarations/variables.js +10 -5
  52. package/dist/statements/declarations/variables.js.map +1 -1
  53. package/dist/statements/index.test.js +307 -0
  54. package/dist/statements/index.test.js.map +1 -1
  55. package/package.json +2 -2
@@ -131,6 +131,26 @@ export const emitInterfaceDeclaration = (stmt, context) => {
131
131
  continue;
132
132
  }
133
133
  }
134
+ const classLikeName = escapeCSharpIdentifier(stmt.name);
135
+ const hasRequiredMembers = members.some((m) => m.kind === "propertyDeclaration" && m.modifiers.includes("required"));
136
+ const needsSetsRequiredMembersCtor = !hasMethodSignatures && !stmt.isStruct && hasRequiredMembers;
137
+ if (needsSetsRequiredMembersCtor) {
138
+ members.unshift({
139
+ kind: "constructorDeclaration",
140
+ attributes: [
141
+ {
142
+ type: {
143
+ kind: "identifierType",
144
+ name: "global::System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute",
145
+ },
146
+ },
147
+ ],
148
+ modifiers: ["public"],
149
+ name: classLikeName,
150
+ parameters: [],
151
+ body: { kind: "blockStatement", statements: [] },
152
+ });
153
+ }
134
154
  // Determine C# declaration kind
135
155
  const mainDecl = hasMethodSignatures
136
156
  ? {
@@ -158,7 +178,7 @@ export const emitInterfaceDeclaration = (stmt, context) => {
158
178
  kind: "classDeclaration",
159
179
  attributes: [],
160
180
  modifiers,
161
- name: escapeCSharpIdentifier(stmt.name),
181
+ name: classLikeName,
162
182
  typeParameters: typeParamAsts.length > 0 ? typeParamAsts : undefined,
163
183
  interfaces,
164
184
  members,
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/statements/declarations/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAA4D,EAC5D,OAAuB,EACgC,EAAE;IACzD,MAAM,WAAW,GAAG;QAClB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CACpC,CAAC;IAEF,uCAAuC;IACvC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;QACtC,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,+CAA+C;IAC/C,IAAI,cAAc,GAAmB;QACnC,GAAG,OAAO;QACV,cAAc,EAAE,eAAe;KAChC,CAAC;IAEF,8BAA8B;IAC9B,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,cAAc,GAA+B,EAAE,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3E,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,cAAc,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE/C,kBAAkB;IAClB,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IAC3E,MAAM,aAAa,GACjB,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,SAAS,GAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,WAAW;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1C,kBAAkB;IAClB,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,sBAAsB,CAAC,GAAG,CACxB,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAChD,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,sBAAsB,CAAC,GAAG,CACxB,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CACnD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,GACrD,qBAAqB,CACnB,IAAI,CAAC,cAAc,EACnB,cAAc,EACd,sBAAsB,CACvB,CAAC;IACJ,cAAc,GAAG,gBAAgB,CAAC;IAElC,8BAA8B;IAC9B,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAClE,cAAc,GAAG,UAAU,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,iDAAiD;YACjD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,6BAA6B,CAC3D,MAAM,EACN,cAAc,CACf,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,cAAc,GAAG,UAAU,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,uBAAuB;QACvB,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;gBACvC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,OAAO,GAAkB;oBAC7B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,QAAQ;iBACf,CAAC;gBACF,OAAO,CAAC,OAAO,EAAE,cAAc,CAAU,CAAC;YAC5C,CAAC,CAAC,EAAE,CAAC;YACL,cAAc,GAAG,WAAW,CAAC;YAE7B,MAAM,OAAO,GAAkB,MAAM,CAAC,UAAU;gBAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE;gBACvD,CAAC,CAAC,WAAW,CAAC;YAEhB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC;gBACxD,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,CAAC,MAAM,CAAC,UAAU;gBAC7B,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC/C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM,QAAQ,GAAkB;oBAC9B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,MAAM;iBACb,CAAC;gBACF,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAU,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;YACL,cAAc,GAAG,iBAAiB,CAAC;YAEnC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,cAAc,CAC9C,MAAM,CAAC,UAAU,EACjB,cAAc,CACf,CAAC;YACF,cAAc,GAAG,YAAY,CAAC;YAE9B,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;gBACrD,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,QAAQ,GAA6B,mBAAmB;QAC5D,CAAC,CAAC;YACE,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,EAAE;YACd,SAAS;YACT,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,cAAc,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACpE,UAAU;YACV,OAAO;YACP,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SACpE;QACH,CAAC,CAAC,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC;gBACE,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE,EAAE;gBACd,SAAS;gBACT,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvC,cAAc,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACpE,UAAU;gBACV,OAAO;gBACP,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACpE;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,EAAE;gBACd,SAAS;gBACT,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvC,cAAc,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACpE,UAAU;gBACV,OAAO;gBACP,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACpE,CAAC;IAER,iCAAiC;IACjC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC;IAE/C,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/statements/declarations/interfaces.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,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,wCAAwC,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,wBAAwB,GAAG,IAAI,EAAE,cAAc,CA8BlD,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,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,wCAAwC,CAAC;AAUhD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EAC5D,SAAS,cAAc,KACtB,CAAC,wBAAwB,GAAG,IAAI,EAAE,cAAc,CA8BlD,CAAC"}
@@ -5,6 +5,11 @@ import { emitTypeAst, emitTypeParametersAst } from "../../type-emitter.js";
5
5
  import { escapeCSharpIdentifier } from "../../emitter-types/index.js";
6
6
  import { typeUsesPointer } from "../../core/semantic/unsafe.js";
7
7
  import { emitCSharpName } from "../../naming-policy.js";
8
+ const isNominalMarkerProperty = (name) => {
9
+ return (name === "__brand" ||
10
+ name.startsWith("__tsonic_type_") ||
11
+ name.startsWith("__tsonic_iface_"));
12
+ };
8
13
  /**
9
14
  * Emit a type alias declaration as CSharpTypeDeclarationAst | null.
10
15
  *
@@ -57,6 +62,8 @@ const emitStructuralTypeAlias = (stmt, context) => {
57
62
  for (const member of stmt.type.members) {
58
63
  if (member.kind !== "propertySignature")
59
64
  continue;
65
+ if (isNominalMarkerProperty(member.name))
66
+ continue;
60
67
  reservedTypeParamNames.add(emitCSharpName(member.name, "properties", context));
61
68
  }
62
69
  }
@@ -68,6 +75,8 @@ const emitStructuralTypeAlias = (stmt, context) => {
68
75
  for (const member of stmt.type.members) {
69
76
  if (member.kind !== "propertySignature")
70
77
  continue;
78
+ if (isNominalMarkerProperty(member.name))
79
+ continue;
71
80
  const propModifiers = ["public"];
72
81
  if (!member.isOptional) {
73
82
  propModifiers.push("required");
@@ -101,6 +110,24 @@ const emitStructuralTypeAlias = (stmt, context) => {
101
110
  });
102
111
  }
103
112
  }
113
+ const hasRequiredMembers = members.some((m) => m.kind === "propertyDeclaration" && m.modifiers.includes("required"));
114
+ if (!stmt.isStruct && hasRequiredMembers) {
115
+ members.unshift({
116
+ kind: "constructorDeclaration",
117
+ attributes: [
118
+ {
119
+ type: {
120
+ kind: "identifierType",
121
+ name: "global::System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute",
122
+ },
123
+ },
124
+ ],
125
+ modifiers: ["public"],
126
+ name: aliasName,
127
+ parameters: [],
128
+ body: { kind: "blockStatement", statements: [] },
129
+ });
130
+ }
104
131
  const declAst = stmt.isStruct
105
132
  ? {
106
133
  kind: "structDeclaration",
@@ -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,EAIL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAsB,MAAM,gBAAgB,CAAC;AAmBpE,OAAO,KAAK,EACV,kBAAkB,EAGlB,eAAe,EAEhB,MAAM,wCAAwC,CAAC;AAinBhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,eAAe,EAAE,EAAE,cAAc,CA4G7C,CAAC;AAkGF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA6EhD,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/statements/declarations/variables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAiC,MAAM,gBAAgB,CAAC;AAmB/E,OAAO,KAAK,EACV,kBAAkB,EAGlB,eAAe,EAEhB,MAAM,wCAAwC,CAAC;AAunBhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,eAAe,EAAE,EAAE,cAAc,CA4G7C,CAAC;AAkGF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA6EhD,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Variable declaration emission
3
3
  */
4
4
  import { NUMERIC_KIND_TO_CSHARP, } from "@tsonic/frontend";
5
- import { indent, withStatic } from "../../types.js";
5
+ import { indent, withAsync, withStatic } from "../../types.js";
6
6
  import { emitExpressionAst } from "../../expression-emitter.js";
7
7
  import { emitBlockStatementAst } from "../../statements/blocks.js";
8
8
  import { emitTypeAst } from "../../type-emitter.js";
@@ -15,10 +15,15 @@ import { extractCalleeNameFromAst } from "../../core/format/backend-ast/utils.js
15
15
  const getAsyncBodyReturnType = (isAsync, returnType) => {
16
16
  if (!isAsync || !returnType)
17
17
  return returnType;
18
+ const simpleName = returnType.kind === "referenceType"
19
+ ? returnType.name.includes(".")
20
+ ? returnType.name.slice(returnType.name.lastIndexOf(".") + 1)
21
+ : returnType.name
22
+ : undefined;
18
23
  if (returnType.kind === "referenceType" &&
19
- (returnType.name === "Promise" ||
20
- returnType.name === "Task" ||
21
- returnType.name === "ValueTask") &&
24
+ (simpleName === "Promise" ||
25
+ simpleName === "Task" ||
26
+ simpleName === "ValueTask") &&
22
27
  returnType.typeArguments?.length === 1) {
23
28
  return returnType.typeArguments[0];
24
29
  }
@@ -438,7 +443,7 @@ const emitStaticArrowFieldMembers = (stmt, decl, context) => {
438
443
  : undefined,
439
444
  });
440
445
  }
441
- const bodyBaseContext = seedLocalNameMapFromParameters(arrowFunc.parameters, withStatic(indent(paramCtx), false));
446
+ const bodyBaseContext = seedLocalNameMapFromParameters(arrowFunc.parameters, withAsync(withStatic(indent(paramCtx), false), arrowFunc.isAsync));
442
447
  const bodyReturnType = getAsyncBodyReturnType(arrowFunc.isAsync, arrowReturnType);
443
448
  const methodModifiers = [
444
449
  "private",
@@ -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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"}
@@ -6,6 +6,313 @@ import { describe, it } from "mocha";
6
6
  import { expect } from "chai";
7
7
  import { emitModule } from "../emitter.js";
8
8
  describe("Statement Emission", () => {
9
+ it("should auto-await async wrapper calls in async return statements", () => {
10
+ const module = {
11
+ kind: "module",
12
+ filePath: "/src/test.ts",
13
+ namespace: "MyApp",
14
+ className: "test",
15
+ isStaticContainer: true,
16
+ imports: [],
17
+ body: [
18
+ {
19
+ kind: "functionDeclaration",
20
+ name: "inner",
21
+ parameters: [],
22
+ returnType: {
23
+ kind: "referenceType",
24
+ name: "Promise",
25
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
26
+ },
27
+ body: {
28
+ kind: "blockStatement",
29
+ statements: [
30
+ {
31
+ kind: "returnStatement",
32
+ expression: { kind: "literal", value: "ok" },
33
+ },
34
+ ],
35
+ },
36
+ isExported: false,
37
+ isAsync: true,
38
+ isGenerator: false,
39
+ },
40
+ {
41
+ kind: "functionDeclaration",
42
+ name: "outer",
43
+ parameters: [],
44
+ returnType: {
45
+ kind: "referenceType",
46
+ name: "Promise",
47
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
48
+ },
49
+ body: {
50
+ kind: "blockStatement",
51
+ statements: [
52
+ {
53
+ kind: "returnStatement",
54
+ expression: {
55
+ kind: "call",
56
+ callee: { kind: "identifier", name: "inner" },
57
+ arguments: [],
58
+ isOptional: false,
59
+ inferredType: {
60
+ kind: "referenceType",
61
+ name: "Promise",
62
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
63
+ },
64
+ },
65
+ },
66
+ ],
67
+ },
68
+ isExported: true,
69
+ isAsync: true,
70
+ isGenerator: false,
71
+ },
72
+ ],
73
+ exports: [],
74
+ };
75
+ const result = emitModule(module);
76
+ expect(result).to.include("return await inner();");
77
+ });
78
+ it("should auto-await async calls when wrapper type exists on callee only", () => {
79
+ const module = {
80
+ kind: "module",
81
+ filePath: "/src/test.ts",
82
+ namespace: "MyApp",
83
+ className: "test",
84
+ isStaticContainer: true,
85
+ imports: [],
86
+ body: [
87
+ {
88
+ kind: "functionDeclaration",
89
+ name: "outer",
90
+ parameters: [],
91
+ returnType: {
92
+ kind: "referenceType",
93
+ name: "Promise",
94
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
95
+ },
96
+ body: {
97
+ kind: "blockStatement",
98
+ statements: [
99
+ {
100
+ kind: "returnStatement",
101
+ expression: {
102
+ kind: "call",
103
+ callee: {
104
+ kind: "identifier",
105
+ name: "fromModule",
106
+ inferredType: {
107
+ kind: "functionType",
108
+ parameters: [],
109
+ returnType: {
110
+ kind: "referenceType",
111
+ name: "Promise",
112
+ typeArguments: [
113
+ { kind: "primitiveType", name: "string" },
114
+ ],
115
+ },
116
+ },
117
+ },
118
+ arguments: [],
119
+ isOptional: false,
120
+ inferredType: { kind: "primitiveType", name: "string" },
121
+ },
122
+ },
123
+ ],
124
+ },
125
+ isExported: true,
126
+ isAsync: true,
127
+ isGenerator: false,
128
+ },
129
+ ],
130
+ exports: [],
131
+ };
132
+ const result = emitModule(module);
133
+ expect(result).to.include("return await fromModule();");
134
+ });
135
+ it("unwraps fully-qualified Task<T> body return type for async methods", () => {
136
+ const module = {
137
+ kind: "module",
138
+ filePath: "/src/test.ts",
139
+ namespace: "MyApp",
140
+ className: "test",
141
+ isStaticContainer: true,
142
+ imports: [],
143
+ body: [
144
+ {
145
+ kind: "functionDeclaration",
146
+ name: "outer",
147
+ parameters: [],
148
+ returnType: {
149
+ kind: "referenceType",
150
+ name: "System.Threading.Tasks.Task",
151
+ resolvedClrType: "global::System.Threading.Tasks.Task",
152
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
153
+ },
154
+ body: {
155
+ kind: "blockStatement",
156
+ statements: [
157
+ {
158
+ kind: "returnStatement",
159
+ expression: {
160
+ kind: "call",
161
+ callee: { kind: "identifier", name: "fromModule" },
162
+ arguments: [],
163
+ isOptional: false,
164
+ inferredType: {
165
+ kind: "referenceType",
166
+ name: "System.Threading.Tasks.Task",
167
+ resolvedClrType: "global::System.Threading.Tasks.Task",
168
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
169
+ },
170
+ },
171
+ },
172
+ ],
173
+ },
174
+ isExported: true,
175
+ isAsync: true,
176
+ isGenerator: false,
177
+ },
178
+ ],
179
+ exports: [],
180
+ };
181
+ const result = emitModule(module);
182
+ expect(result).to.include("return await fromModule();");
183
+ });
184
+ it("propagates async context into exported async arrow-field impl methods", () => {
185
+ const module = {
186
+ kind: "module",
187
+ filePath: "/src/test.ts",
188
+ namespace: "MyApp",
189
+ className: "test",
190
+ isStaticContainer: true,
191
+ imports: [],
192
+ body: [
193
+ {
194
+ kind: "variableDeclaration",
195
+ declarationKind: "const",
196
+ isExported: true,
197
+ declarations: [
198
+ {
199
+ kind: "variableDeclarator",
200
+ name: { kind: "identifierPattern", name: "outer" },
201
+ type: {
202
+ kind: "functionType",
203
+ parameters: [],
204
+ returnType: {
205
+ kind: "referenceType",
206
+ name: "Promise",
207
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
208
+ },
209
+ },
210
+ initializer: {
211
+ kind: "arrowFunction",
212
+ parameters: [],
213
+ returnType: {
214
+ kind: "referenceType",
215
+ name: "Promise",
216
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
217
+ },
218
+ body: {
219
+ kind: "blockStatement",
220
+ statements: [
221
+ {
222
+ kind: "returnStatement",
223
+ expression: {
224
+ kind: "call",
225
+ callee: { kind: "identifier", name: "fromModule" },
226
+ arguments: [],
227
+ isOptional: false,
228
+ inferredType: {
229
+ kind: "referenceType",
230
+ name: "Promise",
231
+ typeArguments: [
232
+ { kind: "primitiveType", name: "string" },
233
+ ],
234
+ },
235
+ },
236
+ },
237
+ ],
238
+ },
239
+ isAsync: true,
240
+ inferredType: {
241
+ kind: "functionType",
242
+ parameters: [],
243
+ returnType: {
244
+ kind: "referenceType",
245
+ name: "Promise",
246
+ typeArguments: [{ kind: "primitiveType", name: "string" }],
247
+ },
248
+ },
249
+ },
250
+ },
251
+ ],
252
+ },
253
+ ],
254
+ exports: [],
255
+ };
256
+ const result = emitModule(module);
257
+ expect(result).to.include("return await fromModule();");
258
+ });
259
+ it("does not auto-await non-awaitable async return expressions", () => {
260
+ const module = {
261
+ kind: "module",
262
+ filePath: "/src/test.ts",
263
+ namespace: "MyApp",
264
+ className: "test",
265
+ isStaticContainer: true,
266
+ imports: [],
267
+ body: [
268
+ {
269
+ kind: "functionDeclaration",
270
+ name: "makeMap",
271
+ parameters: [],
272
+ returnType: {
273
+ kind: "referenceType",
274
+ name: "Promise",
275
+ typeArguments: [
276
+ {
277
+ kind: "dictionaryType",
278
+ keyType: { kind: "primitiveType", name: "string" },
279
+ valueType: { kind: "referenceType", name: "int" },
280
+ },
281
+ ],
282
+ },
283
+ body: {
284
+ kind: "blockStatement",
285
+ statements: [
286
+ {
287
+ kind: "returnStatement",
288
+ expression: {
289
+ kind: "object",
290
+ properties: [],
291
+ inferredType: {
292
+ kind: "dictionaryType",
293
+ keyType: { kind: "primitiveType", name: "string" },
294
+ valueType: { kind: "referenceType", name: "int" },
295
+ },
296
+ contextualType: {
297
+ kind: "dictionaryType",
298
+ keyType: { kind: "primitiveType", name: "string" },
299
+ valueType: { kind: "referenceType", name: "int" },
300
+ },
301
+ },
302
+ },
303
+ ],
304
+ },
305
+ isExported: true,
306
+ isAsync: true,
307
+ isGenerator: false,
308
+ },
309
+ ],
310
+ exports: [],
311
+ };
312
+ const result = emitModule(module);
313
+ expect(result).to.include("return new global::System.Collections.Generic.Dictionary<string, int>();");
314
+ expect(result).not.to.include("return await new");
315
+ });
9
316
  it("should emit if statements", () => {
10
317
  const module = {
11
318
  kind: "module",