From 76ce10d1821e9e9a7efaceeffe88ec94d1519f44 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 11 Feb 2015 10:49:56 -0800 Subject: [PATCH 1/3] Addressing CR feedback --- src/compiler/types.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/compiler/types.ts b/src/compiler/types.ts index eb28e2ddacd..83cd99392c0 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1270,19 +1270,19 @@ module ts { members?: SymbolTable; // Class, interface or literal instance members exports?: SymbolTable; // Module exports exportSymbol?: Symbol; // Exported symbol associated with this symbol - valueDeclaration?: Declaration // First value declaration of the symbol, - constEnumOnlyModule?: boolean // For modules - if true - module contains only const enums or other modules with only const enums. + valueDeclaration?: Declaration // First value declaration of the symbol + constEnumOnlyModule?: boolean // True if module contains only const enums or other modules with only const enums } export interface SymbolLinks { - target?: Symbol; // Resolved (non-alias) target of an alias - type?: Type; // Type of value symbol - declaredType?: Type; // Type of class, interface, enum, or type parameter - mapper?: TypeMapper; // Type mapper for instantiation alias - referenced?: boolean; // True if alias symbol has been referenced as a value - exportAssignChecked?: boolean; // True if export assignment was checked - exportAssignSymbol?: Symbol; // Symbol exported from external module - unionType?: UnionType; // Containing union type for union property + target?: Symbol; // Resolved (non-alias) target of an alias + type?: Type; // Type of value symbol + declaredType?: Type; // Type of class, interface, enum, or type parameter + mapper?: TypeMapper; // Type mapper for instantiation alias + referenced?: boolean; // True if alias symbol has been referenced as a value + exportAssignmentChecked?: boolean; // True if export assignment was checked + exportAssignmentSymbol?: Symbol; // Symbol exported from external module + unionType?: UnionType; // Containing union type for union property } export interface TransientSymbol extends Symbol, SymbolLinks { } From 9cae8e7a81e4c95cf6a3a9015741ce144a81d447 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 11 Feb 2015 10:51:59 -0800 Subject: [PATCH 2/3] Small fix to recording of generated names --- src/compiler/checker.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 230d7df4110..11b9de61b26 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -641,12 +641,12 @@ module ts { function getExportAssignmentSymbol(symbol: Symbol): Symbol { checkTypeOfExportAssignmentSymbol(symbol); - return getSymbolLinks(symbol).exportAssignSymbol; + return getSymbolLinks(symbol).exportAssignmentSymbol; } function checkTypeOfExportAssignmentSymbol(containerSymbol: Symbol): void { var symbolLinks = getSymbolLinks(containerSymbol); - if (!symbolLinks.exportAssignChecked) { + if (!symbolLinks.exportAssignmentChecked) { var exportInformation = collectExportInformationForSourceFileOrModule(containerSymbol); if (exportInformation.exportAssignments.length) { if (exportInformation.exportAssignments.length > 1) { @@ -666,9 +666,9 @@ module ts { var meaning = SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace; var exportSymbol = resolveName(node, node.exportName.text, meaning, Diagnostics.Cannot_find_name_0, node.exportName); } - symbolLinks.exportAssignSymbol = exportSymbol || unknownSymbol; + symbolLinks.exportAssignmentSymbol = exportSymbol || unknownSymbol; } - symbolLinks.exportAssignChecked = true; + symbolLinks.exportAssignmentChecked = true; } } @@ -10190,7 +10190,7 @@ module ts { if (baseName.charCodeAt(0) !== CharacterCodes._) { var baseName = "_" + baseName; if (!isExistingName(baseName)) { - return baseName; + return generatedNames[baseName] = baseName; } } // Find the first unique '_name_n', where n is a positive number @@ -10201,14 +10201,13 @@ module ts { while (true) { name = baseName + i; if (!isExistingName(name)) { - return name; + return generatedNames[name] = name; } i++; } } function assignGeneratedName(node: Node, name: string) { - generatedNames[name] = name; getNodeLinks(node).generatedName = unescapeIdentifier(name); } From 3b39e9f4a153d9d9c08d27ed141c075c856faef2 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 11 Feb 2015 10:52:29 -0800 Subject: [PATCH 3/3] Accepting new baselines --- tests/baselines/reference/APISample_compile.js | 4 ++-- tests/baselines/reference/APISample_compile.types | 8 ++++---- tests/baselines/reference/APISample_linter.js | 4 ++-- tests/baselines/reference/APISample_linter.types | 8 ++++---- tests/baselines/reference/APISample_transform.js | 4 ++-- tests/baselines/reference/APISample_transform.types | 8 ++++---- tests/baselines/reference/APISample_watcher.js | 4 ++-- tests/baselines/reference/APISample_watcher.types | 8 ++++---- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 271ab680ea3..eeb78ce8250 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -1001,8 +1001,8 @@ declare module "typescript" { declaredType?: Type; mapper?: TypeMapper; referenced?: boolean; - exportAssignChecked?: boolean; - exportAssignSymbol?: Symbol; + exportAssignmentChecked?: boolean; + exportAssignmentSymbol?: Symbol; unionType?: UnionType; } interface TransientSymbol extends Symbol, SymbolLinks { diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index 2274dbaf793..b85d0132a04 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -3236,11 +3236,11 @@ declare module "typescript" { referenced?: boolean; >referenced : boolean - exportAssignChecked?: boolean; ->exportAssignChecked : boolean + exportAssignmentChecked?: boolean; +>exportAssignmentChecked : boolean - exportAssignSymbol?: Symbol; ->exportAssignSymbol : Symbol + exportAssignmentSymbol?: Symbol; +>exportAssignmentSymbol : Symbol >Symbol : Symbol unionType?: UnionType; diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index 6d22636f160..1a5e6520805 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -1032,8 +1032,8 @@ declare module "typescript" { declaredType?: Type; mapper?: TypeMapper; referenced?: boolean; - exportAssignChecked?: boolean; - exportAssignSymbol?: Symbol; + exportAssignmentChecked?: boolean; + exportAssignmentSymbol?: Symbol; unionType?: UnionType; } interface TransientSymbol extends Symbol, SymbolLinks { diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 4b89311ad13..f8f4b6bd199 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -3380,11 +3380,11 @@ declare module "typescript" { referenced?: boolean; >referenced : boolean - exportAssignChecked?: boolean; ->exportAssignChecked : boolean + exportAssignmentChecked?: boolean; +>exportAssignmentChecked : boolean - exportAssignSymbol?: Symbol; ->exportAssignSymbol : Symbol + exportAssignmentSymbol?: Symbol; +>exportAssignmentSymbol : Symbol >Symbol : Symbol unionType?: UnionType; diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index f190a748a12..295d45c220e 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -1033,8 +1033,8 @@ declare module "typescript" { declaredType?: Type; mapper?: TypeMapper; referenced?: boolean; - exportAssignChecked?: boolean; - exportAssignSymbol?: Symbol; + exportAssignmentChecked?: boolean; + exportAssignmentSymbol?: Symbol; unionType?: UnionType; } interface TransientSymbol extends Symbol, SymbolLinks { diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index f7c67bdf137..90b06ebb8ca 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -3332,11 +3332,11 @@ declare module "typescript" { referenced?: boolean; >referenced : boolean - exportAssignChecked?: boolean; ->exportAssignChecked : boolean + exportAssignmentChecked?: boolean; +>exportAssignmentChecked : boolean - exportAssignSymbol?: Symbol; ->exportAssignSymbol : Symbol + exportAssignmentSymbol?: Symbol; +>exportAssignmentSymbol : Symbol >Symbol : Symbol unionType?: UnionType; diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index ea1869d0ce8..d083c54673e 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -1070,8 +1070,8 @@ declare module "typescript" { declaredType?: Type; mapper?: TypeMapper; referenced?: boolean; - exportAssignChecked?: boolean; - exportAssignSymbol?: Symbol; + exportAssignmentChecked?: boolean; + exportAssignmentSymbol?: Symbol; unionType?: UnionType; } interface TransientSymbol extends Symbol, SymbolLinks { diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index a5855217ea9..e4cffc16aa1 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -3505,11 +3505,11 @@ declare module "typescript" { referenced?: boolean; >referenced : boolean - exportAssignChecked?: boolean; ->exportAssignChecked : boolean + exportAssignmentChecked?: boolean; +>exportAssignmentChecked : boolean - exportAssignSymbol?: Symbol; ->exportAssignSymbol : Symbol + exportAssignmentSymbol?: Symbol; +>exportAssignmentSymbol : Symbol >Symbol : Symbol unionType?: UnionType;