@typespec/compiler 0.50.0-dev.1 → 0.50.0-dev.11
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/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +54 -25
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/logger/console-sink.js +1 -1
- package/dist/src/core/logger/console-sink.js.map +1 -1
- package/dist/src/core/messages.d.ts +5 -0
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +1 -0
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.js +55 -38
- package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
- package/dist/src/emitter-framework/index.d.ts +1 -0
- package/dist/src/emitter-framework/index.d.ts.map +1 -1
- package/dist/src/emitter-framework/index.js +1 -0
- package/dist/src/emitter-framework/index.js.map +1 -1
- package/dist/src/emitter-framework/ref-scope.d.ts +14 -0
- package/dist/src/emitter-framework/ref-scope.d.ts.map +1 -0
- package/dist/src/emitter-framework/ref-scope.js +31 -0
- package/dist/src/emitter-framework/ref-scope.js.map +1 -0
- package/dist/src/emitter-framework/reference-cycle.d.ts +23 -0
- package/dist/src/emitter-framework/reference-cycle.d.ts.map +1 -0
- package/dist/src/emitter-framework/reference-cycle.js +40 -0
- package/dist/src/emitter-framework/reference-cycle.js.map +1 -0
- package/dist/src/emitter-framework/type-emitter.d.ts +11 -2
- package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/type-emitter.js +25 -6
- package/dist/src/emitter-framework/type-emitter.js.map +1 -1
- package/dist/src/emitter-framework/types.d.ts +1 -1
- package/dist/src/emitter-framework/types.d.ts.map +1 -1
- package/dist/src/lib/decorators.js +3 -2
- package/dist/src/lib/decorators.js.map +1 -1
- package/lib/lib.tsp +8 -0
- package/package.json +2 -2
package/dist/manifest.js
CHANGED
|
@@ -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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"}
|
package/dist/src/core/checker.js
CHANGED
|
@@ -1277,14 +1277,14 @@ export function createChecker(program) {
|
|
|
1277
1277
|
}
|
|
1278
1278
|
return s.id;
|
|
1279
1279
|
}
|
|
1280
|
-
function resolveIdentifierInTable(node, table,
|
|
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 (
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
1507
|
+
const globalBinding = resolveIdentifierInTable(node, globalNamespaceNode.symbol.exports, options);
|
|
1508
1508
|
// check using types
|
|
1509
|
-
const usingBinding = resolveIdentifierInTable(node, scope.locals,
|
|
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,25 @@ export function createChecker(program) {
|
|
|
1523
1523
|
}
|
|
1524
1524
|
return undefined;
|
|
1525
1525
|
}
|
|
1526
|
-
function resolveTypeReferenceSym(node, mapper,
|
|
1526
|
+
function resolveTypeReferenceSym(node, mapper, options) {
|
|
1527
1527
|
if (mapper === undefined && referenceSymCache.has(node)) {
|
|
1528
1528
|
return referenceSymCache.get(node);
|
|
1529
1529
|
}
|
|
1530
|
-
const
|
|
1530
|
+
const resolvedOptions = typeof options === "boolean"
|
|
1531
|
+
? { ...defaultSymbolResolutionOptions, resolveDecorators: options }
|
|
1532
|
+
: { ...defaultSymbolResolutionOptions, ...(options !== null && options !== void 0 ? options : {}) };
|
|
1533
|
+
const sym = resolveTypeReferenceSymInternal(node, mapper, resolvedOptions);
|
|
1531
1534
|
referenceSymCache.set(node, sym);
|
|
1532
1535
|
return sym;
|
|
1533
1536
|
}
|
|
1534
|
-
function resolveTypeReferenceSymInternal(node, mapper,
|
|
1537
|
+
function resolveTypeReferenceSymInternal(node, mapper, options) {
|
|
1535
1538
|
if (hasParseError(node)) {
|
|
1536
1539
|
// Don't report synthetic identifiers used for parser error recovery.
|
|
1537
1540
|
// The parse error is the root cause and will already have been logged.
|
|
1538
1541
|
return undefined;
|
|
1539
1542
|
}
|
|
1540
1543
|
if (node.kind === SyntaxKind.TypeReference) {
|
|
1541
|
-
return resolveTypeReferenceSym(node.target, mapper,
|
|
1544
|
+
return resolveTypeReferenceSym(node.target, mapper, options);
|
|
1542
1545
|
}
|
|
1543
1546
|
if (node.kind === SyntaxKind.MemberExpression) {
|
|
1544
1547
|
let base = resolveTypeReferenceSym(node.base, mapper);
|
|
@@ -1547,29 +1550,29 @@ export function createChecker(program) {
|
|
|
1547
1550
|
}
|
|
1548
1551
|
// when resolving a type reference based on an alias, unwrap the alias.
|
|
1549
1552
|
if (base.flags & 2048 /* SymbolFlags.Alias */) {
|
|
1550
|
-
base = getAliasedSymbol(base, mapper);
|
|
1553
|
+
base = getAliasedSymbol(base, mapper, options);
|
|
1551
1554
|
if (!base) {
|
|
1552
1555
|
return undefined;
|
|
1553
1556
|
}
|
|
1554
1557
|
}
|
|
1555
1558
|
if (node.selector === ".") {
|
|
1556
|
-
return resolveMemberInContainer(node, base, mapper,
|
|
1559
|
+
return resolveMemberInContainer(node, base, mapper, options);
|
|
1557
1560
|
}
|
|
1558
1561
|
else {
|
|
1559
1562
|
return resolveMetaProperty(node, base);
|
|
1560
1563
|
}
|
|
1561
1564
|
}
|
|
1562
1565
|
if (node.kind === SyntaxKind.Identifier) {
|
|
1563
|
-
const sym = resolveIdentifierInScope(node, mapper,
|
|
1566
|
+
const sym = resolveIdentifierInScope(node, mapper, options);
|
|
1564
1567
|
if (!sym)
|
|
1565
1568
|
return undefined;
|
|
1566
1569
|
return sym.flags & 524288 /* SymbolFlags.Using */ ? sym.symbolSource : sym;
|
|
1567
1570
|
}
|
|
1568
1571
|
compilerAssert(false, `Unknown type reference kind "${SyntaxKind[node.kind]}"`, node);
|
|
1569
1572
|
}
|
|
1570
|
-
function resolveMemberInContainer(node, base, mapper,
|
|
1573
|
+
function resolveMemberInContainer(node, base, mapper, options) {
|
|
1571
1574
|
if (base.flags & 4096 /* SymbolFlags.Namespace */) {
|
|
1572
|
-
const symbol = resolveIdentifierInTable(node.id, base.exports,
|
|
1575
|
+
const symbol = resolveIdentifierInTable(node.id, base.exports, options);
|
|
1573
1576
|
if (!symbol) {
|
|
1574
1577
|
reportCheckerDiagnostic(createDiagnostic({
|
|
1575
1578
|
code: "invalid-ref",
|
|
@@ -1603,7 +1606,7 @@ export function createChecker(program) {
|
|
|
1603
1606
|
return undefined;
|
|
1604
1607
|
}
|
|
1605
1608
|
else if (base.flags & 674 /* SymbolFlags.MemberContainer */) {
|
|
1606
|
-
if (isTemplatedNode(base.declarations[0])) {
|
|
1609
|
+
if (options.checkTemplateTypes && isTemplatedNode(base.declarations[0])) {
|
|
1607
1610
|
const type = base.flags & 16777216 /* SymbolFlags.LateBound */
|
|
1608
1611
|
? base.type
|
|
1609
1612
|
: getTypeForNode(base.declarations[0], mapper);
|
|
@@ -1611,7 +1614,7 @@ export function createChecker(program) {
|
|
|
1611
1614
|
lateBindMembers(type, base);
|
|
1612
1615
|
}
|
|
1613
1616
|
}
|
|
1614
|
-
const sym = resolveIdentifierInTable(node.id, base.members,
|
|
1617
|
+
const sym = resolveIdentifierInTable(node.id, base.members, options);
|
|
1615
1618
|
if (!sym) {
|
|
1616
1619
|
reportCheckerDiagnostic(createDiagnostic({
|
|
1617
1620
|
code: "invalid-ref",
|
|
@@ -1637,7 +1640,10 @@ export function createChecker(program) {
|
|
|
1637
1640
|
}
|
|
1638
1641
|
}
|
|
1639
1642
|
function resolveMetaProperty(node, base) {
|
|
1640
|
-
const resolved = resolveIdentifierInTable(node.id, base.metatypeMembers
|
|
1643
|
+
const resolved = resolveIdentifierInTable(node.id, base.metatypeMembers, {
|
|
1644
|
+
resolveDecorators: false,
|
|
1645
|
+
checkTemplateTypes: false,
|
|
1646
|
+
});
|
|
1641
1647
|
if (!resolved) {
|
|
1642
1648
|
reportCheckerDiagnostic(createDiagnostic({
|
|
1643
1649
|
code: "invalid-ref",
|
|
@@ -1671,9 +1677,19 @@ export function createChecker(program) {
|
|
|
1671
1677
|
* (i.e. they contain symbols we don't know until we've instantiated the type and the type is an
|
|
1672
1678
|
* instantiation) we late bind the container which creates the symbol that will hold its members.
|
|
1673
1679
|
*/
|
|
1674
|
-
function getAliasedSymbol(aliasSymbol, mapper) {
|
|
1680
|
+
function getAliasedSymbol(aliasSymbol, mapper, options) {
|
|
1675
1681
|
var _a;
|
|
1676
|
-
const
|
|
1682
|
+
const node = aliasSymbol.declarations[0];
|
|
1683
|
+
const targetNode = node.kind === SyntaxKind.AliasStatement ? node.value : node;
|
|
1684
|
+
const sym = resolveTypeReferenceSymInternal(targetNode, mapper, options);
|
|
1685
|
+
if (sym === undefined) {
|
|
1686
|
+
return undefined;
|
|
1687
|
+
}
|
|
1688
|
+
const resolvedTargetNode = sym.declarations[0];
|
|
1689
|
+
if (!options.checkTemplateTypes || !isTemplatedNode(resolvedTargetNode)) {
|
|
1690
|
+
return sym;
|
|
1691
|
+
}
|
|
1692
|
+
const aliasType = getTypeForNode(node, mapper);
|
|
1677
1693
|
if (isErrorType(aliasType)) {
|
|
1678
1694
|
return undefined;
|
|
1679
1695
|
}
|
|
@@ -2096,7 +2112,9 @@ export function createChecker(program) {
|
|
|
2096
2112
|
table.set("returnType", node.signature.returnType.symbol);
|
|
2097
2113
|
}
|
|
2098
2114
|
else {
|
|
2099
|
-
const sig = resolveTypeReferenceSym(node.signature.baseOperation, undefined
|
|
2115
|
+
const sig = resolveTypeReferenceSym(node.signature.baseOperation, undefined, {
|
|
2116
|
+
checkTemplateTypes: false,
|
|
2117
|
+
});
|
|
2100
2118
|
if (sig) {
|
|
2101
2119
|
visit(sig.declarations[0], sig);
|
|
2102
2120
|
const sigTable = getOrCreateAugmentedSymbolTable(sig.metatypeMembers);
|
|
@@ -2287,6 +2305,13 @@ export function createChecker(program) {
|
|
|
2287
2305
|
reportCheckerDiagnostic(createDiagnostic({ code: "spread-model", target: targetNode }));
|
|
2288
2306
|
return [];
|
|
2289
2307
|
}
|
|
2308
|
+
if (parentModel === targetType) {
|
|
2309
|
+
reportCheckerDiagnostic(createDiagnostic({
|
|
2310
|
+
code: "spread-model",
|
|
2311
|
+
messageId: "selfSpread",
|
|
2312
|
+
target: targetNode,
|
|
2313
|
+
}));
|
|
2314
|
+
}
|
|
2290
2315
|
const props = [];
|
|
2291
2316
|
// copy each property
|
|
2292
2317
|
for (const prop of walkPropertiesInherited(targetType)) {
|
|
@@ -4682,4 +4707,8 @@ var Related;
|
|
|
4682
4707
|
Related[Related["true"] = 1] = "true";
|
|
4683
4708
|
Related[Related["maybe"] = 2] = "maybe";
|
|
4684
4709
|
})(Related || (Related = {}));
|
|
4710
|
+
const defaultSymbolResolutionOptions = {
|
|
4711
|
+
resolveDecorators: false,
|
|
4712
|
+
checkTemplateTypes: true,
|
|
4713
|
+
};
|
|
4685
4714
|
//# sourceMappingURL=checker.js.map
|