@@ -2168,10 +2168,26 @@ namespace ts {
2168
2168
2169
2169
function nextTokenCanFollowDefaultKeyword(): boolean {
2170
2170
nextToken();
2171
- return token() === SyntaxKind.ClassKeyword || token() === SyntaxKind.FunctionKeyword ||
2172
- token() === SyntaxKind.InterfaceKeyword ||
2173
- (token() === SyntaxKind.AbstractKeyword && lookAhead(nextTokenIsClassKeywordOnSameLine)) ||
2174
- (token() === SyntaxKind.AsyncKeyword && lookAhead(nextTokenIsFunctionKeywordOnSameLine));
2171
+ switch (token()) {
2172
+ case SyntaxKind.ClassKeyword:
2173
+ case SyntaxKind.InterfaceKeyword:
2174
+ case SyntaxKind.FunctionKeyword:
2175
+ case SyntaxKind.NamespaceKeyword:
2176
+ case SyntaxKind.ModuleKeyword:
2177
+ case SyntaxKind.EnumKeyword:
2178
+ case SyntaxKind.ConstKeyword:
2179
+ return true;
2180
+ case SyntaxKind.DeclareKeyword:
2181
+ return lookAhead(nextTokenCanFollowExportDefaultDeclareKeyword);
2182
+ case SyntaxKind.TypeKeyword:
2183
+ return lookAhead(nextTokenIsIdentifierOnSameLine);
2184
+ case SyntaxKind.AbstractKeyword:
2185
+ return lookAhead(nextTokenIsClassKeywordOnSameLine);
2186
+ case SyntaxKind.AsyncKeyword:
2187
+ return lookAhead(nextTokenIsFunctionKeywordOnSameLine);
2188
+ default:
2189
+ return false;
2190
+ }
2175
2191
}
2176
2192
2177
2193
// True if positioned at the start of a list element
@@ -6339,6 +6355,18 @@ namespace ts {
6339
6355
return token() === SyntaxKind.ClassKeyword && !scanner.hasPrecedingLineBreak();
6340
6356
}
6341
6357
6358
+ function nextTokenCanFollowExportDefaultDeclareKeyword() {
6359
+ nextToken();
6360
+ switch (token()) {
6361
+ case SyntaxKind.NamespaceKeyword:
6362
+ case SyntaxKind.ModuleKeyword:
6363
+ case SyntaxKind.ClassKeyword:
6364
+ return !scanner.hasPrecedingLineBreak();
6365
+ default:
6366
+ return false;
6367
+ }
6368
+ }
6369
+
6342
6370
function nextTokenIsFunctionKeywordOnSameLine() {
6343
6371
nextToken();
6344
6372
return token() === SyntaxKind.FunctionKeyword && !scanner.hasPrecedingLineBreak();
0 commit comments