Skip to content

Commit 6c5c48c

Browse files
authored
Exempt ambient [#]private from unused error (microsoft#37050)
* Exempt ambient [#]private from unused error These declarations exist to create nominality so they _must_ be unused. There should be no error for them. * Switch to fourslash test I don't know how to baseline suggestion diagnostics in the compiler tests.
1 parent 35aea8b commit 6c5c48c

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

src/compiler/checker.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -30566,7 +30566,9 @@ namespace ts {
3056630566
break;
3056730567
}
3056830568
const symbol = getSymbolOfNode(member);
30569-
if (!symbol.isReferenced && (hasModifier(member, ModifierFlags.Private) || isNamedDeclaration(member) && isPrivateIdentifier(member.name))) {
30569+
if (!symbol.isReferenced
30570+
&& (hasModifier(member, ModifierFlags.Private) || isNamedDeclaration(member) && isPrivateIdentifier(member.name))
30571+
&& !(member.flags & NodeFlags.Ambient)) {
3057030572
addDiagnostic(member, UnusedKind.Local, createDiagnosticForNode(member.name!, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol)));
3057130573
}
3057230574
break;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @noUnusedLocals: false
4+
////class greeter {
5+
//// [|private greeting: string;|]
6+
////}
7+
8+
verify.codeFix({
9+
description: "Remove unused declaration for: 'greeting'",
10+
newRangeContent: "",
11+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @noUnusedLocals: true
4+
// @target: esnext
5+
////declare class greeter {
6+
//// #private;
7+
//// private name;
8+
////}
9+
10+
verify.noErrors()

0 commit comments

Comments
 (0)