@@ -193,7 +193,7 @@ export class Parser extends DiagnosticEmitter {
193
193
namespace : NamespaceDeclaration | null = null
194
194
) : Statement | null {
195
195
var flags = CommonFlags . NONE ;
196
- var startPos : i32 = - 1 ;
196
+ var startPos = - 1 ;
197
197
198
198
// check decorators
199
199
var decorators : DecoratorNode [ ] | null = null ;
@@ -209,10 +209,10 @@ export class Parser extends DiagnosticEmitter {
209
209
}
210
210
211
211
// check modifiers
212
- var exportStart : i32 = 0 ;
213
- var exportEnd : i32 = 0 ;
214
- var defaultStart : i32 = 0 ;
215
- var defaultEnd : i32 = 0 ;
212
+ var exportStart = 0 ;
213
+ var exportEnd = 0 ;
214
+ var defaultStart = 0 ;
215
+ var defaultEnd = 0 ;
216
216
if ( tn . skip ( Token . EXPORT ) ) {
217
217
if ( startPos < 0 ) startPos = tn . tokenPos ;
218
218
flags |= CommonFlags . EXPORT ;
@@ -224,8 +224,8 @@ export class Parser extends DiagnosticEmitter {
224
224
}
225
225
}
226
226
227
- var declareStart : i32 = 0 ;
228
- var declareEnd : i32 = 0 ;
227
+ var declareStart = 0 ;
228
+ var declareEnd = 0 ;
229
229
var contextIsAmbient = namespace != null && namespace . is ( CommonFlags . AMBIENT ) ;
230
230
if ( tn . skip ( Token . DECLARE ) ) {
231
231
if ( contextIsAmbient ) {
@@ -700,7 +700,7 @@ export class Parser extends DiagnosticEmitter {
700
700
} else {
701
701
isSignature = false ; // not yet known
702
702
do {
703
- let paramStart : i32 = - 1 ;
703
+ let paramStart = - 1 ;
704
704
let kind = ParameterKind . DEFAULT ;
705
705
if ( tn . skip ( Token . DOT_DOT_DOT ) ) {
706
706
paramStart = tn . tokenPos ;
@@ -713,17 +713,17 @@ export class Parser extends DiagnosticEmitter {
713
713
if ( tn . skip ( Token . COLON ) ) {
714
714
isSignature = true ;
715
715
tn . discard ( state ) ;
716
- let t = this . parseType ( tn , false ) ;
717
- if ( ! t ) return null ;
718
- if ( t . kind != NodeKind . NAMEDTYPE ) {
716
+ let type = this . parseType ( tn , false ) ;
717
+ if ( ! type ) return null ;
718
+ if ( type . kind != NodeKind . NAMEDTYPE ) {
719
719
this . error (
720
720
DiagnosticCode . Identifier_expected ,
721
- t . range
721
+ type . range
722
722
) ;
723
723
this . tryParseSignatureIsSignature = true ;
724
724
return null ;
725
725
}
726
- thisType = < NamedTypeNode > t ;
726
+ thisType = < NamedTypeNode > type ;
727
727
} else {
728
728
tn . reset ( state ) ;
729
729
this . tryParseSignatureIsSignature = false ;
@@ -981,7 +981,7 @@ export class Parser extends DiagnosticEmitter {
981
981
}
982
982
}
983
983
var range = Range . join ( identifier . range , tn . range ( ) ) ;
984
- if ( ( flags & CommonFlags . DEFINITELY_ASSIGNED ) != 0 && initializer !== null ) {
984
+ if ( initializer !== null && ( flags & CommonFlags . DEFINITELY_ASSIGNED ) != 0 ) {
985
985
this . error (
986
986
DiagnosticCode . A_definite_assignment_assertion_is_not_permitted_in_this_context ,
987
987
range
@@ -1154,29 +1154,29 @@ export class Parser extends DiagnosticEmitter {
1154
1154
) ;
1155
1155
let extendsType : NamedTypeNode | null = null ;
1156
1156
if ( tn . skip ( Token . EXTENDS ) ) {
1157
- let t = this . parseType ( tn ) ;
1158
- if ( ! t ) return null ;
1159
- if ( t . kind != NodeKind . NAMEDTYPE ) {
1157
+ let type = this . parseType ( tn ) ;
1158
+ if ( ! type ) return null ;
1159
+ if ( type . kind != NodeKind . NAMEDTYPE ) {
1160
1160
this . error (
1161
1161
DiagnosticCode . Identifier_expected ,
1162
- t . range
1162
+ type . range
1163
1163
) ;
1164
1164
return null ;
1165
1165
}
1166
- extendsType = < NamedTypeNode > t ;
1166
+ extendsType = < NamedTypeNode > type ;
1167
1167
}
1168
1168
let defaultType : NamedTypeNode | null = null ;
1169
1169
if ( tn . skip ( Token . EQUALS ) ) {
1170
- let t = this . parseType ( tn ) ;
1171
- if ( ! t ) return null ;
1172
- if ( t . kind != NodeKind . NAMEDTYPE ) {
1170
+ let type = this . parseType ( tn ) ;
1171
+ if ( ! type ) return null ;
1172
+ if ( type . kind != NodeKind . NAMEDTYPE ) {
1173
1173
this . error (
1174
1174
DiagnosticCode . Identifier_expected ,
1175
- t . range
1175
+ type . range
1176
1176
) ;
1177
1177
return null ;
1178
1178
}
1179
- defaultType = < NamedTypeNode > t ;
1179
+ defaultType = < NamedTypeNode > type ;
1180
1180
}
1181
1181
return Node . createTypeParameter (
1182
1182
identifier ,
@@ -1414,7 +1414,7 @@ export class Parser extends DiagnosticEmitter {
1414
1414
}
1415
1415
1416
1416
var name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1417
- var signatureStart : i32 = - 1 ;
1417
+ var signatureStart = - 1 ;
1418
1418
1419
1419
var typeParameters : TypeParameterNode [ ] | null = null ;
1420
1420
if ( tn . skip ( Token . LESSTHAN ) ) {
@@ -1674,16 +1674,16 @@ export class Parser extends DiagnosticEmitter {
1674
1674
1675
1675
var extendsType : NamedTypeNode | null = null ;
1676
1676
if ( tn . skip ( Token . EXTENDS ) ) {
1677
- let t = this . parseType ( tn ) ;
1678
- if ( ! t ) return null ;
1679
- if ( t . kind != NodeKind . NAMEDTYPE ) {
1677
+ let type = this . parseType ( tn ) ;
1678
+ if ( ! type ) return null ;
1679
+ if ( type . kind != NodeKind . NAMEDTYPE ) {
1680
1680
this . error (
1681
1681
DiagnosticCode . Identifier_expected ,
1682
- t . range
1682
+ type . range
1683
1683
) ;
1684
1684
return null ;
1685
1685
}
1686
- extendsType = < NamedTypeNode > t ;
1686
+ extendsType = < NamedTypeNode > type ;
1687
1687
}
1688
1688
1689
1689
var implementsTypes : NamedTypeNode [ ] | null = null ;
@@ -1852,7 +1852,7 @@ export class Parser extends DiagnosticEmitter {
1852
1852
if ( ! decorators ) decorators = new Array ( ) ;
1853
1853
decorators . push ( decorator ) ;
1854
1854
} while ( tn . skip ( Token . AT ) ) ;
1855
- if ( decorators !== null && isInterface ) {
1855
+ if ( isInterface && decorators !== null ) {
1856
1856
this . error (
1857
1857
DiagnosticCode . Decorators_are_not_valid_here ,
1858
1858
Range . join ( decorators [ 0 ] . range , decorators [ decorators . length - 1 ] . range )
@@ -1940,8 +1940,8 @@ export class Parser extends DiagnosticEmitter {
1940
1940
if ( parent . flags & CommonFlags . GENERIC ) flags |= CommonFlags . GENERIC_CONTEXT ;
1941
1941
}
1942
1942
1943
- var readonlyStart : i32 = 0 ;
1944
- var readonlyEnd : i32 = 0 ;
1943
+ var readonlyStart = 0 ;
1944
+ var readonlyEnd = 0 ;
1945
1945
if ( tn . peek ( ) == Token . READONLY ) {
1946
1946
let state = tn . mark ( ) ;
1947
1947
tn . next ( ) ;
@@ -1960,11 +1960,11 @@ export class Parser extends DiagnosticEmitter {
1960
1960
var state = tn . mark ( ) ;
1961
1961
var isConstructor = false ;
1962
1962
var isGetter = false ;
1963
- var getStart : i32 = 0 ;
1964
- var getEnd : i32 = 0 ;
1963
+ var getStart = 0 ;
1964
+ var getEnd = 0 ;
1965
1965
var isSetter = false ;
1966
- var setStart : i32 = 0 ;
1967
- var setEnd : i32 = 0 ;
1966
+ var setStart = 0 ;
1967
+ var setEnd = 0 ;
1968
1968
if ( ! isInterface ) {
1969
1969
if ( tn . skip ( Token . GET ) ) {
1970
1970
if ( tn . peek ( true , IdentifierHandling . PREFER ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
@@ -2023,11 +2023,12 @@ export class Parser extends DiagnosticEmitter {
2023
2023
}
2024
2024
}
2025
2025
2026
+ var isGetterOrSetter = isGetter || isSetter ;
2026
2027
var name : IdentifierExpression ;
2027
2028
if ( isConstructor ) {
2028
2029
name = Node . createConstructorExpression ( tn . range ( ) ) ;
2029
2030
} else {
2030
- if ( ! ( isGetter || isSetter ) && tn . skip ( Token . OPENBRACKET ) ) {
2031
+ if ( ! isGetterOrSetter && tn . skip ( Token . OPENBRACKET ) ) {
2031
2032
if ( ! startPos ) startPos = tn . tokenPos ;
2032
2033
// TODO: also handle symbols, which might have some of these modifiers
2033
2034
if ( flags & CommonFlags . PUBLIC ) {
@@ -2091,7 +2092,7 @@ export class Parser extends DiagnosticEmitter {
2091
2092
DiagnosticCode . Type_parameters_cannot_appear_on_a_constructor_declaration ,
2092
2093
tn . range ( typeParametersStart , tn . pos )
2093
2094
) ; // recoverable
2094
- } else if ( isGetter || isSetter ) {
2095
+ } else if ( isGetterOrSetter ) {
2095
2096
this . error (
2096
2097
DiagnosticCode . An_accessor_cannot_have_type_parameters ,
2097
2098
tn . range ( typeParametersStart , tn . pos )
@@ -2236,7 +2237,7 @@ export class Parser extends DiagnosticEmitter {
2236
2237
name . range
2237
2238
) ;
2238
2239
2239
- } else if ( isGetter || isSetter ) {
2240
+ } else if ( isGetterOrSetter ) {
2240
2241
this . error (
2241
2242
DiagnosticCode . Function_implementation_is_missing_or_not_immediately_following_the_declaration ,
2242
2243
name . range
@@ -3246,7 +3247,11 @@ export class Parser extends DiagnosticEmitter {
3246
3247
if ( ! label ) return null ;
3247
3248
if ( tn . skip ( Token . COLON ) ) {
3248
3249
statements = new Array < Statement > ( ) ;
3249
- while ( tn . peek ( ) != Token . CASE && tn . nextToken != Token . DEFAULT && tn . nextToken != Token . CLOSEBRACE ) {
3250
+ while (
3251
+ tn . peek ( ) != Token . CASE &&
3252
+ tn . nextToken != Token . DEFAULT &&
3253
+ tn . nextToken != Token . CLOSEBRACE
3254
+ ) {
3250
3255
statement = this . parseStatement ( tn ) ;
3251
3256
if ( ! statement ) return null ;
3252
3257
statements . push ( statement ) ;
@@ -3264,7 +3269,11 @@ export class Parser extends DiagnosticEmitter {
3264
3269
} else if ( tn . skip ( Token . DEFAULT ) ) {
3265
3270
if ( tn . skip ( Token . COLON ) ) {
3266
3271
statements = new Array < Statement > ( ) ;
3267
- while ( tn . peek ( ) != Token . CASE && tn . nextToken != Token . DEFAULT && tn . nextToken != Token . CLOSEBRACE ) {
3272
+ while (
3273
+ tn . peek ( ) != Token . CASE &&
3274
+ tn . nextToken != Token . DEFAULT &&
3275
+ tn . nextToken != Token . CLOSEBRACE
3276
+ ) {
3268
3277
statement = this . parseStatement ( tn ) ;
3269
3278
if ( ! statement ) return null ;
3270
3279
statements . push ( statement ) ;
@@ -3544,8 +3553,7 @@ export class Parser extends DiagnosticEmitter {
3544
3553
let typeArguments : TypeNode [ ] | null = null ;
3545
3554
let arguments_ : Expression [ ] | null = null ;
3546
3555
if (
3547
- tn . skip ( Token . OPENPAREN )
3548
- ||
3556
+ tn . skip ( Token . OPENPAREN ) ||
3549
3557
( typeArguments = this . tryParseTypeArgumentsBeforeArguments ( tn ) ) !== null
3550
3558
) {
3551
3559
arguments_ = this . parseArguments ( tn ) ;
@@ -3845,7 +3853,7 @@ export class Parser extends DiagnosticEmitter {
3845
3853
var state = tn . mark ( ) ;
3846
3854
if ( ! tn . skip ( Token . LESSTHAN ) ) return null ;
3847
3855
var start = tn . tokenPos ;
3848
- var typeArguments = new Array < TypeNode > ( ) ;
3856
+ var typeArguments : TypeNode [ ] | null = null ;
3849
3857
do {
3850
3858
if ( tn . peek ( ) === Token . GREATERTHAN ) {
3851
3859
break ;
@@ -3855,12 +3863,13 @@ export class Parser extends DiagnosticEmitter {
3855
3863
tn . reset ( state ) ;
3856
3864
return null ;
3857
3865
}
3858
- typeArguments . push ( type ) ;
3866
+ if ( ! typeArguments ) typeArguments = [ type ] ;
3867
+ else typeArguments . push ( type ) ;
3859
3868
} while ( tn . skip ( Token . COMMA ) ) ;
3860
3869
if ( tn . skip ( Token . GREATERTHAN ) ) {
3861
3870
let end = tn . pos ;
3862
3871
if ( tn . skip ( Token . OPENPAREN ) ) {
3863
- if ( ! typeArguments . length ) {
3872
+ if ( ! typeArguments ) {
3864
3873
this . error (
3865
3874
DiagnosticCode . Type_argument_list_cannot_be_empty ,
3866
3875
tn . range ( start , end )
@@ -4153,9 +4162,9 @@ export class Parser extends DiagnosticEmitter {
4153
4162
) : Expression {
4154
4163
var typeArguments : TypeNode [ ] | null = null ;
4155
4164
while (
4156
- tn . skip ( Token . OPENPAREN )
4157
- ||
4158
- potentiallyGeneric && ( typeArguments = this . tryParseTypeArgumentsBeforeArguments ( tn ) ) !== null
4165
+ tn . skip ( Token . OPENPAREN ) ||
4166
+ potentiallyGeneric &&
4167
+ ( typeArguments = this . tryParseTypeArgumentsBeforeArguments ( tn ) ) !== null
4159
4168
) {
4160
4169
let args = this . parseArguments ( tn ) ;
4161
4170
if ( ! args ) break ;
0 commit comments