tsc-ts 0.0.3 → 0.0.5
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 +46 -0
- package/dist/api/compiler/ast-utilities.d.ts +82 -0
- package/dist/api/compiler/ast-utilities.js +462 -0
- package/dist/api/compiler/ast.d.ts +2350 -0
- package/dist/api/compiler/ast.js +11206 -0
- package/dist/api/compiler/astnav.d.ts +37 -0
- package/dist/api/compiler/astnav.js +767 -0
- package/dist/api/compiler/binder-utilities.d.ts +182 -0
- package/dist/api/compiler/binder-utilities.js +1240 -0
- package/dist/api/compiler/binder.d.ts +33 -0
- package/dist/api/compiler/binder.js +2358 -0
- package/dist/api/compiler/character-codes.d.ts +161 -0
- package/dist/api/compiler/character-codes.js +160 -0
- package/dist/api/compiler/checker-calls.d.ts +46 -0
- package/dist/api/compiler/checker-calls.js +1640 -0
- package/dist/api/compiler/checker-classes.d.ts +30 -0
- package/dist/api/compiler/checker-classes.js +582 -0
- package/dist/api/compiler/checker-contextual.d.ts +77 -0
- package/dist/api/compiler/checker-contextual.js +1136 -0
- package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
- package/dist/api/compiler/checker-declaration-order.js +356 -0
- package/dist/api/compiler/checker-declarations.d.ts +33 -0
- package/dist/api/compiler/checker-declarations.js +888 -0
- package/dist/api/compiler/checker-declared-types.d.ts +48 -0
- package/dist/api/compiler/checker-declared-types.js +787 -0
- package/dist/api/compiler/checker-decorators.d.ts +26 -0
- package/dist/api/compiler/checker-decorators.js +562 -0
- package/dist/api/compiler/checker-deprecation.d.ts +33 -0
- package/dist/api/compiler/checker-deprecation.js +315 -0
- package/dist/api/compiler/checker-destructuring.d.ts +34 -0
- package/dist/api/compiler/checker-destructuring.js +584 -0
- package/dist/api/compiler/checker-elaboration.d.ts +15 -0
- package/dist/api/compiler/checker-elaboration.js +290 -0
- package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
- package/dist/api/compiler/checker-emit-helpers.js +154 -0
- package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
- package/dist/api/compiler/checker-emit-resolver.js +579 -0
- package/dist/api/compiler/checker-evaluator.d.ts +27 -0
- package/dist/api/compiler/checker-evaluator.js +188 -0
- package/dist/api/compiler/checker-expressions.d.ts +67 -0
- package/dist/api/compiler/checker-expressions.js +1351 -0
- package/dist/api/compiler/checker-features.d.ts +6 -0
- package/dist/api/compiler/checker-features.js +354 -0
- package/dist/api/compiler/checker-flow.d.ts +86 -0
- package/dist/api/compiler/checker-flow.js +169 -0
- package/dist/api/compiler/checker-functions.d.ts +43 -0
- package/dist/api/compiler/checker-functions.js +1002 -0
- package/dist/api/compiler/checker-generated-code.d.ts +25 -0
- package/dist/api/compiler/checker-generated-code.js +168 -0
- package/dist/api/compiler/checker-globals.d.ts +14 -0
- package/dist/api/compiler/checker-globals.js +37 -0
- package/dist/api/compiler/checker-grammar.d.ts +35 -0
- package/dist/api/compiler/checker-grammar.js +2573 -0
- package/dist/api/compiler/checker-heritage.d.ts +28 -0
- package/dist/api/compiler/checker-heritage.js +900 -0
- package/dist/api/compiler/checker-inference.d.ts +179 -0
- package/dist/api/compiler/checker-inference.js +2105 -0
- package/dist/api/compiler/checker-iteration.d.ts +115 -0
- package/dist/api/compiler/checker-iteration.js +857 -0
- package/dist/api/compiler/checker-javascript.d.ts +42 -0
- package/dist/api/compiler/checker-javascript.js +441 -0
- package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
- package/dist/api/compiler/checker-jsdoc.js +320 -0
- package/dist/api/compiler/checker-jsx.d.ts +94 -0
- package/dist/api/compiler/checker-jsx.js +1433 -0
- package/dist/api/compiler/checker-literals.d.ts +6 -0
- package/dist/api/compiler/checker-literals.js +43 -0
- package/dist/api/compiler/checker-members.d.ts +198 -0
- package/dist/api/compiler/checker-members.js +2126 -0
- package/dist/api/compiler/checker-modules.d.ts +85 -0
- package/dist/api/compiler/checker-modules.js +2141 -0
- package/dist/api/compiler/checker-narrowing.d.ts +120 -0
- package/dist/api/compiler/checker-narrowing.js +2797 -0
- package/dist/api/compiler/checker-object-literals.d.ts +14 -0
- package/dist/api/compiler/checker-object-literals.js +479 -0
- package/dist/api/compiler/checker-operators.d.ts +33 -0
- package/dist/api/compiler/checker-operators.js +1040 -0
- package/dist/api/compiler/checker-overloads.d.ts +7 -0
- package/dist/api/compiler/checker-overloads.js +270 -0
- package/dist/api/compiler/checker-property-access.d.ts +34 -0
- package/dist/api/compiler/checker-property-access.js +672 -0
- package/dist/api/compiler/checker-services.d.ts +49 -0
- package/dist/api/compiler/checker-services.js +995 -0
- package/dist/api/compiler/checker-signatures.d.ts +55 -0
- package/dist/api/compiler/checker-signatures.js +788 -0
- package/dist/api/compiler/checker-source-file.d.ts +27 -0
- package/dist/api/compiler/checker-source-file.js +619 -0
- package/dist/api/compiler/checker-statements.d.ts +18 -0
- package/dist/api/compiler/checker-statements.js +226 -0
- package/dist/api/compiler/checker-super.d.ts +13 -0
- package/dist/api/compiler/checker-super.js +241 -0
- package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
- package/dist/api/compiler/checker-symbol-types.js +1885 -0
- package/dist/api/compiler/checker-symbols.d.ts +181 -0
- package/dist/api/compiler/checker-symbols.js +1782 -0
- package/dist/api/compiler/checker-type-factory.d.ts +142 -0
- package/dist/api/compiler/checker-type-factory.js +2501 -0
- package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
- package/dist/api/compiler/checker-type-nodes.js +828 -0
- package/dist/api/compiler/checker-type-operators.d.ts +109 -0
- package/dist/api/compiler/checker-type-operators.js +1842 -0
- package/dist/api/compiler/checker-types.d.ts +1027 -0
- package/dist/api/compiler/checker-types.js +1697 -0
- package/dist/api/compiler/checker-unused.d.ts +19 -0
- package/dist/api/compiler/checker-unused.js +524 -0
- package/dist/api/compiler/checker-utilities.d.ts +33 -0
- package/dist/api/compiler/checker-utilities.js +141 -0
- package/dist/api/compiler/checker.d.ts +491 -0
- package/dist/api/compiler/checker.js +912 -0
- package/dist/api/compiler/command-line.d.ts +32 -0
- package/dist/api/compiler/command-line.js +383 -0
- package/dist/api/compiler/compile-program.d.ts +118 -0
- package/dist/api/compiler/compile-program.js +384 -0
- package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
- package/dist/api/compiler/diagnostic-locales.js +64 -0
- package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
- package/dist/api/compiler/diagnostic-messages.js +184 -0
- package/dist/api/compiler/diagnostics.d.ts +167 -0
- package/dist/api/compiler/diagnostics.js +820 -0
- package/dist/api/compiler/emitter.d.ts +71 -0
- package/dist/api/compiler/emitter.js +327 -0
- package/dist/api/compiler/file-include.d.ts +117 -0
- package/dist/api/compiler/file-include.js +536 -0
- package/dist/api/compiler/file-loader.d.ts +261 -0
- package/dist/api/compiler/file-loader.js +1257 -0
- package/dist/api/compiler/file-system.d.ts +51 -0
- package/dist/api/compiler/file-system.js +132 -0
- package/dist/api/compiler/flow.d.ts +60 -0
- package/dist/api/compiler/flow.js +45 -0
- package/dist/api/compiler/instantiation.d.ts +74 -0
- package/dist/api/compiler/instantiation.js +799 -0
- package/dist/api/compiler/jsdoc.d.ts +75 -0
- package/dist/api/compiler/jsdoc.js +1229 -0
- package/dist/api/compiler/link-tables.d.ts +36 -0
- package/dist/api/compiler/link-tables.js +83 -0
- package/dist/api/compiler/locale-data.d.ts +24 -0
- package/dist/api/compiler/locale-data.js +183 -0
- package/dist/api/compiler/locale.d.ts +4 -0
- package/dist/api/compiler/locale.js +317 -0
- package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
- package/dist/api/compiler/locales/cs-CZ.js +3 -0
- package/dist/api/compiler/locales/de-DE.d.ts +2 -0
- package/dist/api/compiler/locales/de-DE.js +3 -0
- package/dist/api/compiler/locales/es-ES.d.ts +2 -0
- package/dist/api/compiler/locales/es-ES.js +3 -0
- package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
- package/dist/api/compiler/locales/fr-FR.js +3 -0
- package/dist/api/compiler/locales/it-IT.d.ts +2 -0
- package/dist/api/compiler/locales/it-IT.js +3 -0
- package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
- package/dist/api/compiler/locales/ja-JP.js +3 -0
- package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
- package/dist/api/compiler/locales/ko-KR.js +3 -0
- package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
- package/dist/api/compiler/locales/pl-PL.js +3 -0
- package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
- package/dist/api/compiler/locales/pt-BR.js +3 -0
- package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
- package/dist/api/compiler/locales/ru-RU.js +3 -0
- package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
- package/dist/api/compiler/locales/tr-TR.js +3 -0
- package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
- package/dist/api/compiler/locales/zh-CN.js +3 -0
- package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
- package/dist/api/compiler/locales/zh-TW.js +3 -0
- package/dist/api/compiler/module-resolution-types.d.ts +83 -0
- package/dist/api/compiler/module-resolution-types.js +176 -0
- package/dist/api/compiler/module-resolution.d.ts +71 -0
- package/dist/api/compiler/module-resolution.js +1598 -0
- package/dist/api/compiler/module-specifiers.d.ts +64 -0
- package/dist/api/compiler/module-specifiers.js +1101 -0
- package/dist/api/compiler/name-resolver.d.ts +43 -0
- package/dist/api/compiler/name-resolver.js +509 -0
- package/dist/api/compiler/node-builder-names.d.ts +32 -0
- package/dist/api/compiler/node-builder-names.js +854 -0
- package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
- package/dist/api/compiler/node-builder-pseudo.js +744 -0
- package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
- package/dist/api/compiler/node-builder-reuse.js +647 -0
- package/dist/api/compiler/node-builder.d.ts +270 -0
- package/dist/api/compiler/node-builder.js +2645 -0
- package/dist/api/compiler/option-declarations.d.ts +90 -0
- package/dist/api/compiler/option-declarations.js +1460 -0
- package/dist/api/compiler/options.d.ts +289 -0
- package/dist/api/compiler/options.js +1197 -0
- package/dist/api/compiler/output-paths.d.ts +42 -0
- package/dist/api/compiler/output-paths.js +195 -0
- package/dist/api/compiler/package-json.d.ts +175 -0
- package/dist/api/compiler/package-json.js +1015 -0
- package/dist/api/compiler/parallel-parse.d.ts +219 -0
- package/dist/api/compiler/parallel-parse.js +537 -0
- package/dist/api/compiler/parser.d.ts +587 -0
- package/dist/api/compiler/parser.js +6407 -0
- package/dist/api/compiler/path.d.ts +91 -0
- package/dist/api/compiler/path.js +705 -0
- package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
- package/dist/api/compiler/printer/async-helpers.js +91 -0
- package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
- package/dist/api/compiler/printer/auto-generate.js +20 -0
- package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
- package/dist/api/compiler/printer/decorator-helpers.js +118 -0
- package/dist/api/compiler/printer/emit-context.d.ts +154 -0
- package/dist/api/compiler/printer/emit-context.js +576 -0
- package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
- package/dist/api/compiler/printer/emit-flags.js +2 -0
- package/dist/api/compiler/printer/factory-base.d.ts +171 -0
- package/dist/api/compiler/printer/factory-base.js +1505 -0
- package/dist/api/compiler/printer/factory.d.ts +147 -0
- package/dist/api/compiler/printer/factory.js +542 -0
- package/dist/api/compiler/printer/helpers.d.ts +27 -0
- package/dist/api/compiler/printer/helpers.js +164 -0
- package/dist/api/compiler/printer/name-generator.d.ts +41 -0
- package/dist/api/compiler/printer/name-generator.js +283 -0
- package/dist/api/compiler/printer/printer.d.ts +411 -0
- package/dist/api/compiler/printer/printer.js +4517 -0
- package/dist/api/compiler/printer/text-writer.d.ts +46 -0
- package/dist/api/compiler/printer/text-writer.js +172 -0
- package/dist/api/compiler/printer/utilities.d.ts +82 -0
- package/dist/api/compiler/printer/utilities.js +817 -0
- package/dist/api/compiler/program-checker.d.ts +156 -0
- package/dist/api/compiler/program-checker.js +526 -0
- package/dist/api/compiler/program-utilities.d.ts +52 -0
- package/dist/api/compiler/program-utilities.js +365 -0
- package/dist/api/compiler/program.d.ts +180 -0
- package/dist/api/compiler/program.js +1011 -0
- package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
- package/dist/api/compiler/pseudo-bigint.js +61 -0
- package/dist/api/compiler/regexp-checker.d.ts +38 -0
- package/dist/api/compiler/regexp-checker.js +942 -0
- package/dist/api/compiler/relations.d.ts +263 -0
- package/dist/api/compiler/relations.js +4002 -0
- package/dist/api/compiler/reparser.d.ts +48 -0
- package/dist/api/compiler/reparser.js +1323 -0
- package/dist/api/compiler/scanner.d.ts +256 -0
- package/dist/api/compiler/scanner.js +2853 -0
- package/dist/api/compiler/side-state.d.ts +16 -0
- package/dist/api/compiler/side-state.js +89 -0
- package/dist/api/compiler/sourcemap.d.ts +55 -0
- package/dist/api/compiler/sourcemap.js +340 -0
- package/dist/api/compiler/spelling.d.ts +14 -0
- package/dist/api/compiler/spelling.js +128 -0
- package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
- package/dist/api/compiler/symbol-accessibility.js +894 -0
- package/dist/api/compiler/symbol.d.ts +240 -0
- package/dist/api/compiler/symbol.js +228 -0
- package/dist/api/compiler/symlinks.d.ts +32 -0
- package/dist/api/compiler/symlinks.js +114 -0
- package/dist/api/compiler/syntax-kind.d.ts +389 -0
- package/dist/api/compiler/syntax-kind.js +2 -0
- package/dist/api/compiler/timeline.d.ts +9 -0
- package/dist/api/compiler/timeline.js +54 -0
- package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
- package/dist/api/compiler/transformers/alias-references.js +676 -0
- package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
- package/dist/api/compiler/transformers/async-utilities.js +260 -0
- package/dist/api/compiler/transformers/async.d.ts +53 -0
- package/dist/api/compiler/transformers/async.js +645 -0
- package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
- package/dist/api/compiler/transformers/class-fields.js +2418 -0
- package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
- package/dist/api/compiler/transformers/class-utilities.js +261 -0
- package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
- package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
- package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
- package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
- package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
- package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
- package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
- package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
- package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
- package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
- package/dist/api/compiler/transformers/declarations.d.ts +175 -0
- package/dist/api/compiler/transformers/declarations.js +2380 -0
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
- package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
- package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
- package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
- package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
- package/dist/api/compiler/transformers/destructuring.js +626 -0
- package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
- package/dist/api/compiler/transformers/downlevel.js +45 -0
- package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
- package/dist/api/compiler/transformers/emit-resolver.js +197 -0
- package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
- package/dist/api/compiler/transformers/es-decorators.js +1901 -0
- package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
- package/dist/api/compiler/transformers/exponentiation.js +76 -0
- package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
- package/dist/api/compiler/transformers/external-module-info.js +351 -0
- package/dist/api/compiler/transformers/for-await.d.ts +43 -0
- package/dist/api/compiler/transformers/for-await.js +469 -0
- package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
- package/dist/api/compiler/transformers/import-elision.js +124 -0
- package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
- package/dist/api/compiler/transformers/jsx-entities.js +256 -0
- package/dist/api/compiler/transformers/jsx.d.ts +71 -0
- package/dist/api/compiler/transformers/jsx.js +700 -0
- package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
- package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
- package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
- package/dist/api/compiler/transformers/logical-assignment.js +62 -0
- package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
- package/dist/api/compiler/transformers/module-utilities.js +36 -0
- package/dist/api/compiler/transformers/module.d.ts +49 -0
- package/dist/api/compiler/transformers/module.js +296 -0
- package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
- package/dist/api/compiler/transformers/named-evaluation.js +266 -0
- package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
- package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
- package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
- package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
- package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
- package/dist/api/compiler/transformers/optional-catch.js +20 -0
- package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
- package/dist/api/compiler/transformers/optional-chain.js +188 -0
- package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
- package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
- package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
- package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
- package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
- package/dist/api/compiler/transformers/subtree-facts.js +203 -0
- package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
- package/dist/api/compiler/transformers/syntax-facts.js +254 -0
- package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
- package/dist/api/compiler/transformers/tagged-template.js +148 -0
- package/dist/api/compiler/transformers/transformer.d.ts +17 -0
- package/dist/api/compiler/transformers/transformer.js +54 -0
- package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
- package/dist/api/compiler/transformers/type-eraser.js +346 -0
- package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
- package/dist/api/compiler/transformers/type-serialization.js +347 -0
- package/dist/api/compiler/transformers/using.d.ts +56 -0
- package/dist/api/compiler/transformers/using.js +453 -0
- package/dist/api/compiler/transformers/utilities.d.ts +50 -0
- package/dist/api/compiler/transformers/utilities.js +347 -0
- package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
- package/dist/api/compiler/transformers/visitor-base.js +817 -0
- package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
- package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
- package/dist/api/compiler/tsconfig.d.ts +177 -0
- package/dist/api/compiler/tsconfig.js +1311 -0
- package/dist/api/compiler/type-printer.d.ts +15 -0
- package/dist/api/compiler/type-printer.js +74 -0
- package/dist/api/compiler/types.d.ts +87 -0
- package/dist/api/compiler/types.js +23 -0
- package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
- package/dist/api/compiler/unicode-identifiers.js +209 -0
- package/dist/api/compiler/unicode-properties.d.ts +8 -0
- package/dist/api/compiler/unicode-properties.js +531 -0
- package/dist/api/compiler/vfs-match.d.ts +24 -0
- package/dist/api/compiler/vfs-match.js +587 -0
- package/dist/api/library/ast.d.ts +74 -0
- package/dist/api/library/ast.generated.d.ts +1145 -0
- package/dist/api/library/ast.generated.js +3 -0
- package/dist/api/library/ast.js +5 -0
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/compiler-options.generated.d.ts +108 -0
- package/dist/api/library/compiler-options.generated.js +3 -0
- package/dist/api/library/diagnostics.d.ts +13 -0
- package/dist/api/library/diagnostics.js +50 -0
- package/dist/api/library/disk.d.ts +13 -0
- package/dist/api/library/disk.js +66 -0
- package/dist/api/library/enums.generated.d.ts +891 -0
- package/dist/api/library/enums.generated.js +916 -0
- package/dist/api/library/errors.d.ts +13 -0
- package/dist/api/library/errors.js +24 -0
- package/dist/api/library/host.d.ts +24 -0
- package/dist/api/library/host.js +52 -0
- package/dist/api/library/index.d.ts +14 -0
- package/dist/api/library/index.js +15 -0
- package/dist/api/library/nodes.d.ts +51 -0
- package/dist/api/library/nodes.js +196 -0
- package/dist/api/library/options.d.ts +144 -0
- package/dist/api/library/options.js +308 -0
- package/dist/api/library/parse.d.ts +19 -0
- package/dist/api/library/parse.js +41 -0
- package/dist/api/library/program.d.ts +21 -0
- package/dist/api/library/program.js +234 -0
- package/dist/api/library/symbols.d.ts +8 -0
- package/dist/api/library/symbols.js +11 -0
- package/dist/api/library/types.d.ts +313 -0
- package/dist/api/library/types.js +6 -0
- package/package.json +22 -8
- package/src/compiler/ast-utilities.ts +548 -0
- package/src/compiler/ast.ts +12862 -0
- package/src/compiler/astnav.ts +799 -0
- package/src/compiler/binder-utilities.ts +1392 -0
- package/src/compiler/binder.ts +2703 -0
- package/src/compiler/build-info.ts +1197 -0
- package/src/compiler/character-codes.ts +323 -0
- package/src/compiler/checker-calls.ts +2155 -0
- package/src/compiler/checker-classes.ts +706 -0
- package/src/compiler/checker-contextual.ts +1457 -0
- package/src/compiler/checker-declaration-order.ts +438 -0
- package/src/compiler/checker-declarations.ts +1194 -0
- package/src/compiler/checker-declared-types.ts +919 -0
- package/src/compiler/checker-decorators.ts +694 -0
- package/src/compiler/checker-deprecation.ts +359 -0
- package/src/compiler/checker-destructuring.ts +805 -0
- package/src/compiler/checker-elaboration.ts +477 -0
- package/src/compiler/checker-emit-helpers.ts +224 -0
- package/src/compiler/checker-emit-resolver.ts +769 -0
- package/src/compiler/checker-evaluator.ts +243 -0
- package/src/compiler/checker-expressions.ts +1831 -0
- package/src/compiler/checker-features.ts +361 -0
- package/src/compiler/checker-flow.ts +394 -0
- package/src/compiler/checker-functions.ts +1296 -0
- package/src/compiler/checker-generated-code.ts +227 -0
- package/src/compiler/checker-globals.ts +52 -0
- package/src/compiler/checker-grammar.ts +3584 -0
- package/src/compiler/checker-heritage.ts +1233 -0
- package/src/compiler/checker-inference.ts +2576 -0
- package/src/compiler/checker-iteration.ts +1206 -0
- package/src/compiler/checker-javascript.ts +502 -0
- package/src/compiler/checker-jsdoc.ts +360 -0
- package/src/compiler/checker-jsx.ts +1924 -0
- package/src/compiler/checker-literals.ts +61 -0
- package/src/compiler/checker-members.ts +2436 -0
- package/src/compiler/checker-modules.ts +2886 -0
- package/src/compiler/checker-narrowing.ts +3230 -0
- package/src/compiler/checker-object-literals.ts +575 -0
- package/src/compiler/checker-operators.ts +1422 -0
- package/src/compiler/checker-overloads.ts +328 -0
- package/src/compiler/checker-property-access.ts +906 -0
- package/src/compiler/checker-services.ts +1149 -0
- package/src/compiler/checker-signatures.ts +1032 -0
- package/src/compiler/checker-source-file.ts +732 -0
- package/src/compiler/checker-statements.ts +292 -0
- package/src/compiler/checker-super.ts +261 -0
- package/src/compiler/checker-symbol-types.ts +2107 -0
- package/src/compiler/checker-symbols.ts +2150 -0
- package/src/compiler/checker-type-factory.ts +2579 -0
- package/src/compiler/checker-type-nodes.ts +1033 -0
- package/src/compiler/checker-type-operators.ts +2502 -0
- package/src/compiler/checker-types.ts +2340 -0
- package/src/compiler/checker-unused.ts +642 -0
- package/src/compiler/checker-utilities.ts +161 -0
- package/src/compiler/checker.ts +1116 -0
- package/src/compiler/command-line.ts +436 -0
- package/src/compiler/compile-program.ts +439 -0
- package/src/compiler/decoder.ts +1209 -0
- package/src/compiler/diagnostic-locales.ts +86 -0
- package/src/compiler/diagnostic-messages.ts +2349 -0
- package/src/compiler/diagnostics.ts +897 -0
- package/src/compiler/emitter.ts +434 -0
- package/src/compiler/encoder.ts +1945 -0
- package/src/compiler/file-include.ts +673 -0
- package/src/compiler/file-loader.ts +1528 -0
- package/src/compiler/file-system.ts +143 -0
- package/src/compiler/flow.ts +89 -0
- package/src/compiler/help.ts +473 -0
- package/src/compiler/incremental.ts +2784 -0
- package/src/compiler/init.ts +141 -0
- package/src/compiler/instantiation.ts +894 -0
- package/src/compiler/jsdoc.ts +1386 -0
- package/src/compiler/link-tables.ts +98 -0
- package/src/compiler/locale-data.ts +203 -0
- package/src/compiler/locale.ts +307 -0
- package/src/compiler/locales/cs-CZ.ts +5 -0
- package/src/compiler/locales/de-DE.ts +5 -0
- package/src/compiler/locales/es-ES.ts +5 -0
- package/src/compiler/locales/fr-FR.ts +5 -0
- package/src/compiler/locales/it-IT.ts +5 -0
- package/src/compiler/locales/ja-JP.ts +5 -0
- package/src/compiler/locales/ko-KR.ts +5 -0
- package/src/compiler/locales/pl-PL.ts +5 -0
- package/src/compiler/locales/pt-BR.ts +5 -0
- package/src/compiler/locales/ru-RU.ts +5 -0
- package/src/compiler/locales/tr-TR.ts +5 -0
- package/src/compiler/locales/zh-CN.ts +5 -0
- package/src/compiler/locales/zh-TW.ts +5 -0
- package/src/compiler/module-resolution-types.ts +243 -0
- package/src/compiler/module-resolution.ts +2072 -0
- package/src/compiler/module-specifiers.ts +1491 -0
- package/src/compiler/name-resolver.ts +646 -0
- package/src/compiler/node-builder-names.ts +1069 -0
- package/src/compiler/node-builder-pseudo.ts +892 -0
- package/src/compiler/node-builder-reuse.ts +764 -0
- package/src/compiler/node-builder.ts +3425 -0
- package/src/compiler/option-declarations.ts +1560 -0
- package/src/compiler/options.ts +1576 -0
- package/src/compiler/output-paths.ts +334 -0
- package/src/compiler/package-json.ts +1083 -0
- package/src/compiler/parallel-check.ts +1951 -0
- package/src/compiler/parallel-parse.ts +590 -0
- package/src/compiler/parse-thread.ts +140 -0
- package/src/compiler/parser.ts +7716 -0
- package/src/compiler/path.ts +717 -0
- package/src/compiler/printer/async-helpers.ts +183 -0
- package/src/compiler/printer/auto-generate.ts +27 -0
- package/src/compiler/printer/decorator-helpers.ts +218 -0
- package/src/compiler/printer/emit-context.ts +679 -0
- package/src/compiler/printer/emit-flags.ts +64 -0
- package/src/compiler/printer/factory-base.ts +2577 -0
- package/src/compiler/printer/factory.ts +764 -0
- package/src/compiler/printer/helpers.ts +291 -0
- package/src/compiler/printer/name-generator.ts +372 -0
- package/src/compiler/printer/printer.ts +5072 -0
- package/src/compiler/printer/text-writer.ts +183 -0
- package/src/compiler/printer/utilities.ts +884 -0
- package/src/compiler/program-checker.ts +592 -0
- package/src/compiler/program-utilities.ts +435 -0
- package/src/compiler/program.ts +1419 -0
- package/src/compiler/pseudo-bigint.ts +62 -0
- package/src/compiler/regexp-checker.ts +1142 -0
- package/src/compiler/relations.ts +5149 -0
- package/src/compiler/reparser.ts +1566 -0
- package/src/compiler/scanner.ts +2951 -0
- package/src/compiler/show-config.ts +239 -0
- package/src/compiler/side-state.ts +125 -0
- package/src/compiler/sourcemap.ts +366 -0
- package/src/compiler/spelling.ts +122 -0
- package/src/compiler/symbol-accessibility.ts +1071 -0
- package/src/compiler/symbol.ts +439 -0
- package/src/compiler/symlinks.ts +137 -0
- package/src/compiler/syntax-kind.ts +391 -0
- package/src/compiler/thread-entry.ts +191 -0
- package/src/compiler/timeline.ts +53 -0
- package/src/compiler/transformers/alias-references.ts +757 -0
- package/src/compiler/transformers/async-utilities.ts +335 -0
- package/src/compiler/transformers/async.ts +838 -0
- package/src/compiler/transformers/class-fields.ts +2967 -0
- package/src/compiler/transformers/class-utilities.ts +324 -0
- package/src/compiler/transformers/commonjs-module.ts +1621 -0
- package/src/compiler/transformers/const-enum-inliner.ts +50 -0
- package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
- package/src/compiler/transformers/declarations-pseudo.ts +966 -0
- package/src/compiler/transformers/declarations-resolver.ts +249 -0
- package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
- package/src/compiler/transformers/declarations-tracker.ts +269 -0
- package/src/compiler/transformers/declarations.ts +3120 -0
- package/src/compiler/transformers/decorator-metadata.ts +697 -0
- package/src/compiler/transformers/decorator-utilities.ts +283 -0
- package/src/compiler/transformers/destructuring.ts +708 -0
- package/src/compiler/transformers/downlevel.ts +50 -0
- package/src/compiler/transformers/emit-resolver.ts +258 -0
- package/src/compiler/transformers/es-decorators.ts +2682 -0
- package/src/compiler/transformers/exponentiation.ts +80 -0
- package/src/compiler/transformers/external-module-info.ts +412 -0
- package/src/compiler/transformers/for-await.ts +687 -0
- package/src/compiler/transformers/import-elision.ts +152 -0
- package/src/compiler/transformers/jsx-entities.ts +256 -0
- package/src/compiler/transformers/jsx.ts +824 -0
- package/src/compiler/transformers/legacy-decorators.ts +726 -0
- package/src/compiler/transformers/logical-assignment.ts +75 -0
- package/src/compiler/transformers/module-utilities.ts +42 -0
- package/src/compiler/transformers/module.ts +474 -0
- package/src/compiler/transformers/named-evaluation.ts +389 -0
- package/src/compiler/transformers/nullish-coalescing.ts +35 -0
- package/src/compiler/transformers/object-rest-spread.ts +577 -0
- package/src/compiler/transformers/optional-catch.ts +29 -0
- package/src/compiler/transformers/optional-chain.ts +246 -0
- package/src/compiler/transformers/reference-resolver.ts +1201 -0
- package/src/compiler/transformers/runtime-syntax.ts +942 -0
- package/src/compiler/transformers/subtree-facts.ts +245 -0
- package/src/compiler/transformers/syntax-facts.ts +353 -0
- package/src/compiler/transformers/tagged-template.ts +167 -0
- package/src/compiler/transformers/transformer.ts +56 -0
- package/src/compiler/transformers/type-eraser.ts +520 -0
- package/src/compiler/transformers/type-serialization.ts +374 -0
- package/src/compiler/transformers/using.ts +613 -0
- package/src/compiler/transformers/utilities.ts +419 -0
- package/src/compiler/transformers/visitor-base.ts +1601 -0
- package/src/compiler/transformers/visitor-hooks.ts +252 -0
- package/src/compiler/tsc-build.ts +1418 -0
- package/src/compiler/tsc-cli.ts +666 -0
- package/src/compiler/tsc-compile.ts +437 -0
- package/src/compiler/tsc-watch.ts +854 -0
- package/src/compiler/tsconfig.ts +1574 -0
- package/src/compiler/type-printer.ts +110 -0
- package/src/compiler/types.ts +115 -0
- package/src/compiler/unicode-identifiers.ts +212 -0
- package/src/compiler/unicode-properties.ts +537 -0
- package/src/compiler/vfs-match.ts +597 -0
- package/src/compiler/xxh3.ts +650 -0
- package/src/library/ast.generated.ts +1685 -0
- package/src/library/ast.ts +104 -0
- package/src/library/checker.ts +384 -0
- package/src/library/compiler-options.generated.ts +114 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/enums.generated.ts +1024 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +71 -0
- package/src/library/nodes.ts +232 -0
- package/src/library/options.ts +449 -0
- package/src/library/parse.ts +63 -0
- package/src/library/program.ts +293 -0
- package/src/library/symbols.ts +15 -0
- package/src/library/types.ts +359 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Node } from './ast.js';
|
|
2
|
+
import { type Checker } from './checker.js';
|
|
3
|
+
import { type Symbol } from './symbol.js';
|
|
4
|
+
/** Reports a block-scoped variable, class or enum resolved at `errorLocation` before its declaration. */
|
|
5
|
+
export declare function checkResolvedBlockScopedVariable(c: Checker, resolved: Symbol, errorLocation: Node): void;
|
|
6
|
+
/** Reports a class property read in an initializer before it's initialized. */
|
|
7
|
+
export declare function checkPropertyNotUsedBeforeDeclaration(c: Checker, prop: Symbol, node: Node, right: Node): void;
|
|
8
|
+
export declare function isInPropertyInitializerOrClassStaticBlock(node: Node, ignoreArrowFunctions: boolean): boolean;
|
|
9
|
+
export declare function getEmitStandardClassFields(c: Checker): boolean;
|
|
10
|
+
/** Whether a use of a block-scoped declaration is legal: after it, or deferred until it's initialized. */
|
|
11
|
+
export declare function isBlockScopedNameDeclaredBeforeUse(c: Checker, declaration: Node, usage: Node): boolean;
|
|
12
|
+
export declare function getEnclosingBlockScopeContainer(node: Node): Node | undefined;
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
// Declaration order: uses of block-scoped variables, classes, enums and class properties before
|
|
2
|
+
// their declarations or initialization.
|
|
3
|
+
import { getExpression, getInitializer, getPostfixToken, getText, getName, getMembers, } from './ast.js';
|
|
4
|
+
import { declarationNameToString, getContainingClass, getImmediatelyInvokedFunctionExpression, getNameOfDeclaration, getSourceFileOfNode, isAccessExpression, isBlockOrCatchScoped, isClassLike, isParameterPropertyDeclaration, isPartOfTypeQuery, isStatic, } from './binder-utilities.js';
|
|
5
|
+
import { isFunctionLike } from './ast-utilities.js';
|
|
6
|
+
import { createDiagnosticForNode } from './checker.js';
|
|
7
|
+
import { ScriptTarget } from './options.js';
|
|
8
|
+
import { getSymbolOfDeclaration } from './checker-symbols.js';
|
|
9
|
+
import { getTypeOfSymbol } from './checker-symbol-types.js';
|
|
10
|
+
import { isPropertyInitializedInStaticBlocks } from './checker-classes.js';
|
|
11
|
+
import { getExportSymbolOfValueSymbolIfExported } from './checker-symbols.js';
|
|
12
|
+
import { getBaseTypes, getDeclaredTypeOfSymbol } from './checker-declared-types.js';
|
|
13
|
+
import { getPropertyOfType } from './checker-members.js';
|
|
14
|
+
import { getFunctionFlags } from './checker-utilities.js';
|
|
15
|
+
/** Reports a block-scoped variable, class or enum resolved at `errorLocation` before its declaration. */
|
|
16
|
+
export function checkResolvedBlockScopedVariable(c, resolved, errorLocation) {
|
|
17
|
+
const result = getExportSymbolOfValueSymbolIfExported(c, resolved);
|
|
18
|
+
if ((result.flags & (2 /* SymbolFlags.BlockScopedVariable */ | 32 /* SymbolFlags.Class */ | 384 /* SymbolFlags.Enum */)) === 0)
|
|
19
|
+
return;
|
|
20
|
+
// Constructor functions aren't block scoped.
|
|
21
|
+
if ((result.flags & (16 /* SymbolFlags.Function */ | 1 /* SymbolFlags.FunctionScopedVariable */ | 67108864 /* SymbolFlags.Assignment */)) !== 0 &&
|
|
22
|
+
(result.flags & 32 /* SymbolFlags.Class */) !== 0)
|
|
23
|
+
return;
|
|
24
|
+
let declaration;
|
|
25
|
+
for (const d of result.declarations) {
|
|
26
|
+
if (isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 267 /* SyntaxKind.EnumDeclaration */) {
|
|
27
|
+
declaration = d;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (declaration === undefined ||
|
|
32
|
+
(declaration.flags & 8388608 /* NodeFlags.Ambient */) !== 0 ||
|
|
33
|
+
isBlockScopedNameDeclaredBeforeUse(c, declaration, errorLocation))
|
|
34
|
+
return;
|
|
35
|
+
const declarationName = declarationNameToString(getSourceFileOfNode(declaration), getNameOfDeclaration(declaration));
|
|
36
|
+
let diagnostic = undefined;
|
|
37
|
+
if ((result.flags & 2 /* SymbolFlags.BlockScopedVariable */) !== 0)
|
|
38
|
+
diagnostic = c.error(errorLocation, 616 /* Diagnostics.Block_scoped_variable_0_used_before_its_declaration */, declarationName);
|
|
39
|
+
else if ((result.flags & 32 /* SymbolFlags.Class */) !== 0)
|
|
40
|
+
diagnostic = c.error(errorLocation, 617 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
|
|
41
|
+
else if ((result.flags & 256 /* SymbolFlags.RegularEnum */) !== 0 || c.isolatedModules)
|
|
42
|
+
diagnostic = c.error(errorLocation, 618 /* Diagnostics.Enum_0_used_before_its_declaration */, declarationName);
|
|
43
|
+
if (diagnostic !== undefined)
|
|
44
|
+
diagnostic.addRelatedInfo(createDiagnosticForNode(declaration, 860 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
|
|
45
|
+
}
|
|
46
|
+
/** Reports a class property read in an initializer before it's initialized. */
|
|
47
|
+
export function checkPropertyNotUsedBeforeDeclaration(c, prop, node, right) {
|
|
48
|
+
const valueDeclaration = prop.valueDeclaration;
|
|
49
|
+
if (valueDeclaration === undefined || getSourceFileOfNode(node).isDeclarationFile)
|
|
50
|
+
return;
|
|
51
|
+
const declarationName = getText(right);
|
|
52
|
+
let diagnostic = undefined;
|
|
53
|
+
if (isInPropertyInitializerOrClassStaticBlock(node, false) &&
|
|
54
|
+
!isOptionalPropertyDeclaration(valueDeclaration) &&
|
|
55
|
+
!(isAccessExpression(node) && isAccessExpression(getExpression(node))) &&
|
|
56
|
+
!isBlockScopedNameDeclaredBeforeUse(c, valueDeclaration, right) &&
|
|
57
|
+
!(valueDeclaration.kind === 175 /* SyntaxKind.MethodDeclaration */ && isStatic(valueDeclaration)) &&
|
|
58
|
+
(getUseDefineForClassFields(c) || !isPropertyDeclaredInAncestorClass(c, prop)))
|
|
59
|
+
diagnostic = c.error(right, 861 /* Diagnostics.Property_0_is_used_before_its_initialization */, declarationName);
|
|
60
|
+
else if (valueDeclaration.kind === 264 /* SyntaxKind.ClassDeclaration */ &&
|
|
61
|
+
node.parent.kind !== 184 /* SyntaxKind.TypeReference */ &&
|
|
62
|
+
(valueDeclaration.flags & 8388608 /* NodeFlags.Ambient */) === 0 &&
|
|
63
|
+
!isBlockScopedNameDeclaredBeforeUse(c, valueDeclaration, right))
|
|
64
|
+
diagnostic = c.error(right, 617 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
|
|
65
|
+
if (diagnostic !== undefined)
|
|
66
|
+
diagnostic.addRelatedInfo(createDiagnosticForNode(valueDeclaration, 860 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
|
|
67
|
+
}
|
|
68
|
+
export function isInPropertyInitializerOrClassStaticBlock(node, ignoreArrowFunctions) {
|
|
69
|
+
for (let current = node; current !== undefined; current = current.parent) {
|
|
70
|
+
switch (current.kind) {
|
|
71
|
+
case 173 /* SyntaxKind.PropertyDeclaration */:
|
|
72
|
+
case 176 /* SyntaxKind.ClassStaticBlockDeclaration */:
|
|
73
|
+
return true;
|
|
74
|
+
case 187 /* SyntaxKind.TypeQuery */:
|
|
75
|
+
case 288 /* SyntaxKind.JsxClosingElement */:
|
|
76
|
+
return false;
|
|
77
|
+
case 220 /* SyntaxKind.ArrowFunction */:
|
|
78
|
+
if (!ignoreArrowFunctions)
|
|
79
|
+
return false;
|
|
80
|
+
break;
|
|
81
|
+
case 242 /* SyntaxKind.Block */: {
|
|
82
|
+
const parent = current.parent;
|
|
83
|
+
if (isFunctionLike(parent) && parent.kind !== 220 /* SyntaxKind.ArrowFunction */)
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
function isOptionalPropertyDeclaration(node) {
|
|
91
|
+
if (node.kind !== 173 /* SyntaxKind.PropertyDeclaration */)
|
|
92
|
+
return false;
|
|
93
|
+
const postfix = getPostfixToken(node);
|
|
94
|
+
return postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */;
|
|
95
|
+
}
|
|
96
|
+
function isPropertyDeclaredInAncestorClass(c, prop) {
|
|
97
|
+
const parent = prop.parent;
|
|
98
|
+
if (parent === undefined || (parent.flags & 32 /* SymbolFlags.Class */) === 0)
|
|
99
|
+
return false;
|
|
100
|
+
const baseTypes = getBaseTypes(c, getDeclaredTypeOfSymbol(c, parent));
|
|
101
|
+
if (baseTypes.length === 0)
|
|
102
|
+
return false;
|
|
103
|
+
const superProperty = getPropertyOfType(c, baseTypes[0], prop.name);
|
|
104
|
+
return superProperty !== undefined && superProperty.valueDeclaration !== undefined;
|
|
105
|
+
}
|
|
106
|
+
function getUseDefineForClassFields(c) {
|
|
107
|
+
return c.compilerOptions.useDefineForClassFields ?? c.languageVersion >= ScriptTarget.ES2022;
|
|
108
|
+
}
|
|
109
|
+
export function getEmitStandardClassFields(c) {
|
|
110
|
+
return c.compilerOptions.useDefineForClassFields !== false && c.languageVersion >= ScriptTarget.ES2022;
|
|
111
|
+
}
|
|
112
|
+
/** Whether a use of a block-scoped declaration is legal: after it, or deferred until it's initialized. */
|
|
113
|
+
export function isBlockScopedNameDeclaredBeforeUse(c, declaration, usage) {
|
|
114
|
+
if (getSourceFileOfNode(declaration) !== getSourceFileOfNode(usage))
|
|
115
|
+
return true;
|
|
116
|
+
const declContainer = getEnclosingBlockScopeContainer(declaration);
|
|
117
|
+
// Uses in type contexts are deferred.
|
|
118
|
+
if ((usage.flags & 4194304 /* NodeFlags.JSDoc */) !== 0 || isPartOfTypeQuery(usage) || isInAmbientOrTypeNode(usage))
|
|
119
|
+
return true;
|
|
120
|
+
if (declaration.pos <= usage.pos &&
|
|
121
|
+
!(declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ &&
|
|
122
|
+
isThisProperty(usage.parent) &&
|
|
123
|
+
getInitializer(declaration) === undefined &&
|
|
124
|
+
declaration.postfixToken?.kind !== 53 /* SyntaxKind.ExclamationToken */)) {
|
|
125
|
+
if (declaration.kind === 209 /* SyntaxKind.BindingElement */) {
|
|
126
|
+
// Binding elements may use earlier siblings only (`var [a = b, b = b] = ...` is an error).
|
|
127
|
+
const errorBindingElement = findAncestorOfKind(usage, 209 /* SyntaxKind.BindingElement */);
|
|
128
|
+
if (errorBindingElement !== undefined)
|
|
129
|
+
return (findAncestorOfKind(errorBindingElement, 209 /* SyntaxKind.BindingElement */) !==
|
|
130
|
+
findAncestorOfKind(declaration, 209 /* SyntaxKind.BindingElement */) || declaration.pos < errorBindingElement.pos);
|
|
131
|
+
// `var [a] = a` uses the variable before its declaration.
|
|
132
|
+
return isBlockScopedNameDeclaredBeforeUse(c, findAncestorOfKind(declaration, 261 /* SyntaxKind.VariableDeclaration */), usage);
|
|
133
|
+
}
|
|
134
|
+
if (declaration.kind === 261 /* SyntaxKind.VariableDeclaration */)
|
|
135
|
+
// `var a = a` uses the variable in its own initializer.
|
|
136
|
+
return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage, declContainer);
|
|
137
|
+
if (isClassLike(declaration))
|
|
138
|
+
return !isUsedInClassComputedNameOrDecorator(c, declaration, usage);
|
|
139
|
+
if (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */)
|
|
140
|
+
// A self-referencing property initializer, as in `x = this.x`.
|
|
141
|
+
return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, false);
|
|
142
|
+
if (isParameterPropertyDeclaration(declaration, declaration.parent))
|
|
143
|
+
// `foo = this.bar` with standard class fields, when bar is a parameter property.
|
|
144
|
+
return !(getEmitStandardClassFields(c) &&
|
|
145
|
+
getContainingClass(declaration) === getContainingClass(usage) &&
|
|
146
|
+
isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer));
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
// Uses after the declaration are legal when deferred: in export specifiers and `export =`,
|
|
150
|
+
// functions, and instance property initializers referencing other members.
|
|
151
|
+
const parent = usage.parent;
|
|
152
|
+
if (parent.kind === 282 /* SyntaxKind.ExportSpecifier */ || isExportEquals(parent) || isExportEquals(usage))
|
|
153
|
+
return true;
|
|
154
|
+
if (isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer)) {
|
|
155
|
+
if (getEmitStandardClassFields(c) &&
|
|
156
|
+
getContainingClass(declaration) !== undefined &&
|
|
157
|
+
(declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ ||
|
|
158
|
+
isParameterPropertyDeclaration(declaration, declaration.parent)))
|
|
159
|
+
return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, true);
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
function isExportEquals(node) {
|
|
165
|
+
return node.kind === 278 /* SyntaxKind.ExportAssignment */ && node.isExportEquals;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Whether a use of a class within its own declaration happens before the class exists: in a
|
|
169
|
+
* computed member name, or in a decorator outside a deferred function.
|
|
170
|
+
*/
|
|
171
|
+
function isUsedInClassComputedNameOrDecorator(c, declaration, usage) {
|
|
172
|
+
const legacyDecorators = c.compilerOptions.experimentalDecorators === true;
|
|
173
|
+
let container = usage;
|
|
174
|
+
while (container !== undefined && container !== declaration) {
|
|
175
|
+
if (container.kind === 168 /* SyntaxKind.ComputedPropertyName */ && container.parent.parent === declaration)
|
|
176
|
+
break;
|
|
177
|
+
if (!legacyDecorators && container.kind === 171 /* SyntaxKind.Decorator */) {
|
|
178
|
+
const decorated = container.parent;
|
|
179
|
+
if (decorated === declaration ||
|
|
180
|
+
((decorated.kind === 175 /* SyntaxKind.MethodDeclaration */ ||
|
|
181
|
+
decorated.kind === 178 /* SyntaxKind.GetAccessor */ ||
|
|
182
|
+
decorated.kind === 179 /* SyntaxKind.SetAccessor */ ||
|
|
183
|
+
decorated.kind === 173 /* SyntaxKind.PropertyDeclaration */) &&
|
|
184
|
+
decorated.parent === declaration) ||
|
|
185
|
+
(decorated.kind === 170 /* SyntaxKind.Parameter */ && decorated.parent.parent === declaration))
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
container = container.parent;
|
|
189
|
+
}
|
|
190
|
+
if (container === undefined || container === declaration)
|
|
191
|
+
return false;
|
|
192
|
+
if (!legacyDecorators && container.kind === 171 /* SyntaxKind.Decorator */) {
|
|
193
|
+
let n = usage;
|
|
194
|
+
while (n !== undefined && n !== container) {
|
|
195
|
+
if (isFunctionLike(n) && getImmediatelyInvokedFunctionExpression(n) === undefined)
|
|
196
|
+
break;
|
|
197
|
+
n = n.parent;
|
|
198
|
+
}
|
|
199
|
+
return !(n !== undefined && n !== container);
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
function isThisProperty(node) {
|
|
204
|
+
return isAccessExpression(node) && getExpression(node).kind === 109 /* SyntaxKind.ThisKeyword */;
|
|
205
|
+
}
|
|
206
|
+
function findAncestorOfKind(node, kind) {
|
|
207
|
+
for (let current = node; current !== undefined; current = current.parent)
|
|
208
|
+
if (current.kind === kind)
|
|
209
|
+
return current;
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
function isInAmbientOrTypeNode(node) {
|
|
213
|
+
if ((node.flags & 8388608 /* NodeFlags.Ambient */) !== 0)
|
|
214
|
+
return true;
|
|
215
|
+
for (let current = node; current !== undefined; current = current.parent)
|
|
216
|
+
if (current.kind === 265 /* SyntaxKind.InterfaceDeclaration */ ||
|
|
217
|
+
current.kind === 266 /* SyntaxKind.TypeAliasDeclaration */ ||
|
|
218
|
+
current.kind === 188 /* SyntaxKind.TypeLiteral */)
|
|
219
|
+
return true;
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
export function getEnclosingBlockScopeContainer(node) {
|
|
223
|
+
for (let current = node.parent; current !== undefined; current = current.parent) {
|
|
224
|
+
switch (current.kind) {
|
|
225
|
+
case 307 /* SyntaxKind.SourceFile */:
|
|
226
|
+
case 270 /* SyntaxKind.CaseBlock */:
|
|
227
|
+
case 300 /* SyntaxKind.CatchClause */:
|
|
228
|
+
case 268 /* SyntaxKind.ModuleDeclaration */:
|
|
229
|
+
case 249 /* SyntaxKind.ForStatement */:
|
|
230
|
+
case 250 /* SyntaxKind.ForInStatement */:
|
|
231
|
+
case 251 /* SyntaxKind.ForOfStatement */:
|
|
232
|
+
case 177 /* SyntaxKind.Constructor */:
|
|
233
|
+
case 175 /* SyntaxKind.MethodDeclaration */:
|
|
234
|
+
case 178 /* SyntaxKind.GetAccessor */:
|
|
235
|
+
case 179 /* SyntaxKind.SetAccessor */:
|
|
236
|
+
case 263 /* SyntaxKind.FunctionDeclaration */:
|
|
237
|
+
case 219 /* SyntaxKind.FunctionExpression */:
|
|
238
|
+
case 220 /* SyntaxKind.ArrowFunction */:
|
|
239
|
+
case 173 /* SyntaxKind.PropertyDeclaration */:
|
|
240
|
+
case 176 /* SyntaxKind.ClassStaticBlockDeclaration */:
|
|
241
|
+
return current;
|
|
242
|
+
case 242 /* SyntaxKind.Block */: {
|
|
243
|
+
// Function bodies aren't block scope containers of their own.
|
|
244
|
+
const parent = current.parent;
|
|
245
|
+
if (!isFunctionLike(parent) && parent.kind !== 176 /* SyntaxKind.ClassStaticBlockDeclaration */)
|
|
246
|
+
return current;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
function isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer) {
|
|
253
|
+
for (let current = usage; current !== undefined; current = current.parent) {
|
|
254
|
+
if (current === declContainer)
|
|
255
|
+
return false;
|
|
256
|
+
if (isFunctionLike(current)) {
|
|
257
|
+
if (getImmediatelyInvokedFunctionExpression(current) === undefined)
|
|
258
|
+
return true;
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
if (current.kind === 176 /* SyntaxKind.ClassStaticBlockDeclaration */) {
|
|
262
|
+
if (declaration.pos < usage.pos)
|
|
263
|
+
return true;
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
const parent = current.parent;
|
|
267
|
+
if (parent !== undefined && parent.kind === 173 /* SyntaxKind.PropertyDeclaration */ && getInitializer(parent) === current) {
|
|
268
|
+
if (isStatic(parent)) {
|
|
269
|
+
if (declaration.kind === 175 /* SyntaxKind.MethodDeclaration */)
|
|
270
|
+
return true;
|
|
271
|
+
// A static property assigned in a static block before the initializer.
|
|
272
|
+
if (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ &&
|
|
273
|
+
getContainingClass(usage) === getContainingClass(declaration)) {
|
|
274
|
+
const propName = getName(declaration);
|
|
275
|
+
if (propName.kind === 79 /* SyntaxKind.Identifier */ || propName.kind === 80 /* SyntaxKind.PrivateIdentifier */) {
|
|
276
|
+
const symbol = getSymbolOfDeclaration(c, declaration);
|
|
277
|
+
const staticBlocks = [];
|
|
278
|
+
for (const m of getMembers(declaration.parent).nodes)
|
|
279
|
+
if (m.kind === 176 /* SyntaxKind.ClassStaticBlockDeclaration */)
|
|
280
|
+
staticBlocks.push(m);
|
|
281
|
+
if (symbol !== undefined &&
|
|
282
|
+
isPropertyInitializedInStaticBlocks(c, propName, getTypeOfSymbol(c, symbol), staticBlocks, declaration.parent.pos, current.pos))
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
const isDeclarationInstanceProperty = declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ && !isStatic(declaration);
|
|
289
|
+
if (!isDeclarationInstanceProperty || getContainingClass(usage) !== getContainingClass(declaration))
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (parent !== undefined && parent.kind === 171 /* SyntaxKind.Decorator */ && getExpression(parent) === current) {
|
|
294
|
+
const decorated = parent.parent;
|
|
295
|
+
if (decorated.kind === 170 /* SyntaxKind.Parameter */)
|
|
296
|
+
return isUsedInFunctionOrInstanceProperty(c, decorated.parent.parent, declaration, declContainer);
|
|
297
|
+
if (decorated.kind === 175 /* SyntaxKind.MethodDeclaration */)
|
|
298
|
+
return isUsedInFunctionOrInstanceProperty(c, decorated.parent, declaration, declContainer);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage, declContainer) {
|
|
304
|
+
const grandparent = declaration.parent.parent;
|
|
305
|
+
switch (grandparent.kind) {
|
|
306
|
+
case 244 /* SyntaxKind.VariableStatement */:
|
|
307
|
+
case 249 /* SyntaxKind.ForStatement */:
|
|
308
|
+
case 251 /* SyntaxKind.ForOfStatement */:
|
|
309
|
+
// The use is within the declaration: its initializer or a binding element.
|
|
310
|
+
if (isSameScopeDescendentOf(usage, declaration, declContainer))
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
// In `for (... in/of expr)`, the use is within the expression.
|
|
314
|
+
return ((grandparent.kind === 250 /* SyntaxKind.ForInStatement */ || grandparent.kind === 251 /* SyntaxKind.ForOfStatement */) &&
|
|
315
|
+
isSameScopeDescendentOf(usage, getExpression(grandparent), declContainer));
|
|
316
|
+
}
|
|
317
|
+
/** Whether `initial` is within `parent` without crossing `stopAt` or a function that isn't an IIFE. */
|
|
318
|
+
function isSameScopeDescendentOf(initial, parent, stopAt) {
|
|
319
|
+
if (parent === undefined)
|
|
320
|
+
return false;
|
|
321
|
+
for (let n = initial; n !== undefined; n = n.parent) {
|
|
322
|
+
if (n === parent)
|
|
323
|
+
return true;
|
|
324
|
+
if (n === stopAt ||
|
|
325
|
+
(isFunctionLike(n) &&
|
|
326
|
+
(getImmediatelyInvokedFunctionExpression(n) === undefined ||
|
|
327
|
+
(getFunctionFlags(n) & 3 /* FunctionFlags.AsyncGenerator */) !== 0)))
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
return false;
|
|
331
|
+
}
|
|
332
|
+
/** Whether a property initializer references the property immediately rather than in a deferred function. */
|
|
333
|
+
function isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, stopAtAnyPropertyDeclaration) {
|
|
334
|
+
if (usage.end > declaration.end)
|
|
335
|
+
return false;
|
|
336
|
+
for (let node = usage; node !== undefined && node !== declaration; node = node.parent) {
|
|
337
|
+
switch (node.kind) {
|
|
338
|
+
case 220 /* SyntaxKind.ArrowFunction */:
|
|
339
|
+
return false;
|
|
340
|
+
case 173 /* SyntaxKind.PropertyDeclaration */:
|
|
341
|
+
// Even when stopping at any property declaration, it must be in the same class.
|
|
342
|
+
return (stopAtAnyPropertyDeclaration &&
|
|
343
|
+
((declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ && node.parent === declaration.parent) ||
|
|
344
|
+
(isParameterPropertyDeclaration(declaration, declaration.parent) &&
|
|
345
|
+
node.parent === declaration.parent.parent)));
|
|
346
|
+
case 242 /* SyntaxKind.Block */:
|
|
347
|
+
switch (node.parent.kind) {
|
|
348
|
+
case 175 /* SyntaxKind.MethodDeclaration */:
|
|
349
|
+
case 178 /* SyntaxKind.GetAccessor */:
|
|
350
|
+
case 179 /* SyntaxKind.SetAccessor */:
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Node, type NodeList, ModifierFlags } from './ast.js';
|
|
2
|
+
import { type Checker } from './checker.js';
|
|
3
|
+
import { type Type } from './checker-types.js';
|
|
4
|
+
export declare function checkVariableStatement(c: Checker, node: Node): void;
|
|
5
|
+
export declare function checkVariableDeclarationList(c: Checker, node: Node): void;
|
|
6
|
+
/** Checks a variable, parameter, property or binding element declaration. */
|
|
7
|
+
export declare function checkVariableLikeDeclaration(c: Checker, node: Node): void;
|
|
8
|
+
export declare function checkFunctionDeclaration(c: Checker, node: Node): void;
|
|
9
|
+
export declare function checkTypeParameter(c: Checker, node: Node): void;
|
|
10
|
+
/** Variance annotations are only allowed on type aliases of object, function, constructor and mapped types. */
|
|
11
|
+
export declare function checkTypeParameterDeferred(c: Checker, node: Node): void;
|
|
12
|
+
/** Checks a type parameter list: each parameter, default ordering and duplicate names. */
|
|
13
|
+
export declare function checkTypeParameters(c: Checker, list: NodeList | undefined): void;
|
|
14
|
+
export declare function checkTypeAliasDeclaration(c: Checker, node: Node): void;
|
|
15
|
+
/**
|
|
16
|
+
* Checks the type arguments of a type reference, an import type or a heritage type reference against the
|
|
17
|
+
* constraints of the type parameters of what it references, as tsgo's checkTypeReferenceOrImport does;
|
|
18
|
+
* not when `type`, the type of the reference, is the error type.
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkTypeArgumentConstraintsOfReference(c: Checker, node: Node, type: Type): void;
|
|
21
|
+
export declare function checkEnumMember(c: Checker, node: Node): void;
|
|
22
|
+
export declare function checkEnumDeclaration(c: Checker, node: Node): void;
|
|
23
|
+
/** Whether erasableSyntaxOnly applies at `node`: it is set, and `node` is in a TypeScript file. */
|
|
24
|
+
export declare function shouldCheckErasableSyntax(c: Checker, node: Node): boolean;
|
|
25
|
+
export declare function checkModuleDeclaration(c: Checker, node: Node): void;
|
|
26
|
+
export declare function isInstantiatedModule(node: Node, preserveConstEnums: boolean): boolean;
|
|
27
|
+
/** Reports `export =` mixed with other exports, and names exported by more than one declaration. */
|
|
28
|
+
export declare function checkExternalModuleExports(c: Checker, node: Node): void;
|
|
29
|
+
/** Reports merged declarations that mix exported and local (or default-exported) declarations. */
|
|
30
|
+
export declare function checkExportsOnMergedDeclarations(c: Checker, node: Node): void;
|
|
31
|
+
export declare function getEffectiveDeclarationFlags(node: Node, flagsToCheck: ModifierFlags): ModifierFlags;
|
|
32
|
+
/** Reports renamings in parameters of bodiless signatures whose new names are unused. */
|
|
33
|
+
export declare function checkUnusedRenamedBindingElements(c: Checker): void;
|