Mark references to dynamically-named properties as used (#21010)

* Mark references to dynamically-named properties as used

* Avoid showing the symbol ID

* Use symbolToString instead of showSymbol
This commit is contained in:
Andy
2018-01-08 16:44:58 -08:00
committed by Mohamed Hegazy
parent 7e6315075d
commit 37d4f6a69d
6 changed files with 129 additions and 2 deletions

View File

@@ -8252,6 +8252,7 @@ namespace ts {
const prop = getPropertyOfType(objectType, propName);
if (prop) {
if (accessExpression) {
markPropertyAsReferenced(prop, accessExpression, /*isThisAccess*/ accessExpression.expression.kind === SyntaxKind.ThisKeyword);
if (isAssignmentTarget(accessExpression) && (isReferenceToReadonlyEntity(accessExpression, prop) || isReferenceThroughNamespaceImport(accessExpression))) {
error(accessExpression.argumentExpression, Diagnostics.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property, symbolToString(prop));
return unknownType;
@@ -21356,8 +21357,9 @@ namespace ts {
// Already would have reported an error on the getter.
break;
}
if (!member.symbol.isReferenced && hasModifier(member, ModifierFlags.Private)) {
error(member.name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolName(member.symbol));
const symbol = getSymbolOfNode(member);
if (!symbol.isReferenced && hasModifier(member, ModifierFlags.Private)) {
error(member.name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol));
}
break;
case SyntaxKind.Constructor: