@typespec/compiler 0.50.0-dev.8 → 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 +2 -2
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +57 -27
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/parser.d.ts.map +1 -1
- package/dist/src/core/parser.js +10 -5
- package/dist/src/core/parser.js.map +1 -1
- package/dist/src/core/util.js +4 -0
- package/dist/src/core/util.js.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.js +22 -9
- 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/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 +3 -2
- package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/type-emitter.js +5 -2
- package/dist/src/emitter-framework/type-emitter.js.map +1 -1
- package/dist/src/emitter-framework/types.d.ts +0 -6
- package/dist/src/emitter-framework/types.d.ts.map +1 -1
- package/lib/lib.tsp +4 -2
- package/package.json +24 -29
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":"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,CA+rKvD;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"}
|
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,27 @@ export function createChecker(program) {
|
|
|
1523
1523
|
}
|
|
1524
1524
|
return undefined;
|
|
1525
1525
|
}
|
|
1526
|
-
function resolveTypeReferenceSym(node, mapper,
|
|
1527
|
-
|
|
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,
|
|
1531
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
1575
|
+
function resolveMemberInContainer(node, base, mapper, options) {
|
|
1571
1576
|
if (base.flags & 4096 /* SymbolFlags.Namespace */) {
|
|
1572
|
-
const symbol = resolveIdentifierInTable(node.id, base.exports,
|
|
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,
|
|
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
|
-
|
|
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
|