@@ -193,7 +193,7 @@ export class Parser extends DiagnosticEmitter {
193193 namespace : NamespaceDeclaration | null = null
194194 ) : Statement | null {
195195 var flags = CommonFlags . NONE ;
196- var startPos : i32 = - 1 ;
196+ var startPos = - 1 ;
197197
198198 // check decorators
199199 var decorators : DecoratorNode [ ] | null = null ;
@@ -209,10 +209,10 @@ export class Parser extends DiagnosticEmitter {
209209 }
210210
211211 // 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 ;
216216 if ( tn . skip ( Token . EXPORT ) ) {
217217 if ( startPos < 0 ) startPos = tn . tokenPos ;
218218 flags |= CommonFlags . EXPORT ;
@@ -224,8 +224,8 @@ export class Parser extends DiagnosticEmitter {
224224 }
225225 }
226226
227- var declareStart : i32 = 0 ;
228- var declareEnd : i32 = 0 ;
227+ var declareStart = 0 ;
228+ var declareEnd = 0 ;
229229 var contextIsAmbient = namespace != null && namespace . is ( CommonFlags . AMBIENT ) ;
230230 if ( tn . skip ( Token . DECLARE ) ) {
231231 if ( contextIsAmbient ) {
@@ -700,7 +700,7 @@ export class Parser extends DiagnosticEmitter {
700700 } else {
701701 isSignature = false ; // not yet known
702702 do {
703- let paramStart : i32 = - 1 ;
703+ let paramStart = - 1 ;
704704 let kind = ParameterKind . DEFAULT ;
705705 if ( tn . skip ( Token . DOT_DOT_DOT ) ) {
706706 paramStart = tn . tokenPos ;
@@ -713,17 +713,17 @@ export class Parser extends DiagnosticEmitter {
713713 if ( tn . skip ( Token . COLON ) ) {
714714 isSignature = true ;
715715 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 ) {
719719 this . error (
720720 DiagnosticCode . Identifier_expected ,
721- t . range
721+ type . range
722722 ) ;
723723 this . tryParseSignatureIsSignature = true ;
724724 return null ;
725725 }
726- thisType = < NamedTypeNode > t ;
726+ thisType = < NamedTypeNode > type ;
727727 } else {
728728 tn . reset ( state ) ;
729729 this . tryParseSignatureIsSignature = false ;
@@ -981,7 +981,7 @@ export class Parser extends DiagnosticEmitter {
981981 }
982982 }
983983 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 ) {
985985 this . error (
986986 DiagnosticCode . A_definite_assignment_assertion_is_not_permitted_in_this_context ,
987987 range
@@ -1154,29 +1154,29 @@ export class Parser extends DiagnosticEmitter {
11541154 ) ;
11551155 let extendsType : NamedTypeNode | null = null ;
11561156 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 ) {
11601160 this . error (
11611161 DiagnosticCode . Identifier_expected ,
1162- t . range
1162+ type . range
11631163 ) ;
11641164 return null ;
11651165 }
1166- extendsType = < NamedTypeNode > t ;
1166+ extendsType = < NamedTypeNode > type ;
11671167 }
11681168 let defaultType : NamedTypeNode | null = null ;
11691169 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 ) {
11731173 this . error (
11741174 DiagnosticCode . Identifier_expected ,
1175- t . range
1175+ type . range
11761176 ) ;
11771177 return null ;
11781178 }
1179- defaultType = < NamedTypeNode > t ;
1179+ defaultType = < NamedTypeNode > type ;
11801180 }
11811181 return Node . createTypeParameter (
11821182 identifier ,
@@ -1414,7 +1414,7 @@ export class Parser extends DiagnosticEmitter {
14141414 }
14151415
14161416 var name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1417- var signatureStart : i32 = - 1 ;
1417+ var signatureStart = - 1 ;
14181418
14191419 var typeParameters : TypeParameterNode [ ] | null = null ;
14201420 if ( tn . skip ( Token . LESSTHAN ) ) {
@@ -1674,16 +1674,16 @@ export class Parser extends DiagnosticEmitter {
16741674
16751675 var extendsType : NamedTypeNode | null = null ;
16761676 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 ) {
16801680 this . error (
16811681 DiagnosticCode . Identifier_expected ,
1682- t . range
1682+ type . range
16831683 ) ;
16841684 return null ;
16851685 }
1686- extendsType = < NamedTypeNode > t ;
1686+ extendsType = < NamedTypeNode > type ;
16871687 }
16881688
16891689 var implementsTypes : NamedTypeNode [ ] | null = null ;
@@ -1852,7 +1852,7 @@ export class Parser extends DiagnosticEmitter {
18521852 if ( ! decorators ) decorators = new Array ( ) ;
18531853 decorators . push ( decorator ) ;
18541854 } while ( tn . skip ( Token . AT ) ) ;
1855- if ( decorators !== null && isInterface ) {
1855+ if ( isInterface && decorators !== null ) {
18561856 this . error (
18571857 DiagnosticCode . Decorators_are_not_valid_here ,
18581858 Range . join ( decorators [ 0 ] . range , decorators [ decorators . length - 1 ] . range )
@@ -1940,8 +1940,8 @@ export class Parser extends DiagnosticEmitter {
19401940 if ( parent . flags & CommonFlags . GENERIC ) flags |= CommonFlags . GENERIC_CONTEXT ;
19411941 }
19421942
1943- var readonlyStart : i32 = 0 ;
1944- var readonlyEnd : i32 = 0 ;
1943+ var readonlyStart = 0 ;
1944+ var readonlyEnd = 0 ;
19451945 if ( tn . peek ( ) == Token . READONLY ) {
19461946 let state = tn . mark ( ) ;
19471947 tn . next ( ) ;
@@ -1960,11 +1960,11 @@ export class Parser extends DiagnosticEmitter {
19601960 var state = tn . mark ( ) ;
19611961 var isConstructor = false ;
19621962 var isGetter = false ;
1963- var getStart : i32 = 0 ;
1964- var getEnd : i32 = 0 ;
1963+ var getStart = 0 ;
1964+ var getEnd = 0 ;
19651965 var isSetter = false ;
1966- var setStart : i32 = 0 ;
1967- var setEnd : i32 = 0 ;
1966+ var setStart = 0 ;
1967+ var setEnd = 0 ;
19681968 if ( ! isInterface ) {
19691969 if ( tn . skip ( Token . GET ) ) {
19701970 if ( tn . peek ( true , IdentifierHandling . PREFER ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
@@ -2023,11 +2023,12 @@ export class Parser extends DiagnosticEmitter {
20232023 }
20242024 }
20252025
2026+ var isGetterOrSetter = isGetter || isSetter ;
20262027 var name : IdentifierExpression ;
20272028 if ( isConstructor ) {
20282029 name = Node . createConstructorExpression ( tn . range ( ) ) ;
20292030 } else {
2030- if ( ! ( isGetter || isSetter ) && tn . skip ( Token . OPENBRACKET ) ) {
2031+ if ( ! isGetterOrSetter && tn . skip ( Token . OPENBRACKET ) ) {
20312032 if ( ! startPos ) startPos = tn . tokenPos ;
20322033 // TODO: also handle symbols, which might have some of these modifiers
20332034 if ( flags & CommonFlags . PUBLIC ) {
@@ -2091,7 +2092,7 @@ export class Parser extends DiagnosticEmitter {
20912092 DiagnosticCode . Type_parameters_cannot_appear_on_a_constructor_declaration ,
20922093 tn . range ( typeParametersStart , tn . pos )
20932094 ) ; // recoverable
2094- } else if ( isGetter || isSetter ) {
2095+ } else if ( isGetterOrSetter ) {
20952096 this . error (
20962097 DiagnosticCode . An_accessor_cannot_have_type_parameters ,
20972098 tn . range ( typeParametersStart , tn . pos )
@@ -2236,7 +2237,7 @@ export class Parser extends DiagnosticEmitter {
22362237 name . range
22372238 ) ;
22382239
2239- } else if ( isGetter || isSetter ) {
2240+ } else if ( isGetterOrSetter ) {
22402241 this . error (
22412242 DiagnosticCode . Function_implementation_is_missing_or_not_immediately_following_the_declaration ,
22422243 name . range
@@ -3246,7 +3247,11 @@ export class Parser extends DiagnosticEmitter {
32463247 if ( ! label ) return null ;
32473248 if ( tn . skip ( Token . COLON ) ) {
32483249 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+ ) {
32503255 statement = this . parseStatement ( tn ) ;
32513256 if ( ! statement ) return null ;
32523257 statements . push ( statement ) ;
@@ -3264,7 +3269,11 @@ export class Parser extends DiagnosticEmitter {
32643269 } else if ( tn . skip ( Token . DEFAULT ) ) {
32653270 if ( tn . skip ( Token . COLON ) ) {
32663271 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+ ) {
32683277 statement = this . parseStatement ( tn ) ;
32693278 if ( ! statement ) return null ;
32703279 statements . push ( statement ) ;
@@ -3544,8 +3553,7 @@ export class Parser extends DiagnosticEmitter {
35443553 let typeArguments : TypeNode [ ] | null = null ;
35453554 let arguments_ : Expression [ ] | null = null ;
35463555 if (
3547- tn . skip ( Token . OPENPAREN )
3548- ||
3556+ tn . skip ( Token . OPENPAREN ) ||
35493557 ( typeArguments = this . tryParseTypeArgumentsBeforeArguments ( tn ) ) !== null
35503558 ) {
35513559 arguments_ = this . parseArguments ( tn ) ;
@@ -3845,7 +3853,7 @@ export class Parser extends DiagnosticEmitter {
38453853 var state = tn . mark ( ) ;
38463854 if ( ! tn . skip ( Token . LESSTHAN ) ) return null ;
38473855 var start = tn . tokenPos ;
3848- var typeArguments = new Array < TypeNode > ( ) ;
3856+ var typeArguments : TypeNode [ ] | null = null ;
38493857 do {
38503858 if ( tn . peek ( ) === Token . GREATERTHAN ) {
38513859 break ;
@@ -3855,12 +3863,13 @@ export class Parser extends DiagnosticEmitter {
38553863 tn . reset ( state ) ;
38563864 return null ;
38573865 }
3858- typeArguments . push ( type ) ;
3866+ if ( ! typeArguments ) typeArguments = [ type ] ;
3867+ else typeArguments . push ( type ) ;
38593868 } while ( tn . skip ( Token . COMMA ) ) ;
38603869 if ( tn . skip ( Token . GREATERTHAN ) ) {
38613870 let end = tn . pos ;
38623871 if ( tn . skip ( Token . OPENPAREN ) ) {
3863- if ( ! typeArguments . length ) {
3872+ if ( ! typeArguments ) {
38643873 this . error (
38653874 DiagnosticCode . Type_argument_list_cannot_be_empty ,
38663875 tn . range ( start , end )
@@ -4153,9 +4162,9 @@ export class Parser extends DiagnosticEmitter {
41534162 ) : Expression {
41544163 var typeArguments : TypeNode [ ] | null = null ;
41554164 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
41594168 ) {
41604169 let args = this . parseArguments ( tn ) ;
41614170 if ( ! args ) break ;
0 commit comments