diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index faac9105e29..1ab1a09f71e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -11,11 +11,6 @@ module ts { var nextNodeId = 1; var nextMergeId = 1; - // unknownSymbol can survive across different type checking sessions (e.g. in the language service) - // We use referential comparison to know if a symbol is the unknown symbol; creating a new symbol - // every time would defy that purpose. So we need to have a single object to represent the "unknown" symbol. - var unknownSymbol: Symbol; - export function createTypeChecker(program: Program): TypeChecker { var Symbol = objectAllocator.getSymbolConstructor(); @@ -29,12 +24,9 @@ module ts { var undefinedSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "undefined"); var argumentsSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "arguments"); + var unknownSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "unknown"); var resolvingSymbol = createSymbol(SymbolFlags.Transient, "__resolving__"); - if (!unknownSymbol) { - unknownSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "unknown"); - } - var anyType = createIntrinsicType(TypeFlags.Any, "any"); var stringType = createIntrinsicType(TypeFlags.String, "string"); var numberType = createIntrinsicType(TypeFlags.Number, "number");