@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.
- package/dist/manifest.js +2 -2
- package/dist/src/core/binder.d.ts.map +1 -1
- package/dist/src/core/binder.js +33 -0
- package/dist/src/core/binder.js.map +1 -1
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +147 -50
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/features.d.ts +3 -0
- package/dist/src/core/features.d.ts.map +1 -1
- package/dist/src/core/features.js +3 -0
- package/dist/src/core/features.js.map +1 -1
- package/dist/src/core/helpers/type-name-utils.js +19 -3
- package/dist/src/core/helpers/type-name-utils.js.map +1 -1
- package/dist/src/core/inspector/node.js +6 -1
- package/dist/src/core/inspector/node.js.map +1 -1
- package/dist/src/core/messages.d.ts +38 -2
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +12 -0
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/core/modifiers.d.ts +9 -2
- package/dist/src/core/modifiers.d.ts.map +1 -1
- package/dist/src/core/modifiers.js +8 -0
- package/dist/src/core/modifiers.js.map +1 -1
- package/dist/src/core/name-resolver.d.ts.map +1 -1
- package/dist/src/core/name-resolver.js +22 -3
- package/dist/src/core/name-resolver.js.map +1 -1
- package/dist/src/core/parser.d.ts.map +1 -1
- package/dist/src/core/parser.js +257 -23
- package/dist/src/core/parser.js.map +1 -1
- package/dist/src/core/scanner.d.ts +5 -0
- package/dist/src/core/scanner.d.ts.map +1 -1
- package/dist/src/core/scanner.js +10 -0
- package/dist/src/core/scanner.js.map +1 -1
- package/dist/src/core/type-utils.d.ts.map +1 -1
- package/dist/src/core/type-utils.js +3 -0
- package/dist/src/core/type-utils.js.map +1 -1
- package/dist/src/core/types.d.ts +109 -13
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js +4 -0
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/formatter/print/comment-handler.js +11 -1
- package/dist/src/formatter/print/comment-handler.js.map +1 -1
- package/dist/src/formatter/print/printer.d.ts +2 -2
- package/dist/src/formatter/print/printer.d.ts.map +1 -1
- package/dist/src/formatter/print/printer.js +106 -15
- package/dist/src/formatter/print/printer.js.map +1 -1
- package/dist/src/server/classify.d.ts.map +1 -1
- package/dist/src/server/classify.js +12 -4
- package/dist/src/server/classify.js.map +1 -1
- package/dist/src/server/completion.js +14 -1
- package/dist/src/server/completion.js.map +1 -1
- package/dist/src/server/tmlanguage.d.ts.map +1 -1
- package/dist/src/server/tmlanguage.js +69 -1
- package/dist/src/server/tmlanguage.js.map +1 -1
- package/dist/src/server/type-signature.js +4 -1
- package/dist/src/server/type-signature.js.map +1 -1
- package/dist/src/testing/tester.d.ts +11 -0
- package/dist/src/testing/tester.d.ts.map +1 -1
- package/dist/src/testing/tester.js +28 -3
- package/dist/src/testing/tester.js.map +1 -1
- package/dist/src/typekit/kits/enum.d.ts +14 -1
- package/dist/src/typekit/kits/enum.d.ts.map +1 -1
- package/dist/src/typekit/kits/enum.js +2 -1
- package/dist/src/typekit/kits/enum.js.map +1 -1
- package/dist/src/typekit/kits/model.d.ts +12 -1
- package/dist/src/typekit/kits/model.d.ts.map +1 -1
- package/dist/src/typekit/kits/model.js +3 -2
- package/dist/src/typekit/kits/model.js.map +1 -1
- package/dist/src/typekit/kits/union.d.ts +12 -1
- package/dist/src/typekit/kits/union.d.ts.map +1 -1
- package/dist/src/typekit/kits/union.js +3 -3
- package/dist/src/typekit/kits/union.js.map +1 -1
- package/dist/src/typekit/utils.d.ts.map +1 -1
- package/dist/src/typekit/utils.js +17 -0
- package/dist/src/typekit/utils.js.map +1 -1
- package/dist/typespec.tmLanguage +209 -37
- package/package.json +1 -1
package/dist/manifest.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/src/core/binder.js
CHANGED
|
@@ -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":"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"}
|
|
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":"AAiCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C,OAAO,KAAK,EAMV,cAAc,EACd,kBAAkB,
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/checker.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
3674
|
-
return
|
|
3708
|
+
if (node.kind === SyntaxKind.ModelExpression) {
|
|
3709
|
+
return checkModelExpression(ctx, node);
|
|
3675
3710
|
}
|
|
3676
3711
|
else {
|
|
3677
|
-
return
|
|
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
|
|
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
|
|
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 (
|
|
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
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
|
|
5653
|
-
|
|
5654
|
-
|
|
5655
|
-
|
|
5656
|
-
|
|
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
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
|
|
5662
|
-
|
|
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
|
-
|
|
5667
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
/**
|