Skip to content

Commit c4500bd

Browse files
Addressed code review feedback.
1 parent 4459730 commit c4500bd

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

src/compiler/checker.ts

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1655,34 +1655,29 @@ namespace ts {
16551655
if (declaration === undefined) return Debug.fail("Declaration to checkResolvedBlockScopedVariable is undefined");
16561656

16571657
if (!(declaration.flags & NodeFlags.Ambient) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
1658-
let err;
1658+
let diagnosticMessage;
16591659
const declarationName = declarationNameToString(getNameOfDeclaration(declaration));
16601660
if (result.flags & SymbolFlags.BlockScopedVariable) {
1661-
err = error(errorLocation, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);
1661+
diagnosticMessage = error(errorLocation, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);
16621662
}
16631663
else if (result.flags & SymbolFlags.Class) {
1664-
err = error(errorLocation, Diagnostics.Class_0_used_before_its_declaration, declarationName);
1664+
diagnosticMessage = error(errorLocation, Diagnostics.Class_0_used_before_its_declaration, declarationName);
16651665
}
16661666
else if (result.flags & SymbolFlags.RegularEnum) {
1667-
err = error(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);
1667+
diagnosticMessage = error(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);
16681668
}
16691669
else {
16701670
Debug.assert(!!(result.flags & SymbolFlags.ConstEnum));
16711671
}
16721672

1673-
if (err) {
1674-
placeRelatedSpanOnLaterDeclaration(declarationName, declaration, err);
1673+
if (diagnosticMessage) {
1674+
addRelatedInfo(diagnosticMessage,
1675+
createDiagnosticForNode(declaration, Diagnostics._0_was_declared_here, declarationName)
1676+
);
16751677
}
16761678
}
16771679
}
16781680

1679-
function placeRelatedSpanOnLaterDeclaration(declarationName: string, declarationLocation: Declaration, diagnostic: Diagnostic) {
1680-
Debug.assert(!diagnostic.relatedInformation);
1681-
diagnostic.relatedInformation = [
1682-
createDiagnosticForNode(declarationLocation, Diagnostics._0_was_declared_here, declarationName)
1683-
];
1684-
}
1685-
16861681
/* Starting from 'initial' node walk up the parent chain until 'stopAt' node is reached.
16871682
* If at any point current node is equal to 'parent' node - return true.
16881683
* Return false if 'stopAt' node is reached or isFunctionLike(current) === true.
@@ -17476,22 +17471,24 @@ namespace ts {
1747617471
return;
1747717472
}
1747817473

17479-
let err;
17474+
let diagnosticMessage;
1748017475
const declarationName = idText(right);
1748117476
if (isInPropertyInitializer(node) &&
1748217477
!isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right)
1748317478
&& !isPropertyDeclaredInAncestorClass(prop)) {
17484-
err = error(right, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);
17479+
diagnosticMessage = error(right, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);
1748517480
}
1748617481
else if (valueDeclaration.kind === SyntaxKind.ClassDeclaration &&
1748717482
node.parent.kind !== SyntaxKind.TypeReference &&
1748817483
!(valueDeclaration.flags & NodeFlags.Ambient) &&
1748917484
!isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right)) {
17490-
err = error(right, Diagnostics.Class_0_used_before_its_declaration, declarationName);
17485+
diagnosticMessage = error(right, Diagnostics.Class_0_used_before_its_declaration, declarationName);
1749117486
}
1749217487

17493-
if (err) {
17494-
placeRelatedSpanOnLaterDeclaration(declarationName, valueDeclaration, err);
17488+
if (diagnosticMessage) {
17489+
addRelatedInfo(diagnosticMessage,
17490+
createDiagnosticForNode(valueDeclaration, Diagnostics._0_was_declared_here, declarationName)
17491+
);
1749517492
}
1749617493
}
1749717494

0 commit comments

Comments
 (0)