(node, addDiagnostic)
| 82001 | return ts.isIdentifier(node) && ts.idText(node).charCodeAt(0) === 95 /* CharacterCodes._ */; |
| 82002 | } |
| 82003 | function checkUnusedClassMembers(node, addDiagnostic) { |
| 82004 | for (var _i = 0, _a = node.members; _i < _a.length; _i++) { |
| 82005 | var member = _a[_i]; |
| 82006 | switch (member.kind) { |
| 82007 | case 169 /* SyntaxKind.MethodDeclaration */: |
| 82008 | case 167 /* SyntaxKind.PropertyDeclaration */: |
| 82009 | case 172 /* SyntaxKind.GetAccessor */: |
| 82010 | case 173 /* SyntaxKind.SetAccessor */: |
| 82011 | if (member.kind === 173 /* SyntaxKind.SetAccessor */ && member.symbol.flags & 32768 /* SymbolFlags.GetAccessor */) { |
| 82012 | // Already would have reported an error on the getter. |
| 82013 | break; |
| 82014 | } |
| 82015 | var symbol = getSymbolOfNode(member); |
| 82016 | if (!symbol.isReferenced |
| 82017 | && (ts.hasEffectiveModifier(member, 8 /* ModifierFlags.Private */) || ts.isNamedDeclaration(member) && ts.isPrivateIdentifier(member.name)) |
| 82018 | && !(member.flags & 16777216 /* NodeFlags.Ambient */)) { |
| 82019 | addDiagnostic(member, 0 /* UnusedKind.Local */, ts.createDiagnosticForNode(member.name, ts.Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol))); |
| 82020 | } |
| 82021 | break; |
| 82022 | case 171 /* SyntaxKind.Constructor */: |
| 82023 | for (var _b = 0, _c = member.parameters; _b < _c.length; _b++) { |
| 82024 | var parameter = _c[_b]; |
| 82025 | if (!parameter.symbol.isReferenced && ts.hasSyntacticModifier(parameter, 8 /* ModifierFlags.Private */)) { |
| 82026 | addDiagnostic(parameter, 0 /* UnusedKind.Local */, ts.createDiagnosticForNode(parameter.name, ts.Diagnostics.Property_0_is_declared_but_its_value_is_never_read, ts.symbolName(parameter.symbol))); |
| 82027 | } |
| 82028 | } |
| 82029 | break; |
| 82030 | case 176 /* SyntaxKind.IndexSignature */: |
| 82031 | case 234 /* SyntaxKind.SemicolonClassElement */: |
| 82032 | case 170 /* SyntaxKind.ClassStaticBlockDeclaration */: |
| 82033 | // Can't be private |
| 82034 | break; |
| 82035 | default: |
| 82036 | ts.Debug.fail("Unexpected class member"); |
| 82037 | } |
| 82038 | } |
| 82039 | } |
| 82040 | function checkUnusedInferTypeParameter(node, addDiagnostic) { |
| 82041 | var typeParameter = node.typeParameter; |
| 82042 | if (isTypeParameterUnused(typeParameter)) { |
no test coverage detected