tsc-ts 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +22 -15
- package/dist/api/compiler/ast.js +1026 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +178 -124
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +472 -440
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -107
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +212 -75
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +145 -36
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +104 -31
- package/dist/api/compiler/checker.js +181 -33
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +42 -3
- package/dist/api/compiler/compile-program.js +139 -27
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.d.ts +22 -0
- package/dist/api/compiler/diagnostics.js +93 -11
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +21 -1
- package/dist/api/compiler/file-loader.js +201 -48
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parallel-parse.d.ts +3 -2
- package/dist/api/compiler/parallel-parse.js +17 -5
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +5 -1
- package/dist/api/compiler/printer/emit-context.js +20 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +49 -2
- package/dist/api/compiler/printer/printer.js +539 -293
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +12 -2
- package/dist/api/compiler/program-checker.js +88 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +4 -6
- package/dist/api/compiler/program.js +74 -87
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +347 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +23 -14
- package/dist/api/compiler/symbol.js +23 -11
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +58 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +79 -9
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +136 -62
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -82
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +200 -56
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +124 -23
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +203 -39
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +167 -27
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/diagnostics.ts +84 -3
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +197 -38
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +165 -30
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +326 -52
- package/src/compiler/parallel-emit.ts +320 -0
- package/src/compiler/parallel-parse.ts +16 -5
- package/src/compiler/parse-thread.ts +3 -0
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +21 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +266 -30
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +57 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +18 -26
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +240 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +46 -24
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +64 -4
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +66 -9
- package/src/compiler/tsc-cli.ts +7 -0
- package/src/compiler/tsc-compile.ts +284 -4
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- package/src/library/enums.generated.ts +196 -196
|
@@ -32,7 +32,7 @@ export function checkIfStatement(c, node) {
|
|
|
32
32
|
const t = checkTruthinessExpression(c, s.expression, 0 /* CheckMode.Normal */);
|
|
33
33
|
checkTestingKnownTruthyType(c, s.expression, t, s.thenStatement);
|
|
34
34
|
checkSourceElement(c, s.thenStatement);
|
|
35
|
-
if (s.thenStatement.kind ===
|
|
35
|
+
if (s.thenStatement.kind === 244 /* SyntaxKind.EmptyStatement */)
|
|
36
36
|
c.error(s.thenStatement, 249 /* Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement */);
|
|
37
37
|
checkSourceElement(c, s.elseStatement);
|
|
38
38
|
}
|
|
@@ -50,7 +50,7 @@ export function checkForStatement(c, node) {
|
|
|
50
50
|
const s = node;
|
|
51
51
|
const initializer = s.initializer;
|
|
52
52
|
if (initializer !== undefined) {
|
|
53
|
-
if (initializer.kind ===
|
|
53
|
+
if (initializer.kind === 263 /* SyntaxKind.VariableDeclarationList */)
|
|
54
54
|
checkVariableDeclarationList(c, initializer);
|
|
55
55
|
else
|
|
56
56
|
checkExpression(c, initializer);
|
|
@@ -67,10 +67,10 @@ export function checkForInStatement(c, node) {
|
|
|
67
67
|
const rightType = hasTypeFacts(c, expressionType, 50331648 /* TypeFacts.IsUndefinedOrNull */)
|
|
68
68
|
? getNonNullableType(c, expressionType)
|
|
69
69
|
: expressionType;
|
|
70
|
-
if (s.initializer.kind ===
|
|
70
|
+
if (s.initializer.kind === 263 /* SyntaxKind.VariableDeclarationList */) {
|
|
71
71
|
const declarations = s.initializer.declarations.nodes;
|
|
72
72
|
if (declarations.length !== 0 && isBindingPattern(getName(declarations[0])))
|
|
73
|
-
c.error(getName(declarations[0]),
|
|
73
|
+
c.error(getName(declarations[0]), 658 /* Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern */);
|
|
74
74
|
for (const d of declarations)
|
|
75
75
|
checkVariableLikeDeclaration(c, d);
|
|
76
76
|
}
|
|
@@ -78,16 +78,16 @@ export function checkForInStatement(c, node) {
|
|
|
78
78
|
// The variable must be a reference that the keys of the object, as strings, are assignable to.
|
|
79
79
|
const varExpr = s.initializer;
|
|
80
80
|
const leftType = checkExpression(c, varExpr);
|
|
81
|
-
if (varExpr.kind ===
|
|
82
|
-
c.error(varExpr,
|
|
81
|
+
if (varExpr.kind === 211 /* SyntaxKind.ArrayLiteralExpression */ || varExpr.kind === 212 /* SyntaxKind.ObjectLiteralExpression */)
|
|
82
|
+
c.error(varExpr, 658 /* Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern */);
|
|
83
83
|
else if (!isTypeAssignableTo(c, getIndexTypeOrString(c, rightType), leftType))
|
|
84
|
-
c.error(varExpr,
|
|
84
|
+
c.error(varExpr, 583 /* Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any */);
|
|
85
85
|
else
|
|
86
|
-
checkReferenceExpression(c, varExpr,
|
|
86
|
+
checkReferenceExpression(c, varExpr, 584 /* Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access */, 919 /* Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access */);
|
|
87
87
|
}
|
|
88
88
|
if ((rightType.flags & 262144 /* TypeFlags.Never */) !== 0 ||
|
|
89
89
|
!isTypeAssignableToKind(c, rightType, 131072 /* TypeFlags.NonPrimitive */ | 117964800 /* TypeFlags.InstantiableNonPrimitive */, false))
|
|
90
|
-
c.error(s.expression,
|
|
90
|
+
c.error(s.expression, 585 /* Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0 */, typeToString(c, rightType));
|
|
91
91
|
checkSourceElement(c, s.statement);
|
|
92
92
|
}
|
|
93
93
|
function getIndexTypeOrString(c, t) {
|
|
@@ -99,25 +99,25 @@ export function checkForOfStatement(c, node) {
|
|
|
99
99
|
// for await..of in an async function before ES2018 uses __asyncValues.
|
|
100
100
|
if (s.awaitModifier !== undefined) {
|
|
101
101
|
const container = getContainingFunctionOrClassStaticBlock(node);
|
|
102
|
-
if ((container === undefined || container.kind !==
|
|
102
|
+
if ((container === undefined || container.kind !== 177 /* SyntaxKind.ClassStaticBlockDeclaration */) &&
|
|
103
103
|
(getFunctionFlags(container) & (4 /* FunctionFlags.Invalid */ | 2 /* FunctionFlags.Async */)) === 2 /* FunctionFlags.Async */ &&
|
|
104
104
|
c.languageVersion < ScriptTarget.ES2018)
|
|
105
105
|
checkExternalEmitHelpers(c, node, 256 /* ExternalEmitHelpers.ForAwaitOfIncludes */);
|
|
106
106
|
}
|
|
107
107
|
// A declaration checks the right side through its type; an expression is checked as a
|
|
108
108
|
// destructuring assignment or a reference the iterated type must be assignable to.
|
|
109
|
-
if (s.initializer.kind ===
|
|
109
|
+
if (s.initializer.kind === 263 /* SyntaxKind.VariableDeclarationList */) {
|
|
110
110
|
for (const d of s.initializer.declarations.nodes)
|
|
111
111
|
checkVariableLikeDeclaration(c, d);
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
114
|
const varExpr = s.initializer;
|
|
115
115
|
const iteratedType = checkRightHandSideOfForOf(c, s);
|
|
116
|
-
if (varExpr.kind ===
|
|
116
|
+
if (varExpr.kind === 211 /* SyntaxKind.ArrayLiteralExpression */ || varExpr.kind === 212 /* SyntaxKind.ObjectLiteralExpression */)
|
|
117
117
|
checkDestructuringAssignment(c, varExpr, iteratedType, 0 /* CheckMode.Normal */, false);
|
|
118
118
|
else {
|
|
119
119
|
const leftType = checkExpression(c, varExpr);
|
|
120
|
-
checkReferenceExpression(c, varExpr,
|
|
120
|
+
checkReferenceExpression(c, varExpr, 654 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access */, 920 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access */);
|
|
121
121
|
checkTypeAssignableToAndOptionallyElaborate(c, iteratedType, leftType, varExpr, s.expression);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -131,6 +131,9 @@ export function checkRightHandSideOfForOf(c, statement) {
|
|
|
131
131
|
}
|
|
132
132
|
export function checkReturnStatement(c, node) {
|
|
133
133
|
const s = node;
|
|
134
|
+
// The expression is checked also where a return statement is a grammar error.
|
|
135
|
+
const exprNode = s.expression;
|
|
136
|
+
const exprType = exprNode !== undefined ? checkExpressionCached(c, exprNode) : c.undefinedType;
|
|
134
137
|
const container = getContainingFunction(node);
|
|
135
138
|
// Returns outside functions and in static blocks are grammar errors.
|
|
136
139
|
if (container === undefined)
|
|
@@ -138,43 +141,41 @@ export function checkReturnStatement(c, node) {
|
|
|
138
141
|
const signature = getSignatureFromDeclaration(c, container);
|
|
139
142
|
const returnType = getReturnTypeOfSignature(c, signature);
|
|
140
143
|
const functionFlags = getFunctionFlags(container);
|
|
141
|
-
const exprNode = s.expression;
|
|
142
144
|
if (c.strictNullChecks || exprNode !== undefined || (returnType.flags & 262144 /* TypeFlags.Never */) !== 0) {
|
|
143
|
-
|
|
144
|
-
if (container.kind === 179 /* SyntaxKind.SetAccessor */) {
|
|
145
|
+
if (container.kind === 180 /* SyntaxKind.SetAccessor */) {
|
|
145
146
|
if (exprNode !== undefined)
|
|
146
|
-
c.error(node,
|
|
147
|
+
c.error(node, 586 /* Diagnostics.Setters_cannot_return_a_value */);
|
|
147
148
|
}
|
|
148
|
-
else if (container.kind ===
|
|
149
|
+
else if (container.kind === 178 /* SyntaxKind.Constructor */) {
|
|
149
150
|
if (exprNode !== undefined &&
|
|
150
151
|
!checkTypeAssignableToAndOptionallyElaborate(c, exprType, returnType, node, exprNode))
|
|
151
|
-
c.error(node,
|
|
152
|
+
c.error(node, 587 /* Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class */);
|
|
152
153
|
}
|
|
153
154
|
else if (getReturnTypeFromAnnotation(c, container) !== undefined) {
|
|
154
155
|
const unwrappedReturnType = unwrapReturnType(c, returnType, functionFlags);
|
|
155
156
|
checkReturnExpression(c, container, unwrappedReturnType, node, exprNode, exprType, false);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
|
-
else if (container.kind !==
|
|
159
|
+
else if (container.kind !== 178 /* SyntaxKind.Constructor */ &&
|
|
159
160
|
c.compilerOptions.noImplicitReturns === true &&
|
|
160
161
|
!isUnwrappedReturnTypeUndefinedVoidOrAny(c, container, returnType))
|
|
161
162
|
// The function has a return type, but this return statement has no expression.
|
|
162
|
-
c.error(node,
|
|
163
|
+
c.error(node, 1720 /* Diagnostics.Not_all_code_paths_return_a_value */);
|
|
163
164
|
}
|
|
164
165
|
function getContainingFunction(node) {
|
|
165
166
|
let current = node.parent;
|
|
166
167
|
while (current !== undefined) {
|
|
167
168
|
switch (current.kind) {
|
|
168
|
-
case
|
|
169
|
-
case
|
|
170
|
-
case
|
|
171
|
-
case
|
|
172
|
-
case
|
|
173
|
-
case
|
|
174
|
-
case
|
|
169
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
170
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
171
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
172
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
173
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
174
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
175
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
175
176
|
return current;
|
|
176
|
-
case
|
|
177
|
-
case
|
|
177
|
+
case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
|
|
178
|
+
case 308 /* SyntaxKind.SourceFile */:
|
|
178
179
|
return undefined;
|
|
179
180
|
}
|
|
180
181
|
current = current.parent;
|
|
@@ -197,14 +198,14 @@ export function checkSwitchStatement(c, node) {
|
|
|
197
198
|
if (c.compilerOptions.noFallthroughCasesInSwitch === true &&
|
|
198
199
|
caseClause.fallthroughFlowNode !== undefined &&
|
|
199
200
|
isReachableFlowNode(c, caseClause.fallthroughFlowNode))
|
|
200
|
-
c.error(clause,
|
|
201
|
+
c.error(clause, 1719 /* Diagnostics.Fallthrough_case_in_switch */);
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
export function checkLabeledStatement(c, node) {
|
|
204
205
|
const { label, statement } = node;
|
|
205
206
|
// The binder marks the labels that no break or continue statement references.
|
|
206
207
|
if ((label.flags & 134217728 /* NodeFlags.Unreachable */) !== 0 && c.compilerOptions.allowUnusedLabels !== true)
|
|
207
|
-
c.addErrorOrSuggestion(c.compilerOptions.allowUnusedLabels === false, createDiagnosticForNode(label,
|
|
208
|
+
c.addErrorOrSuggestion(c.compilerOptions.allowUnusedLabels === false, createDiagnosticForNode(label, 1718 /* Diagnostics.Unused_label */, []));
|
|
208
209
|
checkSourceElement(c, statement);
|
|
209
210
|
}
|
|
210
211
|
export function checkThrowStatement(c, node) {
|
|
@@ -10,34 +10,34 @@ import { getSymbolOfDeclaration } from './checker-symbols.js';
|
|
|
10
10
|
/** The type of `super` in `super(...)`, `super.x` or `super[x]`, reporting where it can't be used. */
|
|
11
11
|
export function checkSuperExpression(c, node) {
|
|
12
12
|
const parent = node.parent;
|
|
13
|
-
const isCallExpression = parent.kind ===
|
|
13
|
+
const isCallExpression = parent.kind === 215 /* SyntaxKind.CallExpression */ && getExpression(parent) === node;
|
|
14
14
|
const immediateContainer = getSuperContainer(node, true);
|
|
15
15
|
let container = immediateContainer;
|
|
16
16
|
// `super` property accesses in arrow functions belong to the enclosing container.
|
|
17
17
|
if (!isCallExpression)
|
|
18
|
-
while (container !== undefined && container.kind ===
|
|
18
|
+
while (container !== undefined && container.kind === 221 /* SyntaxKind.ArrowFunction */)
|
|
19
19
|
container = getSuperContainer(container, true);
|
|
20
20
|
if (container === undefined || !isLegalUsageOfSuperExpression(container, isCallExpression)) {
|
|
21
21
|
if (isInComputedPropertyNameBefore(node, container))
|
|
22
|
-
c.error(node,
|
|
22
|
+
c.error(node, 639 /* Diagnostics.X_super_cannot_be_referenced_in_a_computed_property_name */);
|
|
23
23
|
else if (isCallExpression)
|
|
24
|
-
c.error(node,
|
|
24
|
+
c.error(node, 521 /* Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors */);
|
|
25
25
|
else if (container === undefined ||
|
|
26
26
|
container.parent === undefined ||
|
|
27
|
-
!(isClassLike(container.parent) || container.parent.kind ===
|
|
28
|
-
c.error(node,
|
|
27
|
+
!(isClassLike(container.parent) || container.parent.kind === 212 /* SyntaxKind.ObjectLiteralExpression */))
|
|
28
|
+
c.error(node, 801 /* Diagnostics.X_super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions */);
|
|
29
29
|
else
|
|
30
|
-
c.error(node,
|
|
30
|
+
c.error(node, 522 /* Diagnostics.X_super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class */);
|
|
31
31
|
return c.errorType;
|
|
32
32
|
}
|
|
33
|
-
if (!isCallExpression && immediateContainer.kind ===
|
|
34
|
-
checkThisBeforeSuper(c, node, container,
|
|
33
|
+
if (!isCallExpression && immediateContainer.kind === 178 /* SyntaxKind.Constructor */)
|
|
34
|
+
checkThisBeforeSuper(c, node, container, 1834 /* Diagnostics.X_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class */);
|
|
35
35
|
// `super` in an object literal is `any`.
|
|
36
|
-
if (container.parent.kind ===
|
|
36
|
+
if (container.parent.kind === 212 /* SyntaxKind.ObjectLiteralExpression */)
|
|
37
37
|
return c.anyType;
|
|
38
38
|
const classLikeDeclaration = container.parent;
|
|
39
39
|
if (getExtendsHeritageClauseElement(classLikeDeclaration) === undefined) {
|
|
40
|
-
c.error(node,
|
|
40
|
+
c.error(node, 519 /* Diagnostics.X_super_can_only_be_referenced_in_a_derived_class */);
|
|
41
41
|
return c.errorType;
|
|
42
42
|
}
|
|
43
43
|
if (classDeclarationExtendsNull(c, classLikeDeclaration))
|
|
@@ -49,14 +49,14 @@ export function checkSuperExpression(c, node) {
|
|
|
49
49
|
const baseTypes = getBaseTypes(c, classType);
|
|
50
50
|
if (baseTypes.length === 0)
|
|
51
51
|
return c.errorType;
|
|
52
|
-
if (container.kind ===
|
|
53
|
-
c.error(node,
|
|
52
|
+
if (container.kind === 178 /* SyntaxKind.Constructor */ && isInConstructorArgumentInitializer(node, container)) {
|
|
53
|
+
c.error(node, 520 /* Diagnostics.X_super_cannot_be_referenced_in_constructor_arguments */);
|
|
54
54
|
return c.errorType;
|
|
55
55
|
}
|
|
56
56
|
if (isStatic(container) || isCallExpression) {
|
|
57
57
|
if (!isCallExpression &&
|
|
58
58
|
c.languageVersion <= ScriptTarget.ES2021 &&
|
|
59
|
-
(container.kind ===
|
|
59
|
+
(container.kind === 174 /* SyntaxKind.PropertyDeclaration */ || container.kind === 177 /* SyntaxKind.ClassStaticBlockDeclaration */))
|
|
60
60
|
markSuperPropertyInStaticInitializer(c, node);
|
|
61
61
|
return getBaseConstructorTypeOfClass(c, classType);
|
|
62
62
|
}
|
|
@@ -65,22 +65,22 @@ export function checkSuperExpression(c, node) {
|
|
|
65
65
|
function isLegalUsageOfSuperExpression(container, isCallExpression) {
|
|
66
66
|
// Super calls are only permitted in constructors of derived classes.
|
|
67
67
|
if (isCallExpression)
|
|
68
|
-
return container.kind ===
|
|
68
|
+
return container.kind === 178 /* SyntaxKind.Constructor */;
|
|
69
69
|
// Super property accesses are permitted in members directly within a class or object literal.
|
|
70
70
|
const parent = container.parent;
|
|
71
|
-
if (parent === undefined || !(isClassLike(parent) || parent.kind ===
|
|
71
|
+
if (parent === undefined || !(isClassLike(parent) || parent.kind === 212 /* SyntaxKind.ObjectLiteralExpression */))
|
|
72
72
|
return false;
|
|
73
73
|
switch (container.kind) {
|
|
74
|
-
case
|
|
75
|
-
case
|
|
76
|
-
case
|
|
77
|
-
case
|
|
78
|
-
case
|
|
74
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
75
|
+
case 175 /* SyntaxKind.MethodSignature */:
|
|
76
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
77
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
78
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
79
79
|
return true;
|
|
80
|
-
case
|
|
80
|
+
case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
|
|
81
81
|
return isStatic(container);
|
|
82
|
-
case
|
|
83
|
-
case
|
|
82
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
83
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
84
84
|
return !isStatic(container);
|
|
85
85
|
}
|
|
86
86
|
return false;
|
|
@@ -88,7 +88,7 @@ function isLegalUsageOfSuperExpression(container, isCallExpression) {
|
|
|
88
88
|
/** Whether `node` is in a computed property name below `container`. */
|
|
89
89
|
function isInComputedPropertyNameBefore(node, container) {
|
|
90
90
|
for (let current = node.parent; current !== undefined && current !== container; current = current.parent)
|
|
91
|
-
if (current.kind ===
|
|
91
|
+
if (current.kind === 169 /* SyntaxKind.ComputedPropertyName */)
|
|
92
92
|
return true;
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
@@ -96,20 +96,20 @@ function isInConstructorArgumentInitializer(node, constructorDeclaration) {
|
|
|
96
96
|
for (let current = node; current !== undefined; current = current.parent) {
|
|
97
97
|
if (isFunctionLikeDeclarationKind(current.kind))
|
|
98
98
|
return false;
|
|
99
|
-
if (current.kind ===
|
|
99
|
+
if (current.kind === 171 /* SyntaxKind.Parameter */ && current.parent === constructorDeclaration)
|
|
100
100
|
return true;
|
|
101
101
|
}
|
|
102
102
|
return false;
|
|
103
103
|
}
|
|
104
104
|
function isFunctionLikeDeclarationKind(kind) {
|
|
105
105
|
switch (kind) {
|
|
106
|
-
case
|
|
107
|
-
case
|
|
108
|
-
case
|
|
109
|
-
case
|
|
110
|
-
case
|
|
111
|
-
case
|
|
112
|
-
case
|
|
106
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
107
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
108
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
109
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
110
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
111
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
112
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
113
113
|
return true;
|
|
114
114
|
}
|
|
115
115
|
return false;
|
|
@@ -118,28 +118,28 @@ function isFunctionLikeDeclarationKind(kind) {
|
|
|
118
118
|
export function getSuperContainer(node, stopOnFunctions) {
|
|
119
119
|
for (let current = node.parent; current !== undefined; current = current.parent) {
|
|
120
120
|
switch (current.kind) {
|
|
121
|
-
case
|
|
121
|
+
case 169 /* SyntaxKind.ComputedPropertyName */:
|
|
122
122
|
current = current.parent;
|
|
123
123
|
break;
|
|
124
|
-
case
|
|
125
|
-
case
|
|
126
|
-
case
|
|
124
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
125
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
126
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
127
127
|
if (stopOnFunctions)
|
|
128
128
|
return current;
|
|
129
129
|
break;
|
|
130
|
-
case
|
|
131
|
-
case
|
|
132
|
-
case
|
|
133
|
-
case
|
|
134
|
-
case
|
|
135
|
-
case
|
|
136
|
-
case
|
|
137
|
-
case
|
|
130
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
131
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
132
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
133
|
+
case 175 /* SyntaxKind.MethodSignature */:
|
|
134
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
135
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
136
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
137
|
+
case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
|
|
138
138
|
return current;
|
|
139
|
-
case
|
|
139
|
+
case 172 /* SyntaxKind.Decorator */: {
|
|
140
140
|
// Decorators are applied outside the body of their class or method.
|
|
141
141
|
const decorated = current.parent;
|
|
142
|
-
if (decorated.kind ===
|
|
142
|
+
if (decorated.kind === 171 /* SyntaxKind.Parameter */ && isClassElement(decorated.parent))
|
|
143
143
|
current = decorated.parent;
|
|
144
144
|
else if (isClassElement(decorated))
|
|
145
145
|
current = decorated;
|
|
@@ -217,21 +217,21 @@ function isPostSuperFlowNode(c, start, noCacheCheckIn) {
|
|
|
217
217
|
}
|
|
218
218
|
/** Reports `this` in a static property initializer of a class with legacy decorators. */
|
|
219
219
|
export function checkThisInStaticClassFieldInitializerInDecoratedClass(c, thisExpression, container) {
|
|
220
|
-
if (container.kind !==
|
|
220
|
+
if (container.kind !== 174 /* SyntaxKind.PropertyDeclaration */ || !isStatic(container) || !c.legacyDecorators)
|
|
221
221
|
return;
|
|
222
222
|
const initializer = getInitializer(container);
|
|
223
223
|
if (initializer !== undefined &&
|
|
224
224
|
initializer.pos <= thisExpression.pos &&
|
|
225
225
|
thisExpression.pos <= initializer.end &&
|
|
226
226
|
hasDecoratorModifier(container.parent))
|
|
227
|
-
c.error(thisExpression,
|
|
227
|
+
c.error(thisExpression, 954 /* Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class */);
|
|
228
228
|
}
|
|
229
229
|
function hasDecoratorModifier(node) {
|
|
230
230
|
const modifiers = getModifiersOf(node);
|
|
231
231
|
if (modifiers === undefined)
|
|
232
232
|
return false;
|
|
233
233
|
for (const modifier of modifiers)
|
|
234
|
-
if (modifier.kind ===
|
|
234
|
+
if (modifier.kind === 172 /* SyntaxKind.Decorator */)
|
|
235
235
|
return true;
|
|
236
236
|
return false;
|
|
237
237
|
}
|