Re-added semantic colorization fix for colliding types colliding in value and namespace space, added a test.

This commit is contained in:
Daniel Rosenwasser 2014-10-09 16:59:49 -07:00
parent 35c9ce1a37
commit b2457bd9b3
3 changed files with 22 additions and 7 deletions

View File

@ -4663,15 +4663,19 @@ module ts {
else if (flags & SymbolFlags.Enum) {
return ClassificationTypeNames.enumName;
}
else if (flags & SymbolFlags.Interface) {
return ClassificationTypeNames.interfaceName;
}
else if (flags & SymbolFlags.TypeParameter) {
return ClassificationTypeNames.typeParameterName;
else if (meaningAtPosition & SemanticMeaning.Type) {
if (flags & SymbolFlags.Interface) {
return ClassificationTypeNames.interfaceName;
}
else if (flags & SymbolFlags.TypeParameter) {
return ClassificationTypeNames.typeParameterName;
}
}
else if (flags & SymbolFlags.Module) {
return ClassificationTypeNames.moduleName;
}
return undefined;
}
function processNode(node: Node) {

View File

@ -8,5 +8,4 @@
//// Thing.toExponential();
var c = classification;
// NOTE: this is *wrong*, but will be fixed shortly.
verify.semanticClassificationsAre(c.interfaceName("Thing"), c.interfaceName("Thing"), c.interfaceName("Thing"));
verify.semanticClassificationsAre(c.interfaceName("Thing"));

View File

@ -0,0 +1,12 @@
/// <reference path="fourslash.ts"/>
////declare module M {
//// interface I {
////
//// }
////}
////
////var M = { I: 10 };
var c = classification;
verify.semanticClassificationsAre(c.moduleName("M"), c.interfaceName("I"), c.moduleName("M"));