Fixed na issue with evaluator using binding element initializers as const values (#55910)

This commit is contained in:
Mateusz Burzyński
2023-09-29 13:23:46 -07:00
committed by GitHub
parent 485a2ea0c9
commit 38d09d4ae1
10 changed files with 236 additions and 2 deletions
+2 -2
View File
@@ -44780,8 +44780,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration as EnumMember);
}
if (isConstantVariable(symbol)) {
const declaration = symbol.valueDeclaration as VariableDeclaration | undefined;
if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
const declaration = symbol.valueDeclaration;
if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
return evaluate(declaration.initializer, declaration);
}
}