@@ -13230,7 +13230,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1323013230 * @param lateSymbols The late-bound symbols of the parent.
1323113231 * @param decl The member to bind.
1323213232 */
13233- function lateBindMember(parent: Symbol, earlySymbols: SymbolTable | undefined, lateSymbols: Map<__String, TransientSymbol>, decl: LateBoundDeclaration | LateBoundBinaryExpressionDeclaration, isFromAssignmentDeclarationMember = false ) {
13233+ function lateBindMember(parent: Symbol, earlySymbols: SymbolTable | undefined, lateSymbols: Map<__String, TransientSymbol>, decl: LateBoundDeclaration | LateBoundBinaryExpressionDeclaration) {
1323413234 Debug.assert(!!decl.symbol, "The member is expected to have a symbol.");
1323513235 const links = getNodeLinks(decl);
1323613236 if (!links.resolvedSymbol) {
@@ -13245,13 +13245,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1324513245
1324613246 // Get or add a late-bound symbol for the member. This allows us to merge late-bound accessor declarations.
1324713247 let lateSymbol = lateSymbols.get(memberName);
13248- if (isFromAssignmentDeclarationMember && lateSymbol) {
13249- return links.resolvedSymbol = lateSymbol;
13250- }
1325113248 if (!lateSymbol) lateSymbols.set(memberName, lateSymbol = createSymbol(SymbolFlags.None, memberName, CheckFlags.Late));
1325213249
1325313250 // Report an error if there's a symbol declaration with the same name and conflicting flags.
13254- const earlySymbol = earlySymbols? .get(memberName);
13251+ const earlySymbol = earlySymbols && earlySymbols .get(memberName);
1325513252 // Duplicate property declarations of classes are checked in checkClassForDuplicateDeclarations.
1325613253 if (!(parent.flags & SymbolFlags.Class) && lateSymbol.flags & getExcludedSymbolFlags(symbolFlags)) {
1325713254 // If we have an existing early-bound member, combine its declarations so that we can
@@ -13343,7 +13340,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1334313340 || assignmentKind === AssignmentDeclarationKind.Prototype; // A straight `Prototype` assignment probably can never have a computed name
1334413341 if (isStatic === !isInstanceMember) {
1334513342 if (hasLateBindableName(member)) {
13346- lateBindMember(symbol, earlySymbols, lateSymbols, member, /*isFromAssignmentDeclarationMember*/ true );
13343+ lateBindMember(symbol, earlySymbols, lateSymbols, member);
1334713344 }
1334813345 }
1334913346 }
0 commit comments