Skip to content

Commit

Permalink
resolveName: remove useless case (#28669)
Browse files Browse the repository at this point in the history
PropertySignature cannot occur in a class.
The condition inside the clause required the parent to be a class, so it was never true.

This removes the case clause and the part of the condition that is now useless.
  • Loading branch information
ajafff authored and RyanCavanaugh committed Apr 25, 2019
1 parent f9d12ed commit d865ea7
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions src/compiler/checker.ts
Expand Up @@ -1409,15 +1409,14 @@ namespace ts {
}
break;
case SyntaxKind.PropertyDeclaration:
case SyntaxKind.PropertySignature:
// TypeScript 1.0 spec (April 2014): 8.4.1
// Initializer expressions for instance member variables are evaluated in the scope
// of the class constructor body but are not permitted to reference parameters or
// local variables of the constructor. This effectively means that entities from outer scopes
// by the same name as a constructor parameter or local variable are inaccessible
// in initializer expressions for instance member variables.
if (isClassLike(location.parent) && !hasModifier(location, ModifierFlags.Static)) {
const ctor = findConstructorDeclaration(location.parent);
if (!hasModifier(location, ModifierFlags.Static)) {
const ctor = findConstructorDeclaration(location.parent as ClassLikeDeclaration);
if (ctor && ctor.locals) {
if (lookup(ctor.locals, name, meaning & SymbolFlags.Value)) {
// Remember the property node, it will be used later to report appropriate error
Expand Down

0 comments on commit d865ea7

Please sign in to comment.