@@ -1693,9 +1693,9 @@ namespace ts {
1693
1693
function checkResolvedBlockScopedVariable(result: Symbol, errorLocation: Node): void {
1694
1694
Debug.assert(!!(result.flags & SymbolFlags.BlockScopedVariable || result.flags & SymbolFlags.Class || result.flags & SymbolFlags.Enum));
1695
1695
// Block-scoped variables cannot be used before their definition
1696
- const declaration = forEach(result.declarations, d => isBlockOrCatchScoped(d) || isClassLike(d) || (d.kind === SyntaxKind.EnumDeclaration) ? d : undefined)! ;
1696
+ const declaration = forEach(result.declarations, d => isBlockOrCatchScoped(d) || isClassLike(d) || (d.kind === SyntaxKind.EnumDeclaration) ? d : undefined);
1697
1697
1698
- Debug.assert (declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
1698
+ if (declaration === undefined) return Debug.fail( "Declaration to checkResolvedBlockScopedVariable is undefined");
1699
1699
1700
1700
if (!(declaration.flags & NodeFlags.Ambient) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
1701
1701
if (result.flags & SymbolFlags.BlockScopedVariable) {
@@ -1962,16 +1962,15 @@ namespace ts {
1962
1962
* Indicates that a symbol is an alias that does not merge with a local declaration.
1963
1963
* OR Is a JSContainer which may merge an alias with a local declaration
1964
1964
*/
1965
- function isNonLocalAlias(symbol: Symbol | undefined, excludes = SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace) {
1965
+ function isNonLocalAlias(symbol: Symbol | undefined, excludes = SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace): symbol is Symbol {
1966
1966
if (!symbol) return false;
1967
- return (symbol.flags & (SymbolFlags.Alias | excludes)) === SymbolFlags.Alias || (symbol.flags & SymbolFlags.Alias && symbol.flags & SymbolFlags.JSContainer);
1967
+ return (symbol.flags & (SymbolFlags.Alias | excludes)) === SymbolFlags.Alias || !! (symbol.flags & SymbolFlags.Alias && symbol.flags & SymbolFlags.JSContainer);
1968
1968
}
1969
1969
1970
1970
function resolveSymbol(symbol: Symbol, dontResolveAlias?: boolean): Symbol;
1971
1971
function resolveSymbol(symbol: Symbol | undefined, dontResolveAlias?: boolean): Symbol | undefined;
1972
1972
function resolveSymbol(symbol: Symbol | undefined, dontResolveAlias?: boolean): Symbol | undefined {
1973
- const shouldResolve = !dontResolveAlias && isNonLocalAlias(symbol);
1974
- return shouldResolve ? resolveAlias(symbol!) : symbol;
1973
+ return !dontResolveAlias && isNonLocalAlias(symbol) ? resolveAlias(symbol) : symbol;
1975
1974
}
1976
1975
1977
1976
function resolveAlias(symbol: Symbol): Symbol {
@@ -26100,7 +26099,7 @@ namespace ts {
26100
26099
// We should only get the declaration of an alias if there isn't a local value
26101
26100
// declaration for the symbol
26102
26101
if (isNonLocalAlias(symbol, /*excludes*/ SymbolFlags.Value)) {
26103
- return getDeclarationOfAliasSymbol(symbol! );
26102
+ return getDeclarationOfAliasSymbol(symbol);
26104
26103
}
26105
26104
}
26106
26105
0 commit comments