@typespec/compiler 1.17.0-dev.0 → 1.17.0-dev.5

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 (77) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/binder.d.ts.map +1 -1
  3. package/dist/src/core/binder.js +33 -0
  4. package/dist/src/core/binder.js.map +1 -1
  5. package/dist/src/core/checker.d.ts.map +1 -1
  6. package/dist/src/core/checker.js +147 -50
  7. package/dist/src/core/checker.js.map +1 -1
  8. package/dist/src/core/features.d.ts +3 -0
  9. package/dist/src/core/features.d.ts.map +1 -1
  10. package/dist/src/core/features.js +3 -0
  11. package/dist/src/core/features.js.map +1 -1
  12. package/dist/src/core/helpers/type-name-utils.js +19 -3
  13. package/dist/src/core/helpers/type-name-utils.js.map +1 -1
  14. package/dist/src/core/inspector/node.js +6 -1
  15. package/dist/src/core/inspector/node.js.map +1 -1
  16. package/dist/src/core/messages.d.ts +38 -2
  17. package/dist/src/core/messages.d.ts.map +1 -1
  18. package/dist/src/core/messages.js +12 -0
  19. package/dist/src/core/messages.js.map +1 -1
  20. package/dist/src/core/modifiers.d.ts +9 -2
  21. package/dist/src/core/modifiers.d.ts.map +1 -1
  22. package/dist/src/core/modifiers.js +8 -0
  23. package/dist/src/core/modifiers.js.map +1 -1
  24. package/dist/src/core/name-resolver.d.ts.map +1 -1
  25. package/dist/src/core/name-resolver.js +22 -3
  26. package/dist/src/core/name-resolver.js.map +1 -1
  27. package/dist/src/core/parser.d.ts.map +1 -1
  28. package/dist/src/core/parser.js +257 -23
  29. package/dist/src/core/parser.js.map +1 -1
  30. package/dist/src/core/scanner.d.ts +5 -0
  31. package/dist/src/core/scanner.d.ts.map +1 -1
  32. package/dist/src/core/scanner.js +10 -0
  33. package/dist/src/core/scanner.js.map +1 -1
  34. package/dist/src/core/type-utils.d.ts.map +1 -1
  35. package/dist/src/core/type-utils.js +3 -0
  36. package/dist/src/core/type-utils.js.map +1 -1
  37. package/dist/src/core/types.d.ts +109 -13
  38. package/dist/src/core/types.d.ts.map +1 -1
  39. package/dist/src/core/types.js +4 -0
  40. package/dist/src/core/types.js.map +1 -1
  41. package/dist/src/formatter/print/comment-handler.js +11 -1
  42. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  43. package/dist/src/formatter/print/printer.d.ts +2 -2
  44. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  45. package/dist/src/formatter/print/printer.js +106 -15
  46. package/dist/src/formatter/print/printer.js.map +1 -1
  47. package/dist/src/server/classify.d.ts.map +1 -1
  48. package/dist/src/server/classify.js +12 -4
  49. package/dist/src/server/classify.js.map +1 -1
  50. package/dist/src/server/completion.js +14 -1
  51. package/dist/src/server/completion.js.map +1 -1
  52. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  53. package/dist/src/server/tmlanguage.js +69 -1
  54. package/dist/src/server/tmlanguage.js.map +1 -1
  55. package/dist/src/server/type-signature.js +4 -1
  56. package/dist/src/server/type-signature.js.map +1 -1
  57. package/dist/src/testing/tester.d.ts +11 -0
  58. package/dist/src/testing/tester.d.ts.map +1 -1
  59. package/dist/src/testing/tester.js +28 -3
  60. package/dist/src/testing/tester.js.map +1 -1
  61. package/dist/src/typekit/kits/enum.d.ts +14 -1
  62. package/dist/src/typekit/kits/enum.d.ts.map +1 -1
  63. package/dist/src/typekit/kits/enum.js +2 -1
  64. package/dist/src/typekit/kits/enum.js.map +1 -1
  65. package/dist/src/typekit/kits/model.d.ts +12 -1
  66. package/dist/src/typekit/kits/model.d.ts.map +1 -1
  67. package/dist/src/typekit/kits/model.js +3 -2
  68. package/dist/src/typekit/kits/model.js.map +1 -1
  69. package/dist/src/typekit/kits/union.d.ts +12 -1
  70. package/dist/src/typekit/kits/union.d.ts.map +1 -1
  71. package/dist/src/typekit/kits/union.js +3 -3
  72. package/dist/src/typekit/kits/union.js.map +1 -1
  73. package/dist/src/typekit/utils.d.ts.map +1 -1
  74. package/dist/src/typekit/utils.js +17 -0
  75. package/dist/src/typekit/utils.js.map +1 -1
  76. package/dist/typespec.tmLanguage +209 -37
  77. package/package.json +1 -1
