@typespec/compiler 0.50.0-dev.9 → 0.50.0

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 CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "0.50.0-dev.9",
3
- "commit": "533c974a47ab9f99d458aa63ee48329878260c7c"
2
+ "version": "0.50.0",
3
+ "commit": "6d69297a05c77138f7fa858a9d1a117e2f6b8a5f"
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAqC,MAAM,oBAAoB,CAAC;AAGxF,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,EAIL,cAAc,EACd,kBAAkB,EAQlB,UAAU,EACV,gBAAgB,EAMhB,SAAS,EAKT,YAAY,EAEZ,cAAc,EAId,mBAAmB,EAEnB,gBAAgB,EAChB,WAAW,EACX,WAAW,EAOX,KAAK,EAGL,aAAa,EAKb,SAAS,EACT,sBAAsB,EACtB,SAAS,EACT,IAAI,EAEJ,cAAc,EACd,kBAAkB,EAiBlB,cAAc,EAGd,uBAAuB,EAIvB,MAAM,EAEN,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,GAAG,EAYH,IAAI,EAIJ,iBAAiB,EACjB,kBAAkB,EAMlB,WAAW,EAEX,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,aAAa,CAAC,CAAC;AAE7E,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,aAAa,CAAC;IAE7B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,YAAY,IAAI,IAAI,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChD,sBAAsB,IAAI,SAAS,CAAC;IACpC,sBAAsB,IAAI,sBAAsB,CAAC;IACjD,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;IACvD,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,IAAI,CAAC;IACnE,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC;IACvD,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAAC;IACzD,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAAC;IACzD,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;IAE/C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE3D;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACnF,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,CAAC,CAAC;IACnF,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACvE,OAAO,CACL,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,cAAc,EAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC1C,IAAI,CAAC;IACR,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,GAAG,GAAG,SAAS,CAAC;IACzD,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC9E,UAAU,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG,GAAG,eAAe,GAAG,KAAK,EAC7D,OAAO,EAAE,CAAC,GACT,CAAC,GAAG,aAAa,GAAG;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,mBAAmB,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG,GAAG,eAAe,GAAG,KAAK,EACtE,OAAO,EAAE,CAAC,GACT,CAAC,GAAG,aAAa,CAAC;IACrB,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,YAAY,CAAC;IAChE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAC1E,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAC;IAC5E,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAC;IAC7E,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GACjE,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IACnD,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GACjE,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAEnD;;;;;;OAMG;IACH,kBAAkB,CAChB,MAAM,EAAE,IAAI,GAAG,SAAS,EACxB,MAAM,EAAE,IAAI,GAAG,SAAS,EACxB,gBAAgB,EAAE,gBAAgB,GACjC,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAEpC;;;;OAIG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,IAAI,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAEnF;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,IAAI,GAAG,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAEzF,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAAC;CAC5D;AAED,6CAA6C;AAC7C,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,GAAG,CAAC;IAET;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA0pKvD;AAqFD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC5C,KAAK,CAyEP;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GAAG,gBAAgB,EACnC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC3C,KAAK,CAmCP;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAcxF;AAED;;;;;;;GAOG;AACH,wBAAiB,uBAAuB,CAAC,KAAK,EAAE,KAAK,2CAapD;AAYD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAEpF"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
@@ -1277,14 +1277,14 @@ export function createChecker(program) {
1277
1277
  }
1278
1278
  return s.id;
1279
1279
  }
