From f68197f52043ce88e7751f4942e50ffb4f37f6a0 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 7 Oct 2014 14:36:44 -0700 Subject: [PATCH] Properly use a bit test instead of equality, due to intersecting meanings. --- src/services/services.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 2d7f2cce00d..246aaad201a 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2405,7 +2405,7 @@ module ts { totalParts.push(spacePart()); totalParts.push.apply(totalParts, typeInfoResolver.symbolToDisplayParts(symbol, sourceFile)); } - else if (getMeaningFromLocation(node) === SemanticMeaning.Type) { + else if (getMeaningFromLocation(node) & SemanticMeaning.Type) { if (symbol.flags & SymbolFlags.Interface) { totalParts.push(keywordPart(SyntaxKind.InterfaceKeyword)); totalParts.push(spacePart()); @@ -4107,7 +4107,7 @@ module ts { return result; - function classifySymbol(symbol: Symbol, isInTypePosition: boolean) { + function classifySymbol(symbol: Symbol, meaningAtPosition: SemanticMeaning) { var flags = symbol.getFlags(); if (flags & SymbolFlags.Class) { @@ -4119,7 +4119,7 @@ module ts { else if (flags & SymbolFlags.Module) { return ClassificationTypeNames.moduleName; } - else if (isInTypePosition) { + else if (meaningAtPosition & SemanticMeaning.Type) { if (flags & SymbolFlags.Interface) { return ClassificationTypeNames.interfaceName; } @@ -4135,7 +4135,7 @@ module ts { if (node.kind === SyntaxKind.Identifier && node.getWidth() > 0) { var symbol = typeInfoResolver.getSymbolInfo(node); if (symbol) { - var type = classifySymbol(symbol, getMeaningFromLocation(node) === SemanticMeaning.Type); + var type = classifySymbol(symbol, getMeaningFromLocation(node)); if (type) { result.push({ textSpan: new TypeScript.TextSpan(node.getStart(), node.getWidth()),