package/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "1.17.0-dev.0",
3
- "commit": "54d93a99737da023ed2cf8479b9573f73683b84d"
2
+ "version": "1.17.0-dev.5",
3
+ "commit": "8e16f8cfffd431f2a04647f8f98bbc98e8f6fcd0"
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../src/core/binder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAeV,gBAAgB,EAMhB,IAAI,EAKJ,GAAG,EACH,WAAW,EAEX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA4B,WAAW,EAAc,MAAM,YAAY,CAAC;AAK/E,QAAA,MAAM,WAAW;kBAGM,WAAW;;QAOhC,wCAAwC;wBACxB,WAAW,cAAc,GAAG;iBAUnC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;CAkB5B,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAKtD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAEnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAkjBrD;AAsBD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,GAAG,GACV,GAAG,CA0BL;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAEzC"}
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../src/core/binder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAgBV,gBAAgB,EAOhB,IAAI,EAMJ,GAAG,EACH,WAAW,EAEX,kBAAkB,EAKnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA4B,WAAW,EAAc,MAAM,YAAY,CAAC;AAK/E,QAAA,MAAM,WAAW;kBAGM,WAAW;;QAOhC,wCAAwC;wBACxB,WAAW,cAAc,GAAG;iBAUnC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;CAkB5B,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAKtD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAEnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAmlBrD;AA0BD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,GAAG,GACV,GAAG,CA0BL;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAEzC"}
@@ -218,6 +218,9 @@ export function createBinder(program) {
218
218
  case SyntaxKind.ModelStatement:
219
219
  bindModelStatement(node);
220
220
  break;
221
+ case SyntaxKind.ModelDeclarationExpression:
222
+ bindModelDeclarationExpression(node);
223
+ break;
221
224
  case SyntaxKind.ModelExpression:
222
225
  bindModelExpression(node);
223
226
  break;
@@ -230,6 +233,9 @@ export function createBinder(program) {
230
233
  case SyntaxKind.ScalarStatement:
231
234
  bindScalarStatement(node);
232
235
  break;
236
+ case SyntaxKind.ScalarDeclarationExpression:
237
+ bindScalarDeclarationExpression(node);
238
+ break;
233
239
  case SyntaxKind.ScalarConstructor:
234
240
  bindScalarConstructor(node);
235
241
  break;
@@ -239,6 +245,9 @@ export function createBinder(program) {
239
245
  case SyntaxKind.UnionStatement:
240
246
  bindUnionStatement(node);
241
247
  break;
248
+ case SyntaxKind.UnionDeclarationExpression:
249
+ bindUnionDeclarationExpression(node);
250
+ break;
242
251
  case SyntaxKind.AliasStatement:
243
252
  bindAliasStatement(node);
244
253
  break;
@@ -248,6 +257,9 @@ export function createBinder(program) {
248
257
  case SyntaxKind.EnumStatement:
249
258
  bindEnumStatement(node);
250
259
  break;
260
+ case SyntaxKind.EnumDeclarationExpression:
261
+ bindEnumDeclarationExpression(node);
262
+ break;
251
263
  case SyntaxKind.EnumMember:
252
264
  bindEnumMember(node);
253
265
  break;
@@ -308,6 +320,11 @@ export function createBinder(program) {
308
320
  // Initialize locals for type parameters
309
321
  mutate(node).locals = new SymbolTable();
310
322
  }
323
+ function bindModelDeclarationExpression(node) {
324
+ bindSymbol(node, SymbolFlags.Model);
325
+ // Initialize locals for type parameters
326
+ mutate(node).locals = new SymbolTable();
327
+ }
311
328
  function bindModelExpression(node) {
312
329
  bindSymbol(node, SymbolFlags.Model);
313
330
  }
@@ -323,6 +340,11 @@ export function createBinder(program) {
323
340
  // Initialize locals for type parameters
324
341
  mutate(node).locals = new SymbolTable();
325
342
  }
343
+ function bindScalarDeclarationExpression(node) {
344
+ bindSymbol(node, SymbolFlags.Scalar);
345
+ // Initialize locals for type parameters
346
+ mutate(node).locals = new SymbolTable();
347
+ }
326
348
  function bindScalarConstructor(node) {
327
349
  declareMember(node, SymbolFlags.Member, node.id.sv);
328
350
  }
@@ -336,6 +358,10 @@ export function createBinder(program) {
336
358
  declareSymbol(node, SymbolFlags.Union | SymbolFlags.Declaration | internal);
337
359
  mutate(node).locals = new SymbolTable();
338
360
  }
361
+ function bindUnionDeclarationExpression(node) {
362
+ bindSymbol(node, SymbolFlags.Union);
363
+ mutate(node).locals = new SymbolTable();
364
+ }
339
365
  function bindAliasStatement(node) {
340
366
  const internal = node.modifierFlags & ModifierFlags.Internal ? SymbolFlags.Internal : SymbolFlags.None;
341
367
  declareSymbol(node, SymbolFlags.Alias | SymbolFlags.Declaration | internal);
@@ -350,6 +376,9 @@ export function createBinder(program) {
350
376
  const internal = node.modifierFlags & ModifierFlags.Internal ? SymbolFlags.Internal : SymbolFlags.None;
351
377
  declareSymbol(node, SymbolFlags.Enum | SymbolFlags.Declaration | internal);
352
378
  }
379
+ function bindEnumDeclarationExpression(node) {
380
+ bindSymbol(node, SymbolFlags.Enum);
381
+ }
353
382
  function bindEnumMember(node) {
354
383
  declareMember(node, SymbolFlags.Member, node.id.sv);
355
384
  }
@@ -492,15 +521,19 @@ export function createBinder(program) {
492
521
  function hasScope(node) {
493
522
  switch (node.kind) {
494
523
  case SyntaxKind.ModelStatement:
524
+ case SyntaxKind.ModelDeclarationExpression:
495
525
  case SyntaxKind.ModelExpression:
496
526
  case SyntaxKind.ScalarStatement:
527
+ case SyntaxKind.ScalarDeclarationExpression:
497
528
  case SyntaxKind.ConstStatement:
498
529
  case SyntaxKind.AliasStatement:
499
530
  case SyntaxKind.TypeSpecScript:
500
531
  case SyntaxKind.InterfaceStatement:
501
532
  case SyntaxKind.OperationStatement:
502
533
  case SyntaxKind.UnionStatement:
534
+ case SyntaxKind.UnionDeclarationExpression:
503
535
  case SyntaxKind.EnumStatement:
536
+ case SyntaxKind.EnumDeclarationExpression:
504
537
  return true;
505
538
  case SyntaxKind.NamespaceStatement:
506
539
  return node.statements !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../../src/core/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoC5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/E,+EAA+E;AAC/E,gCAAgC;AAChC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,MAAM,WAAW,GAAG,KAAM,SAAQ,GAAgB;IAChD,UAAU,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEtC,YAAY,MAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,MAAmB,EAAE,SAAe;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,GAAW,EAAE,KAAU;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,cAAc,CAAC;YACvD,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAWF,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,IAAI,WAA+B,CAAC;IACpC,IAAI,UAA4B,CAAC;IACjC,IAAI,aAAiD,CAAC;IACtD,IAAI,KAAgB,CAAC;IAErB,OAAO;QACL,cAAc;QACd,gBAAgB;QAChB,QAAQ;KACT,CAAC;IAEF,SAAS,cAAc,CAAC,IAAY;QAClC,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,eAAe,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,gBAAgB,CAAC,UAA4B;QACpD,oEAAoE;QACpE,IAAK,UAAU,CAAC,MAAc,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,aAAa,GAAG,SAAS,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,YAAY,CACtC,UAAU,EACV,UAAU,CAAC,IAAI,CAAC,IAAI,EACpB,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,WAAW,CACjD,CAAC;QACF,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAElD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,IAAI,IAAY,CAAC;YACjB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,MAAa,CAAC;gBACxC,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBACjC,MAAM,KAAK,GAA6B,MAAa,CAAC;gBACtD,KAAK,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,KAAK,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBACpE,0BAA0B,CACxB,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EACpD,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,CACX,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBAChC,MAAM,KAAK,GAA4B,MAAa,CAAC;gBACrD,KAAK,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/D,KAAK,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3D,0BAA0B,CACxB,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EACpD,UAAU,EACV,YAAY,EACZ,EAAE,EACF,UAAU,CACX,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,+EAA+E;gBAC/E,0CAA0C;gBAC1C,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC1B,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBACxD,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,KAAK,SAAS;4BACxB,CAAC,CAAC,OAAO,CAAC,QAAQ;4BAClB,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,EAAiC,CAAC;wBACvD,OAAO,CAAC,UAAU,CAAC,MAAa,EAAE,QAAQ,CAAC,CAAC;wBAC5C,SAAS;oBACX,CAAC;yBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;wBACtC,2EAA2E;wBAC3E,iFAAiF;wBACjF,sEAAsE;wBACtE,IAAI,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC;4BACxE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;4BACxD,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,KAAK,SAAS;gCACxB,CAAC,CAAC,OAAO,CAAC,QAAQ;gCAClB,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,EAAiC,CAAC;4BACvD,OAAO,CAAC,wBAAwB,CAAC,MAAa,EAAE,QAAQ,CAAC,CAAC;wBAC5D,CAAC;wBACD,SAAS;oBACX,CAAC;yBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,gDAAgD;wBAChD,SAAS;oBACX,CAAC;oBACD,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC9D,0BAA0B,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAa,EAAE,UAAU,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,0BAA0B,CACjC,OAAiB,EACjB,IAA8B,EAC9B,IAAY,EACZ,EAA2B,EAC3B,UAA4B;QAE5B,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC;QAExC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,eAAe,CAAC,OAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,eAAe,GAA+B;gBAClD,IAAI,EAAE,UAAU,CAAC,sBAAsB;gBACvC,EAAE,EAAE;oBACF,IAAI,EAAE,UAAU,CAAC,UAAU;oBAC3B,EAAE,EAAE,IAAI;oBACR,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,SAAS,CAAC,IAAI;oBACrB,MAAM,EAAE,SAAU;iBACnB;gBACD,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,SAAS,CAAC,IAAI;gBACrB,MAAM,EAAE,SAAU;gBAClB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,aAAa,CAAC,IAAI;aAClC,CAAC;YACF,MAAM,GAAG,GAAG,YAAY,CACtB,eAAe,EACf,IAAI,EACJ,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,EAC/C,eAAe,CAChB,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;YACrC,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClD,kEAAkE;oBAClE,2BAA2B;oBAC3B,eAAe,GAAG,eAAe,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAChD,eAAe,GAAG,GAAG,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,qBAAqB,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7F,GAAG,GAAG,YAAY,CAChB,UAAU,EACV,GAAG,GAAG,IAAI,EACV,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,cAAc,EAC5E,eAAe,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1F,GAAG,GAAG,YAAY,CAChB,UAAU,EACV,IAAI,EACJ,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,cAAc,EAC3E,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,6BAA6B,CAAC,MAA0B,EAAE,MAAW;QAC5E,MAAM,QAAQ,GAAW,MAAM,CAAC,SAAS,CAAC;QAC1C,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,cAAc,CAAC,MAA0B;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpD,aAAa,GAAG,SAAS,CAAC;QAC1B,WAAW,GAAG,MAAM,CAAC;QACrB,KAAK,GAAG,MAAM,CAAC;QACf,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,QAAQ,CAAC,IAAU;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,4DAA4D;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;QAEjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,UAAU,CAAC,cAAc;gBAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU,CAAC,eAAe;gBAC7B,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,UAAU,CAAC,aAAa;gBAC3B,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,UAAU,CAAC,sBAAsB;gBACpC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,UAAU,CAAC,eAAe;gBAC7B,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,UAAU,CAAC,iBAAiB;gBAC/B,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,UAAU,CAAC,kBAAkB;gBAChC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,UAAU,CAAC,cAAc;gBAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU,CAAC,cAAc;gBAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU,CAAC,cAAc;gBAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU,CAAC,aAAa;gBAC3B,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,UAAU,CAAC,UAAU;gBACxB,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,UAAU,CAAC,YAAY;gBAC1B,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,UAAU,CAAC,kBAAkB;gBAChC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,UAAU,CAAC,kBAAkB;gBAChC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,UAAU,CAAC,4BAA4B;gBAC1C,gCAAgC,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,UAAU,CAAC,cAAc;gBAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU,CAAC,6BAA6B;gBAC3C,iCAAiC,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,UAAU,CAAC,4BAA4B;gBAC1C,gCAAgC,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,UAAU,CAAC,iBAAiB;gBAC/B,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM;QACV,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC;QAC9B,6CAA6C;QAC7C,UAAU,GAAG,IAAI,CAAC;QAElB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC;YAEb,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE9B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,cAAc,IAAI,aAAa,EAAE,CAAC;gBACnE,KAAK,GAAG,aAAa,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,sBAAsB;QACtB,UAAU,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,SAAS,gCAAgC,CAAC,IAAsC;QAC9E,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAwB;QAClD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAExF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC5E,wCAAwC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAyB;QACpD,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAuB;QAChD,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,0BAA0B,CAAC,IAAgC;QAClE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAyB;QACpD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC7E,wCAAwC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,qBAAqB,CAAC,IAA2B;QACxD,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,sBAAsB,CAAC,IAA4B;QAC1D,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAwB;QAClD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAwB;QAClD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC5E,wCAAwC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAwB;QAClD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAuB;QAChD,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,cAAc,CAAC,IAAoB;QAC1C,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,SAAS,gBAAgB,CAAC,IAAsB;QAC9C,sDAAsD;QACtD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,SAAS,sBAAsB,CAAC,SAAiC;QAC/D,MAAM,cAAc,GAAG,KAAK,CAAC;QAC7B,yDAAyD;QACzD,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,OAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YACrE,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC;YAC3C,2BAA2B;YAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC/C,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC;QAED,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,aAAa,GAAG,SAAS,CAAC;YAC1B,KAAK,GAAG,SAAS,CAAC;YAClB,IAAI,OAAO,GAAgD,SAAS,CAAC;YACrE,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACjD,WAAW,CAAC,iBAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1E,OAAO,GAAG,OAAO,CAAC,MAAO,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,SAA6B;QACvD,kGAAkG;QAClG,+GAA+G;QAC/G,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc;YAC9B,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,sBAAsB,CAAC,SAAiC;QAC/D,MAAM,QAAQ,GACZ,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACjD,aAAa,CACX,SAAS,EACT,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,EAC/E,SAAS,CAAC,EAAE,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACjD,CAAC;IAED,SAAS,iCAAiC,CAAC,IAAuC;QAChF,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CACX,IAAI,EACJ,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,EAC1D,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,SAAS,gCAAgC,CAAC,IAAsC;QAC9E,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED,SAAS,qBAAqB,CAAC,IAA2B;QACxD,MAAM,MAAM,GAAG,YAAY,CACzB,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,EAAE,EACV,WAAW,CAAC,iBAAiB,GAAG,WAAW,CAAC,WAAW,EACvD,KAAK,CAAC,MAAM,CACb,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,SAAS,aAAa,CACpB,IAAoD,EACpD,KAAkB,EAClB,IAAa;QAEb,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,gCAAgC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9F,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,UAAU,CAAC,kBAAkB;gBAChC,OAAO,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,KAAK,UAAU,CAAC,cAAc,CAAC;YAC/B,KAAK,UAAU,CAAC,YAAY;gBAC1B,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD;gBACE,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IAED,SAAS,UAAU,CAAC,IAAU,EAAE,KAAkB;QAChD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,sBAAsB,CAC7B,IAAoD,EACpD,KAAkB,EAClB,IAAa;QAEb,IACE,KAAK,GAAG,WAAW,CAAC,SAAS;YAC7B,0BAA0B,CAAC,IAA8B,EAAE,KAAK,CAAC,EACjE,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,mBAAmB,CAC1B,IAAoD,EACpD,KAAkB,EAClB,IAAa;QAEb,MAAM,cAAc,GAAG,KAAK,CAAC;QAC7B,IACE,KAAK,GAAG,WAAW,CAAC,SAAS;YAC7B,0BAA0B,CAAC,IAA8B,EAAE,cAAc,CAAC,EAC1E,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,SAAS,aAAa,CACpB,IAKyB,EACzB,KAAkB,EAClB,IAAY;QAEZ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,0BAA0B,CAAC,IAA4B,EAAE,KAAgB;QAChF,iFAAiF;QACjF,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,OAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YACrE,0EAA0E;YAC1E,MAAM,CAAC,eAAgB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU;IAC1B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,UAAU,CAAC,eAAe,CAAC;QAChC,KAAK,UAAU,CAAC,eAAe,CAAC;QAChC,KAAK,UAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,UAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,UAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,UAAU,CAAC,aAAa;YAC3B,OAAO,IAAI,CAAC;QACd,KAAK,UAAU,CAAC,kBAAkB;YAChC,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;QACvC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAsB,EACtB,IAAY,EACZ,KAAkB,EAClB,MAAY,EACZ,KAAW;IAEX,IAAI,OAAgC,CAAC;IACrC,IAAI,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,OAAgC,CAAC;IACrC,IAAI,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAChC,CAAC;IAED,cAAc,CACZ,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,SAAS,EACxD,0BAA0B,CAC3B,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5D,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,SAAiB;QACpE,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,eAAe,EAAE,iBAAiB,EAAE;KACrC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../../src/core/binder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
@@ -558,20 +558,28 @@ export function createChecker(program, resolver) {
558
558
  return checkModel(ctx, node);
559
559
  case SyntaxKind.ModelStatement:
560
560
  return checkModel(ctx, node);
561
+ case SyntaxKind.ModelDeclarationExpression:
562
+ return checkModel(ctx, node);
561
563
  case SyntaxKind.ModelProperty:
562
564
  return checkModelProperty(ctx, node);
563
565
  case SyntaxKind.ScalarStatement:
564
566
  return checkScalar(ctx, node);
567
+ case SyntaxKind.ScalarDeclarationExpression:
568
+ return checkScalar(ctx, node);
565
569
  case SyntaxKind.AliasStatement:
566
570
  return checkAlias(ctx, node);
567
571
  case SyntaxKind.EnumStatement:
568
572
  return checkEnum(ctx, node);
573
+ case SyntaxKind.EnumDeclarationExpression:
574
+ return checkEnum(ctx, node);
569
575
  case SyntaxKind.EnumMember:
570
576
  return checkEnumMember(ctx, node);
571
577
  case SyntaxKind.InterfaceStatement:
572
578
  return checkInterface(ctx, node);
573
579
  case SyntaxKind.UnionStatement:
574
580
  return checkUnion(ctx, node);
581
+ case SyntaxKind.UnionDeclarationExpression:
582
+ return checkUnion(ctx, node);
575
583
  case SyntaxKind.UnionVariant:
576
584
  return checkUnionVariant(ctx, node);
577
585
  case SyntaxKind.NamespaceStatement:
@@ -631,6 +639,21 @@ export function createChecker(program, resolver) {
631
639
  return errorType;
632
640
  }
633
641
  }
642
+ function reportDeclarationExpressionFeature(node) {
643
+ const isExpression = node.kind === SyntaxKind.ModelDeclarationExpression ||
644
+ node.kind === SyntaxKind.ScalarDeclarationExpression ||
645
+ node.kind === SyntaxKind.EnumDeclarationExpression ||
646
+ node.kind === SyntaxKind.UnionDeclarationExpression;
647
+ if (!isExpression) {
648
+ return;
649
+ }
650
+ if (!isCompilerFeatureEnabled(program, "declaration-expressions", node)) {
651
+ reportCheckerDiagnostic(createDiagnostic({
652
+ code: "declaration-expression-disabled",
653
+ target: node,
654
+ }));
655
+ }
656
+ }
634
657
  /**
635
658
  * Return a fully qualified id of node
636
659
  */
@@ -673,7 +696,7 @@ export function createChecker(program, resolver) {
673
696
  let type = links.declaredType;
674
697
  if (type === undefined) {
675
698
  if (grandParentNode) {
676
- if (grandParentNode.locals?.has(node.id.sv)) {
699
+ if ("locals" in grandParentNode && grandParentNode.locals?.has(node.id.sv)) {
677
700
  reportCheckerDiagnostic(createDiagnostic({
678
701
  code: "shadow",
679
702
  format: { name: node.id.sv },
@@ -1295,7 +1318,12 @@ export function createChecker(program, resolver) {
1295
1318
  if (type === neverType) {
1296
1319
  continue;
1297
1320
  }
1298
- if (type.kind === "Union" && type.expression) {
1321
+ // Flatten nested union expressions (e.g. `(a | b) | c` or an alias to a union
1322
+ // expression). Only the `|`-operator form is flattened: its variants are
1323
+ // anonymous (symbol-keyed) and cannot collide. Keyword-form unions used in
1324
+ // expression position (`union { a, b }`) are also `expression: true` but can have
1325
+ // named variants, so flattening them would silently drop colliding members.
1326
+ if (type.kind === "Union" && type.node?.kind === SyntaxKind.UnionExpression) {
1299
1327
  for (const [name, variant] of type.variants) {
1300
1328
  unionType.variants.set(name, variant);
1301
1329
  }
@@ -1673,7 +1701,11 @@ export function createChecker(program, resolver) {
1673
1701
  return undefined;
1674
1702
  if (node.kind === SyntaxKind.ModelExpression ||
1675
1703
  node.kind === SyntaxKind.IntersectionExpression ||
1676
- node.kind === SyntaxKind.UnionExpression) {
1704
+ node.kind === SyntaxKind.UnionExpression ||
1705
+ node.kind === SyntaxKind.ModelDeclarationExpression ||
1706
+ node.kind === SyntaxKind.EnumDeclarationExpression ||
1707
+ node.kind === SyntaxKind.UnionDeclarationExpression ||
1708
+ node.kind === SyntaxKind.ScalarDeclarationExpression) {
1677
1709
  let parent = node.parent;
1678
1710
  while (parent !== undefined) {
1679
1711
  if (parent.kind === SyntaxKind.AliasStatement ||
@@ -3223,15 +3255,18 @@ export function createChecker(program, resolver) {
3223
3255
  function getMemberKindName(node) {
3224
3256
  switch (node.kind) {
3225
3257
  case SyntaxKind.ModelStatement:
3258
+ case SyntaxKind.ModelDeclarationExpression:
3226
3259
  case SyntaxKind.ModelExpression:
3227
3260
  return "Model";
3228
3261
  case SyntaxKind.ModelProperty:
3229
3262
  return "ModelProperty";
3230
3263
  case SyntaxKind.EnumStatement:
3264
+ case SyntaxKind.EnumDeclarationExpression:
3231
3265
  return "Enum";
3232
3266
  case SyntaxKind.InterfaceStatement:
3233
3267
  return "Interface";
3234
3268
  case SyntaxKind.UnionStatement:
3269
+ case SyntaxKind.UnionDeclarationExpression:
3235
3270
  return "Union";
3236
3271
  default:
3237
3272
  return "Type";
@@ -3670,11 +3705,26 @@ export function createChecker(program, resolver) {
3670
3705
  }
3671
3706
  }
3672
3707
  function checkModel(ctx, node) {
3673
- if (node.kind === SyntaxKind.ModelStatement) {
3674
- return checkModelStatement(ctx, node);
3708
+ if (node.kind === SyntaxKind.ModelExpression) {
3709
+ return checkModelExpression(ctx, node);
3675
3710
  }
3676
3711
  else {
3677
- return checkModelExpression(ctx, node);
3712
+ return checkModelStatement(ctx, node);
3713
+ }
3714
+ }
3715
+ /**
3716
+ * A declaration used in expression position is anonymous and cannot be referenced or
3717
+ * instantiated, so template parameters on it are meaningless. Report a diagnostic when present.
3718
+ */
3719
+ function checkExpressionDeclarationConstraints(node) {
3720
+ const isExpression = node.kind === SyntaxKind.ModelDeclarationExpression ||
3721
+ node.kind === SyntaxKind.UnionDeclarationExpression ||
3722
+ node.kind === SyntaxKind.ScalarDeclarationExpression;
3723
+ if (isExpression && node.templateParameters.length > 0) {
3724
+ reportCheckerDiagnostic(createDiagnostic({
3725
+ code: "templated-declaration-in-expression",
3726
+ target: node.templateParameters[0],
3727
+ }));
3678
3728
  }
3679
3729
  }
3680
3730
  function checkModelStatement(ctx, node) {
@@ -3690,16 +3740,21 @@ export function createChecker(program, resolver) {
3690
3740
  checkModifiers(program, node);
3691
3741
  }
3692
3742
  checkTemplateDeclaration(ctx, node);
3743
+ checkExpressionDeclarationConstraints(node);
3744
+ if (ctx.mapper === undefined) {
3745
+ reportDeclarationExpressionFeature(node);
3746
+ }
3693
3747
  const decorators = [];
3694
3748
  const type = createType({
3695
3749
  kind: "Model",
3696
- name: node.id.sv,
3750
+ name: node.id?.sv ?? "",
3697
3751
  node: node,
3698
3752
  properties: createRekeyableMap(),
3699
3753
  namespace: getParentNamespaceType(node),
3700
3754
  decorators,
3701
3755
  sourceModels: [],
3702
3756
  derivedModels: [],
3757
+ expression: node.kind === SyntaxKind.ModelDeclarationExpression,
3703
3758
  });
3704
3759
  linkType(ctx, links, type);
3705
3760
  if (node.symbol.members) {
@@ -3750,7 +3805,7 @@ export function createChecker(program, resolver) {
3750
3805
  }
3751
3806
  // Hold on to the model type that's being defined so that it
3752
3807
  // can be referenced
3753
- if (ctx.mapper === undefined) {
3808
+ if (ctx.mapper === undefined && !type.expression) {
3754
3809
  type.namespace?.models.set(type.name, type);
3755
3810
  }
3756
3811
  // Evaluate the properties after
@@ -3892,6 +3947,7 @@ export function createChecker(program, resolver) {
3892
3947
  decorators: [],
3893
3948
  derivedModels: [],
3894
3949
  sourceModels: [],
3950
+ expression: true,
3895
3951
  });
3896
3952
  for (const prop of properties.values()) {
3897
3953
  model.properties.set(prop.name, createModelPropertyForObjectPropertyDescriptor(prop, model));
@@ -5333,7 +5389,8 @@ export function createChecker(program, resolver) {
5333
5389
  }
5334
5390
  else if (links.finalSymbol?.flags &&
5335
5391
  ~links.finalSymbol.flags & SymbolFlags.Declaration &&
5336
- ~links.finalSymbol.flags & SymbolFlags.Member) {
5392
+ ~links.finalSymbol.flags & SymbolFlags.Member &&
5393
+ !isDeclarationExpressionSym(links.finalSymbol)) {
5337
5394
  program.reportDiagnostic(createDiagnostic({
5338
5395
  code: "augment-decorator-target",
5339
5396
  messageId: links.finalSymbol.flags & SymbolFlags.Model
@@ -5355,6 +5412,23 @@ export function createChecker(program, resolver) {
5355
5412
  // If this was used to get a type this is invalid, only used for validation.
5356
5413
  return errorType;
5357
5414
  }
5415
+ /**
5416
+ * A declaration expression (e.g. the `enum { a, b }` in `model Foo { x: enum { a, b } }`)
5417
+ * is bound as a non-declaration symbol but is still a real, referenceable type
5418
+ * (e.g. via `Foo.x::type`) and therefore a valid augment target. Statement-position
5419
+ * declarations carry {@link SymbolFlags.Declaration} and never reach this check.
5420
+ */
5421
+ function isDeclarationExpressionSym(sym) {
5422
+ switch (getSymNode(sym)?.kind) {
5423
+ case SyntaxKind.ModelDeclarationExpression:
5424
+ case SyntaxKind.EnumDeclarationExpression:
5425
+ case SyntaxKind.UnionDeclarationExpression:
5426
+ case SyntaxKind.ScalarDeclarationExpression:
5427
+ return true;
5428
+ default:
5429
+ return false;
5430
+ }
5431
+ }
5358
5432
  /**
5359
5433
  * Check that using statements are targeting valid symbols.
5360
5434
  */
@@ -5427,15 +5501,20 @@ export function createChecker(program, resolver) {
5427
5501
  checkModifiers(program, node);
5428
5502
  }
5429
5503
  checkTemplateDeclaration(ctx, node);
5504
+ checkExpressionDeclarationConstraints(node);
5505
+ if (ctx.mapper === undefined) {
5506
+ reportDeclarationExpressionFeature(node);
5507
+ }
5430
5508
  const decorators = [];
5431
5509
  const type = createType({
5432
5510
  kind: "Scalar",
5433
- name: node.id.sv,
5511
+ name: node.id?.sv ?? "",
5434
5512
  node: node,
5435
5513
  constructors: new Map(),
5436
5514
  namespace: getParentNamespaceType(node),
5437
5515
  decorators,
5438
5516
  derivedScalars: [],
5517
+ expression: node.kind === SyntaxKind.ScalarDeclarationExpression,
5439
5518
  });
5440
5519
  linkType(ctx, links, type);
5441
5520
  if (node.extends) {
@@ -5447,7 +5526,7 @@ export function createChecker(program, resolver) {
5447
5526
  }
5448
5527
  checkScalarConstructors(ctx, type, node, type.constructors);
5449
5528
  decorators.push(...checkDecorators(ctx, type, node));
5450
- if (ctx.mapper === undefined) {
5529
+ if (ctx.mapper === undefined && !type.expression) {
5451
5530
  type.namespace?.scalars.set(type.name, type);
5452
5531
  }
5453
5532
  linkMapper(type, ctx.mapper);
@@ -5631,46 +5710,57 @@ export function createChecker(program, resolver) {
5631
5710
  }
5632
5711
  function checkEnum(ctx, node) {
5633
5712
  const links = getSymbolLinks(node.symbol);
5634
- if (!links.type) {
5713
+ if (links.declaredType && ctx.mapper === undefined) {
5714
+ // we're not instantiating this enum and we've already checked it
5715
+ return links.declaredType;
5716
+ }
5717
+ if (ctx.mapper === undefined) {
5635
5718
  checkModifiers(program, node);
5636
- const enumType = (links.type = createType({
5637
- kind: "Enum",
5638
- name: node.id.sv,
5639
- node,
5640
- members: createRekeyableMap(),
5641
- decorators: [],
5642
- }));
5643
- const memberNames = new Set();
5644
- for (const member of node.members) {
5645
- if (member.kind === SyntaxKind.EnumMember) {
5646
- const memberType = checkEnumMember(ctx, member, enumType);
5647
- if (memberNames.has(memberType.name)) {
5648
- reportCheckerDiagnostic(createDiagnostic({
5649
- code: "enum-member-duplicate",
5650
- format: { name: memberType.name },
5651
- target: node,
5652
- }));
5653
- continue;
5654
- }
5655
- memberNames.add(memberType.name);
5656
- enumType.members.set(memberType.name, memberType);
5719
+ reportDeclarationExpressionFeature(node);
5720
+ }
5721
+ const enumType = createType({
5722
+ kind: "Enum",
5723
+ name: node.id?.sv ?? "",
5724
+ node,
5725
+ members: createRekeyableMap(),
5726
+ decorators: [],
5727
+ expression: node.kind === SyntaxKind.EnumDeclarationExpression,
5728
+ });
5729
+ // Link the type before resolving the parent namespace: resolving the namespace may run
5730
+ // its decorators which can reference this enum, and we must not create a second instance.
5731
+ linkType(ctx, links, enumType);
5732
+ const memberNames = new Set();
5733
+ for (const member of node.members) {
5734
+ if (member.kind === SyntaxKind.EnumMember) {
5735
+ const memberType = checkEnumMember(ctx, member, enumType);
5736
+ if (memberNames.has(memberType.name)) {
5737
+ reportCheckerDiagnostic(createDiagnostic({
5738
+ code: "enum-member-duplicate",
5739
+ format: { name: memberType.name },
5740
+ target: node,
5741
+ }));
5742
+ continue;
5657
5743
  }
5658
- else {
5659
- const members = checkEnumSpreadMember(ctx, node.symbol, enumType, member.target, memberNames);
5660
- for (const memberType of members) {
5661
- linkIndirectMember(ctx, node, memberType);
5662
- enumType.members.set(memberType.name, memberType);
5663
- }
5744
+ memberNames.add(memberType.name);
5745
+ enumType.members.set(memberType.name, memberType);
5746
+ }
5747
+ else {
5748
+ const members = checkEnumSpreadMember(ctx, node.symbol, enumType, member.target, memberNames);
5749
+ for (const memberType of members) {
5750
+ linkIndirectMember(ctx, node, memberType);
5751
+ enumType.members.set(memberType.name, memberType);
5664
5752
  }
5665
5753
  }
5666
- const namespace = getParentNamespaceType(node);
5667
- enumType.namespace = namespace;
5754
+ }
5755
+ enumType.namespace = getParentNamespaceType(node);
5756
+ if (ctx.mapper === undefined && !enumType.expression) {
5668
5757
  enumType.namespace?.enums.set(enumType.name, enumType);
5669
- enumType.decorators = checkDecorators(ctx, enumType, node);
5670
- linkMapper(enumType, ctx.mapper);
5671
- finishType(enumType);
5672
5758
  }
5673
- return links.type;
5759
+ enumType.decorators = checkDecorators(ctx, enumType, node);
5760
+ linkMapper(enumType, ctx.mapper);
5761
+ return finishType(enumType, {
5762
+ skipDecorators: ctx.hasFlags(CheckFlags.InTemplateDeclaration),
5763
+ });
5674
5764
  }
5675
5765
  function checkInterface(ctx, node) {
5676
5766
  const links = getSymbolLinks(node.symbol);
@@ -5781,18 +5871,22 @@ export function createChecker(program, resolver) {
5781
5871
  }
5782
5872
  }
5783
5873
  checkTemplateDeclaration(ctx, node);
5874
+ checkExpressionDeclarationConstraints(node);
5875
+ if (ctx.mapper === undefined) {
5876
+ reportDeclarationExpressionFeature(node);
5877
+ }
5784
5878
  const variants = createRekeyableMap();
5785
5879
  const unionType = createType({
5786
5880
  kind: "Union",
5787
5881
  decorators: [],
5788
5882
  node,
5789
5883
  namespace: getParentNamespaceType(node),
5790
- name: node.id.sv,
5884
+ name: node.id?.sv,
5791
5885
  variants,
5792
5886
  get options() {
5793
5887
  return Array.from(this.variants.values()).map((v) => v.type);
5794
5888
  },
5795
- expression: false,
5889
+ expression: node.kind === SyntaxKind.UnionDeclarationExpression,
5796
5890
  });
5797
5891
  linkType(ctx, links, unionType);
5798
5892
  if (node.extends) {
@@ -5801,11 +5895,13 @@ export function createChecker(program, resolver) {
5801
5895
  unionType.decorators = checkDecorators(ctx, unionType, node);
5802
5896
  checkUnionVariants(ctx, unionType, node, variants);
5803
5897
  linkMapper(unionType, ctx.mapper);
5804
- if (ctx.mapper === undefined) {
5898
+ if (ctx.mapper === undefined && !unionType.expression) {
5805
5899
  unionType.namespace?.unions.set(unionType.name, unionType);
5806
5900
  }
5807
5901
  lateBindMemberContainer(unionType);
5808
- lateBindMembers(unionType);
5902
+ if (unionType.symbol) {
5903
+ lateBindMembers(unionType);
5904
+ }
5809
5905
  return finishType(unionType, {
5810
5906
  skipDecorators: ctx.hasFlags(CheckFlags.InTemplateDeclaration),
5811
5907
  });
@@ -5876,7 +5972,7 @@ export function createChecker(program, resolver) {
5876
5972
  if (ctx.mapper === undefined) {
5877
5973
  reportCheckerDiagnostic(createDiagnostic({
5878
5974
  code: "circular-base-type",
5879
- format: { typeName: union.id.sv },
5975
+ format: { typeName: union.id?.sv ?? "(anonymous union)" },
5880
5976
  target: extendsRef,
5881
5977
  }));
5882
5978
  }
@@ -6080,6 +6176,7 @@ export function createChecker(program, resolver) {
6080
6176
  decorators: [],
6081
6177
  derivedModels: [],
6082
6178
  sourceModels: [],
6179
+ expression: true,
6083
6180
  });
6084
6181
  }
6085
6182
  /**