1280
- function resolveIdentifierInTable(node, table, resolveDecorator = false) {
1280
+ function resolveIdentifierInTable(node, table, options) {
1281
1281
  var _a, _b;
1282
1282
  if (!table) {
1283
1283
  return undefined;
1284
1284
  }
1285
1285
  table = (_a = augmentedSymbolTables.get(table)) !== null && _a !== void 0 ? _a : table;
1286
1286
  let sym;
1287
- if (resolveDecorator) {
1287
+ if (options.resolveDecorators) {
1288
1288
  sym = table.get("@" + node.sv);
1289
1289
  }
1290
1290
  else {
@@ -1330,7 +1330,7 @@ export function createChecker(program) {
1330
1330
  return undefined;
1331
1331
  }
1332
1332
  lateBindMembers(containerType, container);
1333
- sym = resolveIdentifierInTable(id, (_a = container.exports) !== null && _a !== void 0 ? _a : container.members);
1333
+ sym = resolveIdentifierInTable(id, (_a = container.exports) !== null && _a !== void 0 ? _a : container.members, defaultSymbolResolutionOptions);
1334
1334
  break;
1335
1335
  case IdentifierKind.Other:
1336
1336
  return undefined;
@@ -1381,7 +1381,7 @@ export function createChecker(program) {
1381
1381
  let base = resolveTypeReferenceSym(identifier.parent.base, undefined, false);
1382
1382
  if (base) {
1383
1383
  if (base.flags & 2048 /* SymbolFlags.Alias */) {
1384
- base = getAliasedSymbol(base, undefined);
1384
+ base = getAliasedSymbol(base, undefined, defaultSymbolResolutionOptions);
1385
1385
  }
1386
1386
  if (base) {
1387
1387
  if (isTemplatedNode(base.declarations[0])) {
@@ -1471,7 +1471,7 @@ export function createChecker(program) {
1471
1471
  }
1472
1472
  }
1473
1473
  }
1474
- function resolveIdentifierInScope(node, mapper, resolveDecorator = false) {
1474
+ function resolveIdentifierInScope(node, mapper, options) {
1475
1475
  var _a;
1476
1476
  compilerAssert(((_a = node.parent) === null || _a === void 0 ? void 0 : _a.kind) !== SyntaxKind.MemberExpression || node.parent.id !== node, "This function should not be used to resolve Y in member expression X.Y. Use resolveIdentifier() to resolve an arbitrary identifier.");
1477
1477
  if (hasParseError(node)) {
@@ -1484,12 +1484,12 @@ export function createChecker(program) {
1484
1484
  while (scope && scope.kind !== SyntaxKind.TypeSpecScript) {
1485
1485
  if (scope.symbol && "exports" in scope.symbol) {
1486
1486
  const mergedSymbol = getMergedSymbol(scope.symbol);
1487
- binding = resolveIdentifierInTable(node, mergedSymbol.exports, resolveDecorator);
1487
+ binding = resolveIdentifierInTable(node, mergedSymbol.exports, options);
1488
1488
  if (binding)
1489
1489
  return binding;
1490
1490
  }
1491
1491
  if ("locals" in scope) {
1492
- binding = resolveIdentifierInTable(node, scope.locals, resolveDecorator);
1492
+ binding = resolveIdentifierInTable(node, scope.locals, options);
1493
1493
  if (binding)
1494
1494
  return binding;
1495
1495
  }
@@ -1499,14 +1499,14 @@ export function createChecker(program) {
1499
1499
  // check any blockless namespace decls
1500
1500
  for (const ns of scope.inScopeNamespaces) {
1501
1501
  const mergedSymbol = getMergedSymbol(ns.symbol);
1502
- binding = resolveIdentifierInTable(node, mergedSymbol.exports, resolveDecorator);
1502
+ binding = resolveIdentifierInTable(node, mergedSymbol.exports, options);
1503
1503
  if (binding)
1504
1504
  return binding;
1505
1505
  }
1506
1506
  // check "global scope" declarations
1507
- const globalBinding = resolveIdentifierInTable(node, globalNamespaceNode.symbol.exports, resolveDecorator);
1507
+ const globalBinding = resolveIdentifierInTable(node, globalNamespaceNode.symbol.exports, options);
1508
1508
  // check using types
1509
- const usingBinding = resolveIdentifierInTable(node, scope.locals, resolveDecorator);
1509
+ const usingBinding = resolveIdentifierInTable(node, scope.locals, options);
1510
1510
  if (globalBinding && usingBinding) {
1511
1511
  reportAmbiguousIdentifier(node, [globalBinding, usingBinding]);
1512
1512
  return globalBinding;
@@ -1523,22 +1523,27 @@ export function createChecker(program) {
1523
1523
  }
1524
1524
  return undefined;
1525
1525
  }
1526
- function resolveTypeReferenceSym(node, mapper, resolveDecorator = false) {
1527
- if (mapper === undefined && referenceSymCache.has(node)) {
1526
+ function resolveTypeReferenceSym(node, mapper, options) {
1527
+ const resolvedOptions = typeof options === "boolean"
1528
+ ? { ...defaultSymbolResolutionOptions, resolveDecorators: options }
1529
+ : { ...defaultSymbolResolutionOptions, ...(options !== null && options !== void 0 ? options : {}) };
1530
+ if (mapper === undefined && resolvedOptions.checkTemplateTypes && referenceSymCache.has(node)) {
1528
1531
  return referenceSymCache.get(node);
1529
1532
  }
1530
- const sym = resolveTypeReferenceSymInternal(node, mapper, resolveDecorator);
1531
- referenceSymCache.set(node, sym);
1533
+ const sym = resolveTypeReferenceSymInternal(node, mapper, resolvedOptions);
1534
+ if (resolvedOptions.checkTemplateTypes) {
1535
+ referenceSymCache.set(node, sym);
1536
+ }
1532
1537
  return sym;
1533
1538
  }
1534
- function resolveTypeReferenceSymInternal(node, mapper, resolveDecorator = false) {
1539
+ function resolveTypeReferenceSymInternal(node, mapper, options) {
1535
1540
  if (hasParseError(node)) {
1536
1541
  // Don't report synthetic identifiers used for parser error recovery.
1537
1542
  // The parse error is the root cause and will already have been logged.
1538
1543
  return undefined;
1539
1544
  }
1540
1545
  if (node.kind === SyntaxKind.TypeReference) {
1541
- return resolveTypeReferenceSym(node.target, mapper, resolveDecorator);
1546
+ return resolveTypeReferenceSym(node.target, mapper, options);
1542
1547
  }
1543
1548
  if (node.kind === SyntaxKind.MemberExpression) {
1544
1549
  let base = resolveTypeReferenceSym(node.base, mapper);
@@ -1547,29 +1552,29 @@ export function createChecker(program) {
1547
1552
  }
1548
1553
  // when resolving a type reference based on an alias, unwrap the alias.
1549
1554
  if (base.flags & 2048 /* SymbolFlags.Alias */) {
1550
- base = getAliasedSymbol(base, mapper);
1555
+ base = getAliasedSymbol(base, mapper, options);
1551
1556
  if (!base) {
1552
1557
  return undefined;
1553
1558
  }
1554
1559
  }
1555
1560
  if (node.selector === ".") {
1556
- return resolveMemberInContainer(node, base, mapper, resolveDecorator);
1561
+ return resolveMemberInContainer(node, base, mapper, options);
1557
1562
  }
1558
1563
  else {
1559
1564
  return resolveMetaProperty(node, base);
1560
1565
  }
1561
1566
  }
1562
1567
  if (node.kind === SyntaxKind.Identifier) {
1563
- const sym = resolveIdentifierInScope(node, mapper, resolveDecorator);
1568
+ const sym = resolveIdentifierInScope(node, mapper, options);
1564
1569
  if (!sym)
1565
1570
  return undefined;
1566
1571
  return sym.flags & 524288 /* SymbolFlags.Using */ ? sym.symbolSource : sym;
1567
1572
  }
1568
1573
  compilerAssert(false, `Unknown type reference kind "${SyntaxKind[node.kind]}"`, node);
1569
1574
  }
1570
- function resolveMemberInContainer(node, base, mapper, resolveDecorator) {
1575
+ function resolveMemberInContainer(node, base, mapper, options) {
1571
1576
  if (base.flags & 4096 /* SymbolFlags.Namespace */) {
1572
- const symbol = resolveIdentifierInTable(node.id, base.exports, resolveDecorator);
1577
+ const symbol = resolveIdentifierInTable(node.id, base.exports, options);
1573
1578
  if (!symbol) {
1574
1579
  reportCheckerDiagnostic(createDiagnostic({
1575
1580
  code: "invalid-ref",
@@ -1603,7 +1608,7 @@ export function createChecker(program) {
1603
1608
  return undefined;
1604
1609
  }
1605
1610
  else if (base.flags & 674 /* SymbolFlags.MemberContainer */) {
1606
- if (isTemplatedNode(base.declarations[0])) {
1611
+ if (options.checkTemplateTypes && isTemplatedNode(base.declarations[0])) {
1607
1612
  const type = base.flags & 16777216 /* SymbolFlags.LateBound */
1608
1613
  ? base.type
1609
1614
  : getTypeForNode(base.declarations[0], mapper);
@@ -1611,7 +1616,7 @@ export function createChecker(program) {
1611
1616
  lateBindMembers(type, base);
1612
1617
  }
1613
1618
  }
1614
- const sym = resolveIdentifierInTable(node.id, base.members, resolveDecorator);
1619
+ const sym = resolveIdentifierInTable(node.id, base.members, options);
1615
1620
  if (!sym) {
1616
1621
  reportCheckerDiagnostic(createDiagnostic({
1617
1622
  code: "invalid-ref",
@@ -1637,7 +1642,10 @@ export function createChecker(program) {
1637
1642
  }
1638
1643
  }
1639
1644
  function resolveMetaProperty(node, base) {
1640
- const resolved = resolveIdentifierInTable(node.id, base.metatypeMembers);
1645
+ const resolved = resolveIdentifierInTable(node.id, base.metatypeMembers, {
1646
+ resolveDecorators: false,
1647
+ checkTemplateTypes: false,
1648
+ });
1641
1649
  if (!resolved) {
1642
1650
  reportCheckerDiagnostic(createDiagnostic({
1643
1651
  code: "invalid-ref",
@@ -1671,9 +1679,25 @@ export function createChecker(program) {
1671
1679
  * (i.e. they contain symbols we don't know until we've instantiated the type and the type is an
1672
1680
  * instantiation) we late bind the container which creates the symbol that will hold its members.
1673
1681
  */
1674
- function getAliasedSymbol(aliasSymbol, mapper) {
1682
+ function getAliasedSymbol(aliasSymbol, mapper, options) {
1675
1683
  var _a;
1676
- const aliasType = getTypeForNode(aliasSymbol.declarations[0], mapper);
1684
+ let current = aliasSymbol;
1685
+ while (current.flags & 2048 /* SymbolFlags.Alias */) {
1686
+ const node = current.declarations[0];
1687
+ const targetNode = node.kind === SyntaxKind.AliasStatement ? node.value : node;
1688
+ const sym = resolveTypeReferenceSymInternal(targetNode, mapper, options);
1689
+ if (sym === undefined) {
1690
+ return undefined;
1691
+ }
1692
+ current = sym;
1693
+ }
1694
+ const sym = current;
1695
+ const node = aliasSymbol.declarations[0];
1696
+ const resolvedTargetNode = sym.declarations[0];
1697
+ if (!options.checkTemplateTypes || !isTemplatedNode(resolvedTargetNode)) {
1698
+ return sym;
1699
+ }
1700
+ const aliasType = getTypeForNode(node, mapper);
1677
1701
  if (isErrorType(aliasType)) {
1678
1702
  return undefined;
1679
1703
  }
@@ -2096,7 +2120,9 @@ export function createChecker(program) {
2096
2120
  table.set("returnType", node.signature.returnType.symbol);
2097
2121
  }
2098
2122
  else {
2099
- const sig = resolveTypeReferenceSym(node.signature.baseOperation, undefined);
2123
+ const sig = resolveTypeReferenceSym(node.signature.baseOperation, undefined, {
2124
+ checkTemplateTypes: false,
2125
+ });
2100
2126
  if (sig) {
2101
2127
  visit(sig.declarations[0], sig);
2102
2128
  const sigTable = getOrCreateAugmentedSymbolTable(sig.metatypeMembers);
@@ -4689,4 +4715,8 @@ var Related;
4689
4715
  Related[Related["true"] = 1] = "true";
4690
4716
  Related[Related["maybe"] = 2] = "maybe";
4691
4717
  })(Related || (Related = {}));
4718
+ const defaultSymbolResolutionOptions = {
4719
+ resolveDecorators: false,
4720
+ checkTemplateTypes: true,
4721
+ };
4692
4722
  //# sourceMappingURL=checker.js.map