tsc-ts 0.0.10 → 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 +1 -1
- 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 +20 -15
- package/dist/api/compiler/ast.js +1023 -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 +173 -123
- 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 +469 -438
- 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 -113
- 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 +210 -74
- 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 +137 -34
- 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 +93 -31
- package/dist/api/compiler/checker.js +143 -35
- 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 +19 -4
- package/dist/api/compiler/compile-program.js +45 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- 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 +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- 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/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 +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -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 +1 -0
- package/dist/api/compiler/printer/printer.js +303 -281
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -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 +2 -0
- package/dist/api/compiler/program.js +69 -57
- 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 +337 -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 +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- 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 +55 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- 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 +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- 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 +197 -55
- 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 +120 -21
- 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 +168 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +51 -25
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- 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 +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +86 -18
- 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 +197 -8
- package/src/compiler/parallel-emit.ts +1 -1
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -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 +35 -14
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -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 +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +19 -2
- 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 +3 -0
- package/src/compiler/tsc-cli.ts +2 -0
- package/src/compiler/tsc-compile.ts +7 -2
- 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
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
isIncremental,
|
|
22
22
|
shouldPreserveConstEnums,
|
|
23
23
|
type CompilerOptions,
|
|
24
|
+
type PluginImport,
|
|
24
25
|
} from './options.js';
|
|
25
26
|
import { getDirectoryPath, getNormalizedAbsolutePath, getRelativePathFromFile } from './path.js';
|
|
26
27
|
|
|
@@ -45,6 +46,8 @@ const hiddenOptions = new Set([
|
|
|
45
46
|
'init',
|
|
46
47
|
'listFilesOnly',
|
|
47
48
|
'listEmittedFiles',
|
|
49
|
+
// TypeScript 7.1's generated serializer has no `listFiles`.
|
|
50
|
+
'listFiles',
|
|
48
51
|
'project',
|
|
49
52
|
'build',
|
|
50
53
|
'version',
|
|
@@ -85,7 +88,12 @@ export function showConfig(input: ShowConfigInput, configFileName: string): stri
|
|
|
85
88
|
if (option === undefined || hiddenOptions.has(option.name)) continue;
|
|
86
89
|
if (option.category === Diagnostics.Command_line_Options || option.category === Diagnostics.Output_Formatting)
|
|
87
90
|
continue;
|
|
88
|
-
const json =
|
|
91
|
+
const json =
|
|
92
|
+
name === 'paths'
|
|
93
|
+
? pathsJson(input.options.paths)
|
|
94
|
+
: name === 'plugins'
|
|
95
|
+
? pluginsJson(input.options.plugins)
|
|
96
|
+
: optionJson(option, input.options, paths);
|
|
89
97
|
if (json !== undefined) shown.set(option.name, json);
|
|
90
98
|
}
|
|
91
99
|
|
|
@@ -228,6 +236,15 @@ function jsonArray(items: readonly string[], level: number): string {
|
|
|
228
236
|
return '[\n' + inner + items.map((item) => JSON.stringify(item)).join(',\n' + inner) + '\n' + indent(level) + ']';
|
|
229
237
|
}
|
|
230
238
|
|
|
239
|
+
function pluginsJson(plugins: readonly PluginImport[] | undefined): string | undefined {
|
|
240
|
+
if (plugins === undefined) return undefined;
|
|
241
|
+
if (plugins.length === 0) return '[]';
|
|
242
|
+
const items = plugins.map(
|
|
243
|
+
(plugin) => indent(3) + '{\n' + indent(4) + '"name": ' + JSON.stringify(plugin.name) + '\n' + indent(3) + '}',
|
|
244
|
+
);
|
|
245
|
+
return '[\n' + items.join(',\n') + '\n' + indent(2) + ']';
|
|
246
|
+
}
|
|
247
|
+
|
|
231
248
|
function pathsJson(paths: ReadonlyMap<string, readonly string[] | undefined> | undefined): string | undefined {
|
|
232
249
|
if (paths === undefined) return undefined;
|
|
233
250
|
if (paths.size === 0) return '{}';
|
|
@@ -255,8 +255,8 @@ export class SourceMapGenerator {
|
|
|
255
255
|
let json =
|
|
256
256
|
'{"version":3,"file":' +
|
|
257
257
|
jsonString(this.file) +
|
|
258
|
-
|
|
259
|
-
jsonString(this.sourceRoot) +
|
|
258
|
+
// An empty source root is left out, as tsgo's `omitzero` does.
|
|
259
|
+
(this.sourceRoot === '' ? '' : ',"sourceRoot":' + jsonString(this.sourceRoot)) +
|
|
260
260
|
',"sources":' +
|
|
261
261
|
jsonStrings(this.sources) +
|
|
262
262
|
',"names":' +
|
|
@@ -39,7 +39,11 @@ import { type Checker, ExternalModuleContainerIndex, SymbolAccessibilityCaches,
|
|
|
39
39
|
import { getEffectiveDeclarationFlags } from './checker-declarations.js';
|
|
40
40
|
import { getDeclaredTypeOfSymbol } from './checker-declared-types.js';
|
|
41
41
|
import { checkExpressionCached } from './checker-expressions.js';
|
|
42
|
-
import {
|
|
42
|
+
import {
|
|
43
|
+
getImportAttributesTypeForModuleSpecifier,
|
|
44
|
+
resolveExternalModuleName,
|
|
45
|
+
resolveExternalModuleSymbol,
|
|
46
|
+
} from './checker-modules.js';
|
|
43
47
|
import {
|
|
44
48
|
getExportsOfSymbol,
|
|
45
49
|
getMergedSymbol,
|
|
@@ -351,7 +355,13 @@ function getAlternativeContainingModules(c: Checker, symbol: Symbol, enclosingDe
|
|
|
351
355
|
for (const importRef of containingFile.imports) {
|
|
352
356
|
// Synthesized specifiers can't be resolved.
|
|
353
357
|
if ((importRef.flags & NodeFlags.Synthesized) !== 0) continue;
|
|
354
|
-
const resolvedModule = resolveExternalModuleName(
|
|
358
|
+
const resolvedModule = resolveExternalModuleName(
|
|
359
|
+
c,
|
|
360
|
+
enclosingDeclaration,
|
|
361
|
+
importRef,
|
|
362
|
+
true,
|
|
363
|
+
getImportAttributesTypeForModuleSpecifier(c, importRef),
|
|
364
|
+
);
|
|
355
365
|
if (resolvedModule === undefined) continue;
|
|
356
366
|
if (getAliasForSymbolInContainer(c, resolvedModule, symbol) === undefined) continue;
|
|
357
367
|
results.push(resolvedModule);
|
|
@@ -718,11 +728,24 @@ class ChainSearch {
|
|
|
718
728
|
isAccessible(fromTable: Symbol, resolvedAlias: Symbol | undefined, ignoreQualification: boolean): boolean {
|
|
719
729
|
const c = this.c;
|
|
720
730
|
const symbol = getMergedSymbol(c, this.symbol);
|
|
721
|
-
|
|
731
|
+
let likeSymbols =
|
|
722
732
|
this.symbol === resolvedAlias ||
|
|
723
733
|
this.symbol === fromTable ||
|
|
724
734
|
(resolvedAlias !== undefined && symbol === getMergedSymbol(c, resolvedAlias)) ||
|
|
725
735
|
symbol === getMergedSymbol(c, fromTable);
|
|
736
|
+
// An alias of an alias, such as `export =` of a class that a top-level export also names, resolves further.
|
|
737
|
+
if (!likeSymbols && resolvedAlias !== undefined && (resolvedAlias.flags & SymbolFlags.Alias) !== 0) {
|
|
738
|
+
const seen = new Set<Symbol>();
|
|
739
|
+
let alias = resolvedAlias;
|
|
740
|
+
while ((alias.flags & SymbolFlags.Alias) !== 0 && !seen.has(alias)) {
|
|
741
|
+
seen.add(alias);
|
|
742
|
+
alias = getMergedSymbol(c, resolveAlias(c, alias));
|
|
743
|
+
if (symbol === alias) {
|
|
744
|
+
likeSymbols = true;
|
|
745
|
+
break;
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
}
|
|
726
749
|
if (!likeSymbols) return false;
|
|
727
750
|
// An external module in the global table isn't accessible by name; otherwise the name must be qualifiable.
|
|
728
751
|
return (
|
package/src/compiler/symbol.ts
CHANGED
|
@@ -124,22 +124,26 @@ export const enum CheckFlags {
|
|
|
124
124
|
ContainsPublic = 1 << 8,
|
|
125
125
|
ContainsProtected = 1 << 9,
|
|
126
126
|
ContainsPrivate = 1 << 10,
|
|
127
|
-
|
|
127
|
+
/** A synthetic property with public, protected or private write access in a constituent. */
|
|
128
|
+
ContainsWritePublic = 1 << 11,
|
|
129
|
+
ContainsWriteProtected = 1 << 12,
|
|
130
|
+
ContainsWritePrivate = 1 << 13,
|
|
131
|
+
ContainsStatic = 1 << 14,
|
|
128
132
|
/** Late-bound from a computed property name. */
|
|
129
|
-
Late = 1 <<
|
|
130
|
-
ReverseMapped = 1 <<
|
|
131
|
-
OptionalParameter = 1 <<
|
|
132
|
-
RestParameter = 1 <<
|
|
133
|
+
Late = 1 << 15,
|
|
134
|
+
ReverseMapped = 1 << 16,
|
|
135
|
+
OptionalParameter = 1 << 17,
|
|
136
|
+
RestParameter = 1 << 18,
|
|
133
137
|
/** The type is computed on demand. */
|
|
134
|
-
DeferredType = 1 <<
|
|
135
|
-
HasNeverType = 1 <<
|
|
136
|
-
Mapped = 1 <<
|
|
137
|
-
StripOptional = 1 <<
|
|
138
|
-
Unresolved = 1 <<
|
|
139
|
-
IsDiscriminantComputed = 1 <<
|
|
140
|
-
IsDiscriminant = 1 <<
|
|
138
|
+
DeferredType = 1 << 19,
|
|
139
|
+
HasNeverType = 1 << 20,
|
|
140
|
+
Mapped = 1 << 21,
|
|
141
|
+
StripOptional = 1 << 22,
|
|
142
|
+
Unresolved = 1 << 23,
|
|
143
|
+
IsDiscriminantComputed = 1 << 24,
|
|
144
|
+
IsDiscriminant = 1 << 25,
|
|
141
145
|
/** Created from an index signature. */
|
|
142
|
-
IndexSymbol = 1 <<
|
|
146
|
+
IndexSymbol = 1 << 26,
|
|
143
147
|
Synthetic = SyntheticProperty | SyntheticMethod,
|
|
144
148
|
NonUniformAndLiteral = HasNonUniformType | HasLiteralType,
|
|
145
149
|
Partial = ReadPartial | WritePartial,
|
|
@@ -320,7 +324,7 @@ export class Symbol implements ProgramLifetime {
|
|
|
320
324
|
|
|
321
325
|
/** Whether this is the symbol of an external module, named by its quoted path. */
|
|
322
326
|
isExternalModule(): boolean {
|
|
323
|
-
return (this.flags & SymbolFlags.Module) !== 0 && this.name
|
|
327
|
+
return (this.flags & SymbolFlags.Module) !== 0 && tryGetAmbientModuleNameFromSymbolName(this.name) !== undefined;
|
|
324
328
|
}
|
|
325
329
|
|
|
326
330
|
/** The flags of this symbol and its export symbol. */
|
|
@@ -504,6 +508,19 @@ export function getMembers(symbol: Symbol): SymbolTable {
|
|
|
504
508
|
*/
|
|
505
509
|
export const internalSymbolNamePrefix = '';
|
|
506
510
|
|
|
511
|
+
/**
|
|
512
|
+
* The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
|
|
513
|
+
* attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
|
|
514
|
+
*/
|
|
515
|
+
export function tryGetAmbientModuleNameFromSymbolName(name: string): string | undefined {
|
|
516
|
+
if (name.length >= 2 && name.charCodeAt(0) === 0x22 && name.charCodeAt(name.length - 1) === 0x22)
|
|
517
|
+
return name.substring(1, name.length - 1);
|
|
518
|
+
if (!name.startsWith(internalSymbolNamePrefix + '"')) return undefined;
|
|
519
|
+
const markerIndex = name.lastIndexOf('"pattern@');
|
|
520
|
+
if (markerIndex < internalSymbolNamePrefix.length + 2) return undefined;
|
|
521
|
+
return name.substring(internalSymbolNamePrefix.length + 1, markerIndex);
|
|
522
|
+
}
|
|
523
|
+
|
|
507
524
|
export const enum InternalSymbolName {
|
|
508
525
|
/** Call signatures. */
|
|
509
526
|
Call = 'call',
|
|
@@ -169,191 +169,192 @@ export const enum SyntaxKind {
|
|
|
169
169
|
OverrideKeyword = 164,
|
|
170
170
|
OfKeyword = 165,
|
|
171
171
|
DeferKeyword = 166,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
172
|
+
SourceKeyword = 167,
|
|
173
|
+
QualifiedName = 168,
|
|
174
|
+
ComputedPropertyName = 169,
|
|
175
|
+
TypeParameter = 170,
|
|
176
|
+
Parameter = 171,
|
|
177
|
+
Decorator = 172,
|
|
178
|
+
PropertySignature = 173,
|
|
179
|
+
PropertyDeclaration = 174,
|
|
180
|
+
MethodSignature = 175,
|
|
181
|
+
MethodDeclaration = 176,
|
|
182
|
+
ClassStaticBlockDeclaration = 177,
|
|
183
|
+
Constructor = 178,
|
|
184
|
+
GetAccessor = 179,
|
|
185
|
+
SetAccessor = 180,
|
|
186
|
+
CallSignature = 181,
|
|
187
|
+
ConstructSignature = 182,
|
|
188
|
+
IndexSignature = 183,
|
|
189
|
+
TypePredicate = 184,
|
|
190
|
+
TypeReference = 185,
|
|
191
|
+
FunctionType = 186,
|
|
192
|
+
ConstructorType = 187,
|
|
193
|
+
TypeQuery = 188,
|
|
194
|
+
TypeLiteral = 189,
|
|
195
|
+
ArrayType = 190,
|
|
196
|
+
TupleType = 191,
|
|
197
|
+
OptionalType = 192,
|
|
198
|
+
RestType = 193,
|
|
199
|
+
UnionType = 194,
|
|
200
|
+
IntersectionType = 195,
|
|
201
|
+
ConditionalType = 196,
|
|
202
|
+
InferType = 197,
|
|
203
|
+
ParenthesizedType = 198,
|
|
204
|
+
ThisType = 199,
|
|
205
|
+
TypeOperator = 200,
|
|
206
|
+
IndexedAccessType = 201,
|
|
207
|
+
MappedType = 202,
|
|
208
|
+
LiteralType = 203,
|
|
209
|
+
NamedTupleMember = 204,
|
|
210
|
+
TemplateLiteralType = 205,
|
|
211
|
+
TemplateLiteralTypeSpan = 206,
|
|
212
|
+
ImportType = 207,
|
|
213
|
+
ObjectBindingPattern = 208,
|
|
214
|
+
ArrayBindingPattern = 209,
|
|
215
|
+
BindingElement = 210,
|
|
216
|
+
ArrayLiteralExpression = 211,
|
|
217
|
+
ObjectLiteralExpression = 212,
|
|
218
|
+
PropertyAccessExpression = 213,
|
|
219
|
+
ElementAccessExpression = 214,
|
|
220
|
+
CallExpression = 215,
|
|
221
|
+
NewExpression = 216,
|
|
222
|
+
TaggedTemplateExpression = 217,
|
|
223
|
+
TypeAssertionExpression = 218,
|
|
224
|
+
ParenthesizedExpression = 219,
|
|
225
|
+
FunctionExpression = 220,
|
|
226
|
+
ArrowFunction = 221,
|
|
227
|
+
DeleteExpression = 222,
|
|
228
|
+
TypeOfExpression = 223,
|
|
229
|
+
VoidExpression = 224,
|
|
230
|
+
AwaitExpression = 225,
|
|
231
|
+
PrefixUnaryExpression = 226,
|
|
232
|
+
PostfixUnaryExpression = 227,
|
|
233
|
+
BinaryExpression = 228,
|
|
234
|
+
ConditionalExpression = 229,
|
|
235
|
+
TemplateExpression = 230,
|
|
236
|
+
YieldExpression = 231,
|
|
237
|
+
SpreadElement = 232,
|
|
238
|
+
ClassExpression = 233,
|
|
239
|
+
OmittedExpression = 234,
|
|
240
|
+
ExpressionWithTypeArguments = 235,
|
|
241
|
+
AsExpression = 236,
|
|
242
|
+
NonNullExpression = 237,
|
|
243
|
+
MetaProperty = 238,
|
|
244
|
+
SyntheticExpression = 239,
|
|
245
|
+
SatisfiesExpression = 240,
|
|
246
|
+
TemplateSpan = 241,
|
|
247
|
+
SemicolonClassElement = 242,
|
|
248
|
+
Block = 243,
|
|
249
|
+
EmptyStatement = 244,
|
|
250
|
+
VariableStatement = 245,
|
|
251
|
+
ExpressionStatement = 246,
|
|
252
|
+
IfStatement = 247,
|
|
253
|
+
DoStatement = 248,
|
|
254
|
+
WhileStatement = 249,
|
|
255
|
+
ForStatement = 250,
|
|
256
|
+
ForInStatement = 251,
|
|
257
|
+
ForOfStatement = 252,
|
|
258
|
+
ContinueStatement = 253,
|
|
259
|
+
BreakStatement = 254,
|
|
260
|
+
ReturnStatement = 255,
|
|
261
|
+
WithStatement = 256,
|
|
262
|
+
SwitchStatement = 257,
|
|
263
|
+
LabeledStatement = 258,
|
|
264
|
+
ThrowStatement = 259,
|
|
265
|
+
TryStatement = 260,
|
|
266
|
+
DebuggerStatement = 261,
|
|
267
|
+
VariableDeclaration = 262,
|
|
268
|
+
VariableDeclarationList = 263,
|
|
269
|
+
FunctionDeclaration = 264,
|
|
270
|
+
ClassDeclaration = 265,
|
|
271
|
+
InterfaceDeclaration = 266,
|
|
272
|
+
TypeAliasDeclaration = 267,
|
|
273
|
+
EnumDeclaration = 268,
|
|
274
|
+
ModuleDeclaration = 269,
|
|
275
|
+
ModuleBlock = 270,
|
|
276
|
+
CaseBlock = 271,
|
|
277
|
+
NamespaceExportDeclaration = 272,
|
|
278
|
+
ImportEqualsDeclaration = 273,
|
|
279
|
+
ImportDeclaration = 274,
|
|
280
|
+
ImportClause = 275,
|
|
281
|
+
NamespaceImport = 276,
|
|
282
|
+
NamedImports = 277,
|
|
283
|
+
ImportSpecifier = 278,
|
|
284
|
+
ExportAssignment = 279,
|
|
285
|
+
ExportDeclaration = 280,
|
|
286
|
+
NamedExports = 281,
|
|
287
|
+
NamespaceExport = 282,
|
|
288
|
+
ExportSpecifier = 283,
|
|
289
|
+
MissingDeclaration = 284,
|
|
290
|
+
ExternalModuleReference = 285,
|
|
291
|
+
JsxElement = 286,
|
|
292
|
+
JsxSelfClosingElement = 287,
|
|
293
|
+
JsxOpeningElement = 288,
|
|
294
|
+
JsxClosingElement = 289,
|
|
295
|
+
JsxFragment = 290,
|
|
296
|
+
JsxOpeningFragment = 291,
|
|
297
|
+
JsxClosingFragment = 292,
|
|
298
|
+
JsxAttribute = 293,
|
|
299
|
+
JsxAttributes = 294,
|
|
300
|
+
JsxSpreadAttribute = 295,
|
|
301
|
+
JsxExpression = 296,
|
|
302
|
+
JsxNamespacedName = 297,
|
|
303
|
+
CaseClause = 298,
|
|
304
|
+
DefaultClause = 299,
|
|
305
|
+
HeritageClause = 300,
|
|
306
|
+
CatchClause = 301,
|
|
307
|
+
ImportAttributes = 302,
|
|
308
|
+
ImportAttribute = 303,
|
|
309
|
+
PropertyAssignment = 304,
|
|
310
|
+
ShorthandPropertyAssignment = 305,
|
|
311
|
+
SpreadAssignment = 306,
|
|
312
|
+
EnumMember = 307,
|
|
313
|
+
SourceFile = 308,
|
|
314
|
+
JSDocTypeExpression = 309,
|
|
315
|
+
JSDocNameReference = 310,
|
|
316
|
+
JSDocAllType = 311,
|
|
317
|
+
JSDocNullableType = 312,
|
|
318
|
+
JSDocNonNullableType = 313,
|
|
319
|
+
JSDocOptionalType = 314,
|
|
320
|
+
JSDocVariadicType = 315,
|
|
321
|
+
JSDoc = 316,
|
|
322
|
+
JSDocText = 317,
|
|
323
|
+
JSDocTypeLiteral = 318,
|
|
324
|
+
JSDocSignature = 319,
|
|
325
|
+
JSDocLink = 320,
|
|
326
|
+
JSDocLinkCode = 321,
|
|
327
|
+
JSDocLinkPlain = 322,
|
|
328
|
+
JSDocUnknownTag = 323,
|
|
329
|
+
JSDocAugmentsTag = 324,
|
|
330
|
+
JSDocImplementsTag = 325,
|
|
331
|
+
JSDocDeprecatedTag = 326,
|
|
332
|
+
JSDocPublicTag = 327,
|
|
333
|
+
JSDocPrivateTag = 328,
|
|
334
|
+
JSDocProtectedTag = 329,
|
|
335
|
+
JSDocReadonlyTag = 330,
|
|
336
|
+
JSDocOverrideTag = 331,
|
|
337
|
+
JSDocCallbackTag = 332,
|
|
338
|
+
JSDocOverloadTag = 333,
|
|
339
|
+
JSDocParameterTag = 334,
|
|
340
|
+
JSDocReturnTag = 335,
|
|
341
|
+
JSDocThisTag = 336,
|
|
342
|
+
JSDocTypeTag = 337,
|
|
343
|
+
JSDocTemplateTag = 338,
|
|
344
|
+
JSDocTypedefTag = 339,
|
|
345
|
+
JSDocSeeTag = 340,
|
|
346
|
+
JSDocPropertyTag = 341,
|
|
347
|
+
JSDocThrowsTag = 342,
|
|
348
|
+
JSDocSatisfiesTag = 343,
|
|
349
|
+
JSDocImportTag = 344,
|
|
350
|
+
SyntaxList = 345,
|
|
351
|
+
JSTypeAliasDeclaration = 346,
|
|
352
|
+
JSImportDeclaration = 347,
|
|
353
|
+
NotEmittedStatement = 348,
|
|
354
|
+
PartiallyEmittedExpression = 349,
|
|
355
|
+
SyntheticReferenceExpression = 350,
|
|
356
|
+
NotEmittedTypeElement = 351,
|
|
357
|
+
Count = 352,
|
|
357
358
|
FirstAssignment = EqualsToken,
|
|
358
359
|
LastAssignment = CaretEqualsToken,
|
|
359
360
|
FirstCompoundAssignment = PlusEqualsToken,
|
|
@@ -361,7 +362,7 @@ export const enum SyntaxKind {
|
|
|
361
362
|
FirstReservedWord = BreakKeyword,
|
|
362
363
|
LastReservedWord = WithKeyword,
|
|
363
364
|
FirstKeyword = BreakKeyword,
|
|
364
|
-
LastKeyword =
|
|
365
|
+
LastKeyword = SourceKeyword,
|
|
365
366
|
FirstFutureReservedWord = ImplementsKeyword,
|
|
366
367
|
LastFutureReservedWord = YieldKeyword,
|
|
367
368
|
FirstTypeNode = TypePredicate,
|
|
@@ -384,7 +385,7 @@ export const enum SyntaxKind {
|
|
|
384
385
|
FirstJSDocTagNode = JSDocUnknownTag,
|
|
385
386
|
LastJSDocTagNode = JSDocImportTag,
|
|
386
387
|
FirstContextualKeyword = AbstractKeyword,
|
|
387
|
-
LastContextualKeyword =
|
|
388
|
+
LastContextualKeyword = SourceKeyword,
|
|
388
389
|
LastUnaryOperator = TildeToken,
|
|
389
390
|
FirstTriviaToken = SingleLineCommentTrivia,
|
|
390
391
|
LastTriviaToken = ConflictMarkerTrivia,
|
|
@@ -24,6 +24,7 @@ import { CheckedProgram } from './program-checker.js';
|
|
|
24
24
|
import type { Program } from './program.js';
|
|
25
25
|
import { assignSymbolIdsAtCreation, reserveSymbolIds, shareSymbolIds } from './symbol.js';
|
|
26
26
|
import { mark, setTimelineThread } from './timeline.js';
|
|
27
|
+
import { setThreadSharingData, type ThreadSharingData } from './shared-results.js';
|
|
27
28
|
|
|
28
29
|
/** What threads need from the command line that starts them. */
|
|
29
30
|
export interface ThreadDrivers {
|
|
@@ -56,8 +57,12 @@ export interface CheckerThreadData {
|
|
|
56
57
|
readonly emitKinds: number[] | undefined;
|
|
57
58
|
readonly checking: boolean;
|
|
58
59
|
readonly units: number[];
|
|
60
|
+
/** See `CheckedProgram.globalsInFileDiagnostics`. */
|
|
61
|
+
readonly globalsInFileDiagnostics: boolean;
|
|
59
62
|
/** The main thread's report format (`formattedReports`), which the thread formats its diagnostics in. */
|
|
60
63
|
readonly reportFormat: DiagnosticFormatOptions | undefined;
|
|
64
|
+
/** TSC_TS_SHARE: what the thread shares results with the other checker threads through. */
|
|
65
|
+
readonly sharing: ThreadSharingData | undefined;
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
export interface EmitThreadData {
|
|
@@ -103,6 +108,8 @@ export function startThreads(spawn: ThreadSpawn, drivers: ThreadDrivers, args: r
|
|
|
103
108
|
emitKinds,
|
|
104
109
|
checking,
|
|
105
110
|
units,
|
|
111
|
+
globalsInFileDiagnostics,
|
|
112
|
+
sharing,
|
|
106
113
|
) =>
|
|
107
114
|
spawn({
|
|
108
115
|
kind: 'check',
|
|
@@ -118,7 +125,9 @@ export function startThreads(spawn: ThreadSpawn, drivers: ThreadDrivers, args: r
|
|
|
118
125
|
emitKinds,
|
|
119
126
|
checking,
|
|
120
127
|
units,
|
|
128
|
+
globalsInFileDiagnostics,
|
|
121
129
|
reportFormat: formattedReports.format,
|
|
130
|
+
sharing,
|
|
122
131
|
});
|
|
123
132
|
if (sharesPublishedGraphs) {
|
|
124
133
|
parallelEmit.spawn = (program, index, counter, files, kinds, nodeIds, symbolIds) =>
|
|
@@ -203,11 +212,18 @@ function runCheckerThread(job: CheckerThreadData, drivers: ThreadDrivers): void
|
|
|
203
212
|
mark('program received');
|
|
204
213
|
} else program = drivers.programOfCommandLine(job.args);
|
|
205
214
|
// Without a program this thread checks nothing; the main thread checks the files it would have.
|
|
215
|
+
let checked: CheckedProgram | undefined = undefined;
|
|
216
|
+
if (program !== undefined) {
|
|
217
|
+
// The checker the program creates shares results with the other checker threads.
|
|
218
|
+
setThreadSharingData(job.sharing);
|
|
219
|
+
checked = new CheckedProgram(program);
|
|
220
|
+
checked.globalsInFileDiagnostics = job.globalsInFileDiagnostics;
|
|
221
|
+
}
|
|
206
222
|
const result =
|
|
207
|
-
|
|
223
|
+
checked === undefined
|
|
208
224
|
? new CheckerResult(job.index, [], [], [], [], 0, [])
|
|
209
225
|
: checkFromQueue(
|
|
210
|
-
|
|
226
|
+
checked,
|
|
211
227
|
job.index,
|
|
212
228
|
new Int32Array(job.counter),
|
|
213
229
|
job.order,
|
|
@@ -219,6 +235,7 @@ function runCheckerThread(job: CheckerThreadData, drivers: ThreadDrivers): void
|
|
|
219
235
|
job.emitKinds,
|
|
220
236
|
job.checking,
|
|
221
237
|
job.units,
|
|
238
|
+
job.sharing,
|
|
222
239
|
);
|
|
223
240
|
// Packed results are copied: nothing this thread allocated stays reachable after it ends.
|
|
224
241
|
if (packsResults) parentPort!.postMessage(packResult(result, program!));
|