@@ -2235,29 +2235,23 @@ namespace ts {
22352235 error(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation as Identifier));
22362236 }
22372237 }
2238- if (result && errorLocation && meaning & SymbolFlags.Value && result.flags & SymbolFlags.Alias) {
2239- checkSymbolUsageInExpressionContext(result, name, errorLocation);
2238+ if (result && errorLocation && meaning & SymbolFlags.Value && result.flags & SymbolFlags.Alias && !(result.flags & SymbolFlags.Value) && !isValidTypeOnlyAliasUseSite(errorLocation)) {
2239+ const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(result);
2240+ if (typeOnlyDeclaration) {
2241+ const message = typeOnlyDeclaration.kind === SyntaxKind.ExportSpecifier
2242+ ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type
2243+ : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type;
2244+ const unescapedName = unescapeLeadingUnderscores(name);
2245+ addTypeOnlyDeclarationRelatedInfo(
2246+ error(errorLocation, message, unescapedName),
2247+ typeOnlyDeclaration,
2248+ unescapedName);
2249+ }
22402250 }
22412251 }
22422252 return result;
22432253 }
22442254
2245- function checkSymbolUsageInExpressionContext(symbol: Symbol, name: __String, useSite: Node) {
2246- if (!isValidTypeOnlyAliasUseSite(useSite)) {
2247- const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(symbol);
2248- if (typeOnlyDeclaration) {
2249- const message = typeOnlyDeclaration.kind === SyntaxKind.ExportSpecifier
2250- ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type
2251- : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type;
2252- const unescapedName = unescapeLeadingUnderscores(name);
2253- addTypeOnlyDeclarationRelatedInfo(
2254- error(useSite, message, unescapedName),
2255- typeOnlyDeclaration,
2256- unescapedName);
2257- }
2258- }
2259- }
2260-
22612255 function addTypeOnlyDeclarationRelatedInfo(diagnostic: Diagnostic, typeOnlyDeclaration: TypeOnlyCompatibleAliasDeclaration | undefined, unescapedName: string) {
22622256 if (!typeOnlyDeclaration) return diagnostic;
22632257 return addRelatedInfo(
0 commit comments