@@ -138,9 +138,9 @@ namespace ts {
138
138
139
139
/** Create a unique temporary variable. */
140
140
export function createTempVariable ( recordTempVariable : ( ( node : Identifier ) => void ) | undefined ) : Identifier ;
141
- /* @internal */ export function createTempVariable ( recordTempVariable : ( ( node : Identifier ) => void ) | undefined , reservedInNestedScopes : boolean ) : Identifier ; // tslint:disable-line unified-signatures
142
- export function createTempVariable ( recordTempVariable : ( ( node : Identifier ) => void ) | undefined , reservedInNestedScopes ?: boolean ) : Identifier {
143
- const name = createIdentifier ( "" ) ;
141
+ /* @internal */ export function createTempVariable ( recordTempVariable : ( ( node : Identifier ) => void ) | undefined , reservedInNestedScopes : boolean ) : GeneratedIdentifier ; // tslint:disable-line unified-signatures
142
+ export function createTempVariable ( recordTempVariable : ( ( node : Identifier ) => void ) | undefined , reservedInNestedScopes ?: boolean ) : GeneratedIdentifier {
143
+ const name = createIdentifier ( "" ) as GeneratedIdentifier ;
144
144
name . autoGenerateFlags = GeneratedIdentifierFlags . Auto ;
145
145
name . autoGenerateId = nextAutoGenerateId ;
146
146
nextAutoGenerateId ++ ;
@@ -171,9 +171,11 @@ namespace ts {
171
171
return name ;
172
172
}
173
173
174
+ /* @internal */ export function createOptimisticUniqueName ( text : string ) : GeneratedIdentifier ;
174
175
/** Create a unique name based on the supplied text. */
175
- export function createOptimisticUniqueName ( text : string ) : Identifier {
176
- const name = createIdentifier ( text ) ;
176
+ export function createOptimisticUniqueName ( text : string ) : Identifier ;
177
+ export function createOptimisticUniqueName ( text : string ) : GeneratedIdentifier {
178
+ const name = createIdentifier ( text ) as GeneratedIdentifier ;
177
179
name . autoGenerateFlags = GeneratedIdentifierFlags . Unique | GeneratedIdentifierFlags . Optimistic ;
178
180
name . autoGenerateId = nextAutoGenerateId ;
179
181
nextAutoGenerateId ++ ;
@@ -183,7 +185,7 @@ namespace ts {
183
185
/** Create a unique name based on the supplied text. This does not consider names injected by the transformer. */
184
186
export function createFileLevelUniqueName ( text : string ) : Identifier {
185
187
const name = createOptimisticUniqueName ( text ) ;
186
- name . autoGenerateFlags ! |= GeneratedIdentifierFlags . FileLevel ;
188
+ name . autoGenerateFlags |= GeneratedIdentifierFlags . FileLevel ;
187
189
return name ;
188
190
}
189
191
@@ -1763,9 +1765,9 @@ namespace ts {
1763
1765
: node ;
1764
1766
}
1765
1767
1766
- export function createVariableDeclarationList ( declarations : ReadonlyArray < VariableDeclaration > , flags ?: NodeFlags ) {
1768
+ export function createVariableDeclarationList ( declarations : ReadonlyArray < VariableDeclaration > , flags = NodeFlags . None ) {
1767
1769
const node = < VariableDeclarationList > createSynthesizedNode ( SyntaxKind . VariableDeclarationList ) ;
1768
- node . flags |= flags ! & NodeFlags . BlockScoped ;
1770
+ node . flags |= flags & NodeFlags . BlockScoped ;
1769
1771
node . declarations = createNodeArray ( declarations ) ;
1770
1772
return node ;
1771
1773
}
@@ -1947,9 +1949,9 @@ namespace ts {
1947
1949
: node ;
1948
1950
}
1949
1951
1950
- export function createModuleDeclaration ( decorators : ReadonlyArray < Decorator > | undefined , modifiers : ReadonlyArray < Modifier > | undefined , name : ModuleName , body : ModuleBody | undefined , flags ?: NodeFlags ) {
1952
+ export function createModuleDeclaration ( decorators : ReadonlyArray < Decorator > | undefined , modifiers : ReadonlyArray < Modifier > | undefined , name : ModuleName , body : ModuleBody | undefined , flags = NodeFlags . None ) {
1951
1953
const node = < ModuleDeclaration > createSynthesizedNode ( SyntaxKind . ModuleDeclaration ) ;
1952
- node . flags |= flags ! & ( NodeFlags . Namespace | NodeFlags . NestedNamespace | NodeFlags . GlobalAugmentation ) ;
1954
+ node . flags |= flags & ( NodeFlags . Namespace | NodeFlags . NestedNamespace | NodeFlags . GlobalAugmentation ) ;
1953
1955
node . decorators = asNodeArray ( decorators ) ;
1954
1956
node . modifiers = asNodeArray ( modifiers ) ;
1955
1957
node . name = name ;
@@ -2505,7 +2507,7 @@ namespace ts {
2505
2507
/* @internal */
2506
2508
export function createEndOfDeclarationMarker ( original : Node ) {
2507
2509
const node = < EndOfDeclarationMarker > createSynthesizedNode ( SyntaxKind . EndOfDeclarationMarker ) ;
2508
- node . emitNode = { } ;
2510
+ node . emitNode = { } as EmitNode ;
2509
2511
node . original = original ;
2510
2512
return node ;
2511
2513
}
@@ -2517,7 +2519,7 @@ namespace ts {
2517
2519
/* @internal */
2518
2520
export function createMergeDeclarationMarker ( original : Node ) {
2519
2521
const node = < MergeDeclarationMarker > createSynthesizedNode ( SyntaxKind . MergeDeclarationMarker ) ;
2520
- node . emitNode = { } ;
2522
+ node . emitNode = { } as EmitNode ;
2521
2523
node . original = original ;
2522
2524
return node ;
2523
2525
}
@@ -2724,21 +2726,21 @@ namespace ts {
2724
2726
* various transient transformation properties.
2725
2727
*/
2726
2728
/* @internal */
2727
- export function getOrCreateEmitNode ( node : Node ) {
2729
+ export function getOrCreateEmitNode ( node : Node ) : EmitNode {
2728
2730
if ( ! node . emitNode ) {
2729
2731
if ( isParseTreeNode ( node ) ) {
2730
2732
// To avoid holding onto transformation artifacts, we keep track of any
2731
2733
// parse tree node we are annotating. This allows us to clean them up after
2732
2734
// all transformations have completed.
2733
2735
if ( node . kind === SyntaxKind . SourceFile ) {
2734
- return node . emitNode = { annotatedNodes : [ node ] } ;
2736
+ return node . emitNode = { annotatedNodes : [ node ] } as EmitNode ;
2735
2737
}
2736
2738
2737
2739
const sourceFile = getSourceFileOfNode ( node ) ;
2738
2740
getOrCreateEmitNode ( sourceFile ) . annotatedNodes ! . push ( node ) ;
2739
2741
}
2740
2742
2741
- node . emitNode = { } ;
2743
+ node . emitNode = { } as EmitNode ;
2742
2744
}
2743
2745
2744
2746
return node . emitNode ;
@@ -2766,7 +2768,7 @@ namespace ts {
2766
2768
/* @internal */
2767
2769
export function addEmitFlags < T extends Node > ( node : T , emitFlags : EmitFlags ) {
2768
2770
const emitNode = getOrCreateEmitNode ( node ) ;
2769
- emitNode . flags = emitNode . flags ! | emitFlags ;
2771
+ emitNode . flags = emitNode . flags | emitFlags ;
2770
2772
return node ;
2771
2773
}
2772
2774
@@ -2994,7 +2996,7 @@ namespace ts {
2994
2996
helpers,
2995
2997
startsOnNewLine,
2996
2998
} = sourceEmitNode ;
2997
- if ( ! destEmitNode ) destEmitNode = { } ;
2999
+ if ( ! destEmitNode ) destEmitNode = { } as EmitNode ;
2998
3000
// We are using `.slice()` here in case `destEmitNode.leadingComments` is pushed to later.
2999
3001
if ( leadingComments ) destEmitNode . leadingComments = addRange ( leadingComments . slice ( ) , destEmitNode . leadingComments ) ;
3000
3002
if ( trailingComments ) destEmitNode . trailingComments = addRange ( trailingComments . slice ( ) , destEmitNode . trailingComments ) ;
@@ -3061,7 +3063,7 @@ namespace ts {
3061
3063
: createElementAccess ( target , memberName ) ,
3062
3064
memberName
3063
3065
) ;
3064
- getOrCreateEmitNode ( expression ) . flags ! |= EmitFlags . NoNestedSourceMaps ;
3066
+ getOrCreateEmitNode ( expression ) . flags |= EmitFlags . NoNestedSourceMaps ;
3065
3067
return expression ;
3066
3068
}
3067
3069
}
@@ -3705,13 +3707,13 @@ namespace ts {
3705
3707
return getName ( node , allowComments , allowSourceMaps ) ;
3706
3708
}
3707
3709
3708
- function getName ( node : Declaration , allowComments ?: boolean , allowSourceMaps ?: boolean , emitFlags ? : EmitFlags ) {
3710
+ function getName ( node : Declaration , allowComments ?: boolean , allowSourceMaps ?: boolean , emitFlags : EmitFlags = 0 ) {
3709
3711
const nodeName = getNameOfDeclaration ( node ) ;
3710
3712
if ( nodeName && isIdentifier ( nodeName ) && ! isGeneratedIdentifier ( nodeName ) ) {
3711
3713
const name = getMutableClone ( nodeName ) ;
3712
- emitFlags ! |= getEmitFlags ( nodeName ) ;
3713
- if ( ! allowSourceMaps ) emitFlags ! |= EmitFlags . NoSourceMap ;
3714
- if ( ! allowComments ) emitFlags ! |= EmitFlags . NoComments ;
3714
+ emitFlags |= getEmitFlags ( nodeName ) ;
3715
+ if ( ! allowSourceMaps ) emitFlags |= EmitFlags . NoSourceMap ;
3716
+ if ( ! allowComments ) emitFlags |= EmitFlags . NoComments ;
3715
3717
if ( emitFlags ) setEmitFlags ( name , emitFlags ) ;
3716
3718
return name ;
3717
3719
}
0 commit comments