@@ -2235,29 +2235,23 @@ namespace ts {
2235
2235
error(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation as Identifier));
2236
2236
}
2237
2237
}
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
+ }
2240
2250
}
2241
2251
}
2242
2252
return result;
2243
2253
}
2244
2254
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
-
2261
2255
function addTypeOnlyDeclarationRelatedInfo(diagnostic: Diagnostic, typeOnlyDeclaration: TypeOnlyCompatibleAliasDeclaration | undefined, unescapedName: string) {
2262
2256
if (!typeOnlyDeclaration) return diagnostic;
2263
2257
return addRelatedInfo(
0 commit comments