tsc-ts 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +22 -15
- package/dist/api/compiler/ast.js +1026 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +178 -124
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +472 -440
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -107
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +212 -75
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +145 -36
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +104 -31
- package/dist/api/compiler/checker.js +181 -33
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +42 -3
- package/dist/api/compiler/compile-program.js +139 -27
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.d.ts +22 -0
- package/dist/api/compiler/diagnostics.js +93 -11
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +21 -1
- package/dist/api/compiler/file-loader.js +201 -48
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parallel-parse.d.ts +3 -2
- package/dist/api/compiler/parallel-parse.js +17 -5
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +5 -1
- package/dist/api/compiler/printer/emit-context.js +20 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +49 -2
- package/dist/api/compiler/printer/printer.js +539 -293
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +12 -2
- package/dist/api/compiler/program-checker.js +88 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +4 -6
- package/dist/api/compiler/program.js +74 -87
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +347 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +23 -14
- package/dist/api/compiler/symbol.js +23 -11
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +58 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +79 -9
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +136 -62
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -82
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +200 -56
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +124 -23
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +203 -39
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +167 -27
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/diagnostics.ts +84 -3
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +197 -38
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +165 -30
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +326 -52
- package/src/compiler/parallel-emit.ts +320 -0
- package/src/compiler/parallel-parse.ts +16 -5
- package/src/compiler/parse-thread.ts +3 -0
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +21 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +266 -30
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +57 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +18 -26
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +240 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +46 -24
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +64 -4
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +66 -9
- package/src/compiler/tsc-cli.ts +7 -0
- package/src/compiler/tsc-compile.ts +284 -4
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- package/src/library/enums.generated.ts +196 -196
|
@@ -166,14 +166,14 @@ export class PseudoChecker {
|
|
|
166
166
|
return this.mergedSymbols.get(symbol) ?? symbol;
|
|
167
167
|
}
|
|
168
168
|
getReturnTypeOfSignature(signature) {
|
|
169
|
-
if (signature.kind ===
|
|
169
|
+
if (signature.kind === 179 /* SyntaxKind.GetAccessor */)
|
|
170
170
|
return this.getTypeOfAccessor(signature);
|
|
171
171
|
return this.createReturnFromSignature(signature);
|
|
172
172
|
}
|
|
173
173
|
getTypeOfAccessor(accessor) {
|
|
174
174
|
const accessors = getAllAccessorDeclarations(accessor);
|
|
175
175
|
const annotation = this.getAccessorAnnotation(accessor, accessors.firstAccessor, accessors.secondAccessor);
|
|
176
|
-
if (annotation !== undefined && annotation.kind !==
|
|
176
|
+
if (annotation !== undefined && annotation.kind !== 184 /* SyntaxKind.TypePredicate */)
|
|
177
177
|
return new DirectType(annotation);
|
|
178
178
|
const getter = accessors.getAccessor;
|
|
179
179
|
if (getter !== undefined) {
|
|
@@ -202,32 +202,32 @@ export class PseudoChecker {
|
|
|
202
202
|
}
|
|
203
203
|
getTypeOfDeclaration(node) {
|
|
204
204
|
switch (node.kind) {
|
|
205
|
-
case
|
|
205
|
+
case 171 /* SyntaxKind.Parameter */:
|
|
206
206
|
if (node instanceof ParameterDeclaration) {
|
|
207
207
|
const narrowed = node;
|
|
208
208
|
return this.typeFromParameter(narrowed);
|
|
209
209
|
}
|
|
210
210
|
break;
|
|
211
|
-
case
|
|
211
|
+
case 262 /* SyntaxKind.VariableDeclaration */:
|
|
212
212
|
if (node instanceof VariableDeclaration) {
|
|
213
213
|
const narrowed = node;
|
|
214
214
|
return this.typeFromVariable(narrowed);
|
|
215
215
|
}
|
|
216
216
|
break;
|
|
217
|
-
case
|
|
218
|
-
case
|
|
219
|
-
case
|
|
217
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
218
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
219
|
+
case 341 /* SyntaxKind.JSDocPropertyTag */:
|
|
220
220
|
return this.typeFromProperty(node);
|
|
221
|
-
case
|
|
221
|
+
case 279 /* SyntaxKind.ExportAssignment */:
|
|
222
222
|
return this.typeFromExpression(getExpression(node));
|
|
223
|
-
case
|
|
224
|
-
case
|
|
225
|
-
case
|
|
223
|
+
case 213 /* SyntaxKind.PropertyAccessExpression */:
|
|
224
|
+
case 214 /* SyntaxKind.ElementAccessExpression */:
|
|
225
|
+
case 228 /* SyntaxKind.BinaryExpression */: {
|
|
226
226
|
const type = getType(node);
|
|
227
227
|
return type !== undefined ? new DirectType(type) : new NoResultType(node);
|
|
228
228
|
}
|
|
229
|
-
case
|
|
230
|
-
case
|
|
229
|
+
case 304 /* SyntaxKind.PropertyAssignment */:
|
|
230
|
+
case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
|
|
231
231
|
return this.typeFromPropertyAssignment(node);
|
|
232
232
|
}
|
|
233
233
|
return new NoResultType(node);
|
|
@@ -256,7 +256,7 @@ export class PseudoChecker {
|
|
|
256
256
|
const initializer = node.initializer;
|
|
257
257
|
if (initializer !== undefined && !isContextuallyTyped(node)) {
|
|
258
258
|
// Readonly template literals may become literal types, so they aren't inferred.
|
|
259
|
-
if (hasSyntacticModifier(node, 8 /* ModifierFlags.Readonly */) && initializer.kind ===
|
|
259
|
+
if (hasSyntacticModifier(node, 8 /* ModifierFlags.Readonly */) && initializer.kind === 230 /* SyntaxKind.TemplateExpression */)
|
|
260
260
|
return new NoResultType(node);
|
|
261
261
|
const result = this.typeFromExpression(initializer);
|
|
262
262
|
if (!isBareInferred(result)) {
|
|
@@ -278,12 +278,12 @@ export class PseudoChecker {
|
|
|
278
278
|
const initializer = declaration.initializer;
|
|
279
279
|
// As tsgo, the file's own declarations; merged ones are left to the checker's type comparison.
|
|
280
280
|
const symbol = declaration.symbol;
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
// A binding pattern has no symbol, and its initializer's type isn't the variable's.
|
|
282
|
+
if (initializer !== undefined && symbol !== undefined && countVariableDeclarations(getDeclarations(symbol)) === 1) {
|
|
283
283
|
if (!isContextuallyTyped(declaration)) {
|
|
284
284
|
// Const template literals may become literal types, so they aren't inferred.
|
|
285
285
|
if ((getCombinedNodeFlags(declaration) & 2 /* NodeFlags.Const */) !== 0 &&
|
|
286
|
-
initializer.kind ===
|
|
286
|
+
initializer.kind === 230 /* SyntaxKind.TemplateExpression */)
|
|
287
287
|
return new NoResultType(declaration);
|
|
288
288
|
const result = this.typeFromExpression(initializer);
|
|
289
289
|
if (!isBareInferred(result))
|
|
@@ -310,7 +310,7 @@ export class PseudoChecker {
|
|
|
310
310
|
// An async function or generator returns a promise or generator of its returned values.
|
|
311
311
|
if (hasSyntacticModifier(fn, 1024 /* ModifierFlags.Async */) || getAsteriskToken(fn) !== undefined)
|
|
312
312
|
return inferred(fn, true);
|
|
313
|
-
if (body.kind ===
|
|
313
|
+
if (body.kind === 243 /* SyntaxKind.Block */) {
|
|
314
314
|
const returns = collectReturnStatements(body);
|
|
315
315
|
// Only a single return directly in the body.
|
|
316
316
|
if (returns.length === 1 && returns[0].parent === body)
|
|
@@ -323,7 +323,7 @@ export class PseudoChecker {
|
|
|
323
323
|
if (!isContextuallyTyped(candidate))
|
|
324
324
|
return this.typeFromExpression(candidate);
|
|
325
325
|
let type = undefined;
|
|
326
|
-
if (candidate.kind ===
|
|
326
|
+
if (candidate.kind === 218 /* SyntaxKind.TypeAssertionExpression */ || candidate.kind === 236 /* SyntaxKind.AsExpression */)
|
|
327
327
|
type = getType(candidate);
|
|
328
328
|
if (type !== undefined && !isConstTypeReference(type))
|
|
329
329
|
return new DirectType(type);
|
|
@@ -333,9 +333,9 @@ export class PseudoChecker {
|
|
|
333
333
|
/** `checkExpression` for pseudo-types. */
|
|
334
334
|
typeFromExpression(node) {
|
|
335
335
|
switch (node.kind) {
|
|
336
|
-
case
|
|
336
|
+
case 234 /* SyntaxKind.OmittedExpression */:
|
|
337
337
|
return undefinedType;
|
|
338
|
-
case
|
|
338
|
+
case 219 /* SyntaxKind.ParenthesizedExpression */:
|
|
339
339
|
return this.typeFromExpression(getExpression(node));
|
|
340
340
|
case 79 /* SyntaxKind.Identifier */:
|
|
341
341
|
// A declaration named `undefined` shadows it.
|
|
@@ -346,38 +346,38 @@ export class PseudoChecker {
|
|
|
346
346
|
break;
|
|
347
347
|
case 105 /* SyntaxKind.NullKeyword */:
|
|
348
348
|
return nullType;
|
|
349
|
-
case
|
|
350
|
-
case
|
|
349
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
350
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
351
351
|
return this.typeFromFunctionLikeExpression(node);
|
|
352
|
-
case
|
|
353
|
-
case
|
|
352
|
+
case 218 /* SyntaxKind.TypeAssertionExpression */:
|
|
353
|
+
case 236 /* SyntaxKind.AsExpression */: {
|
|
354
354
|
const type = getType(node);
|
|
355
355
|
if (isConstTypeReference(type))
|
|
356
356
|
return this.typeFromExpression(getExpression(node));
|
|
357
357
|
return new DirectType(type);
|
|
358
358
|
}
|
|
359
|
-
case
|
|
359
|
+
case 226 /* SyntaxKind.PrefixUnaryExpression */:
|
|
360
360
|
if (node instanceof PrefixUnaryExpression) {
|
|
361
361
|
const unary = node;
|
|
362
362
|
if (isSignedNumericLiteral(unary))
|
|
363
363
|
return typeFromSignedLiteral(unary);
|
|
364
364
|
}
|
|
365
365
|
break;
|
|
366
|
-
case
|
|
366
|
+
case 211 /* SyntaxKind.ArrayLiteralExpression */:
|
|
367
367
|
if (node instanceof ArrayLiteralExpression) {
|
|
368
368
|
const narrowed = node;
|
|
369
369
|
return this.typeFromArrayLiteral(narrowed);
|
|
370
370
|
}
|
|
371
371
|
break;
|
|
372
|
-
case
|
|
372
|
+
case 212 /* SyntaxKind.ObjectLiteralExpression */:
|
|
373
373
|
if (node instanceof ObjectLiteralExpression) {
|
|
374
374
|
const narrowed = node;
|
|
375
375
|
return this.typeFromObjectLiteral(narrowed);
|
|
376
376
|
}
|
|
377
377
|
break;
|
|
378
|
-
case
|
|
378
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
379
379
|
return new InferredType(node, false, [node]);
|
|
380
|
-
case
|
|
380
|
+
case 230 /* SyntaxKind.TemplateExpression */:
|
|
381
381
|
// Templates with substitutions aren't literal types, but `as const` would make them one.
|
|
382
382
|
if (isInConstContext(node))
|
|
383
383
|
return inferred(node, false);
|
|
@@ -403,7 +403,7 @@ export class PseudoChecker {
|
|
|
403
403
|
const members = [];
|
|
404
404
|
for (const property of node.properties.nodes) {
|
|
405
405
|
switch (property.kind) {
|
|
406
|
-
case
|
|
406
|
+
case 176 /* SyntaxKind.MethodDeclaration */: {
|
|
407
407
|
const postfix = getPostfixToken(property);
|
|
408
408
|
const optional = postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */;
|
|
409
409
|
const fullSignature = getFullSignature(property);
|
|
@@ -414,14 +414,14 @@ export class PseudoChecker {
|
|
|
414
414
|
members.push(new PseudoMember(0 /* PseudoMemberKind.Method */, getName(property), optional, false, property, nodesOf(getTypeParameters(property)), this.cloneParameters(getParameters(property).nodes), this.createReturnFromSignature(property)));
|
|
415
415
|
break;
|
|
416
416
|
}
|
|
417
|
-
case
|
|
417
|
+
case 304 /* SyntaxKind.PropertyAssignment */: {
|
|
418
418
|
const assignment = property;
|
|
419
419
|
const postfix = propertyAssignmentPostfixToken(assignment);
|
|
420
420
|
members.push(new PseudoMember(1 /* PseudoMemberKind.Property */, assignment.name, postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */, false, undefined, [], [], this.typeFromExpression(assignment.initializer)));
|
|
421
421
|
break;
|
|
422
422
|
}
|
|
423
|
-
case
|
|
424
|
-
case
|
|
423
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
424
|
+
case 179 /* SyntaxKind.GetAccessor */: {
|
|
425
425
|
const member = this.getAccessorMember(property);
|
|
426
426
|
if (member !== undefined)
|
|
427
427
|
members.push(member);
|
|
@@ -442,21 +442,21 @@ export class PseudoChecker {
|
|
|
442
442
|
setter instanceof SetAccessorDeclaration &&
|
|
443
443
|
setter.parameters.nodes.length > 0 &&
|
|
444
444
|
getType(setter.parameters.nodes[0]) !== undefined) {
|
|
445
|
-
if (accessor.kind ===
|
|
445
|
+
if (accessor.kind === 179 /* SyntaxKind.GetAccessor */)
|
|
446
446
|
return new PseudoMember(3 /* PseudoMemberKind.GetAccessor */, name, false, false, accessor, [], [], this.getTypeOfAccessor(accessor));
|
|
447
447
|
const parameters = this.cloneParameters(accessor.parameters.nodes);
|
|
448
448
|
return new PseudoMember(2 /* PseudoMemberKind.SetAccessor */, name, false, false, accessor, [], parameters, anyType);
|
|
449
449
|
}
|
|
450
450
|
// Otherwise the first accessor is a property, `readonly` for a lone getter.
|
|
451
451
|
if (accessor === accessors.firstAccessor)
|
|
452
|
-
return new PseudoMember(1 /* PseudoMemberKind.Property */, name, false, accessor.kind ===
|
|
452
|
+
return new PseudoMember(1 /* PseudoMemberKind.Property */, name, false, accessor.kind === 179 /* SyntaxKind.GetAccessor */ && accessors.secondAccessor === undefined, undefined, [], [], this.getTypeOfAccessor(accessor));
|
|
453
453
|
return undefined;
|
|
454
454
|
}
|
|
455
455
|
typeFromArrayLiteral(node) {
|
|
456
456
|
if (!isInConstContext(node))
|
|
457
457
|
return new InferredType(node, false, [node]);
|
|
458
458
|
for (const element of node.elements.nodes)
|
|
459
|
-
if (element.kind ===
|
|
459
|
+
if (element.kind === 232 /* SyntaxKind.SpreadElement */)
|
|
460
460
|
return new InferredType(node, false, [element]);
|
|
461
461
|
// An `as const` array with a contextual type may or may not be readonly.
|
|
462
462
|
if (isContextuallyTyped(node))
|
|
@@ -474,7 +474,7 @@ export class PseudoChecker {
|
|
|
474
474
|
}
|
|
475
475
|
typeFromParameter(node) {
|
|
476
476
|
const parent = node.parent;
|
|
477
|
-
if (parent.kind ===
|
|
477
|
+
if (parent.kind === 180 /* SyntaxKind.SetAccessor */)
|
|
478
478
|
return this.getTypeOfAccessor(parent);
|
|
479
479
|
if (node.initializer === undefined)
|
|
480
480
|
return node.type !== undefined ? new DirectType(node.type) : new NoResultType(node);
|
|
@@ -483,7 +483,7 @@ export class PseudoChecker {
|
|
|
483
483
|
}
|
|
484
484
|
typeFromParameterAt(node, index, lastRequired) {
|
|
485
485
|
const parent = node.parent;
|
|
486
|
-
if (parent.kind ===
|
|
486
|
+
if (parent.kind === 180 /* SyntaxKind.SetAccessor */)
|
|
487
487
|
return this.getTypeOfAccessor(parent);
|
|
488
488
|
const hasRequiredAfter = index < lastRequired - 1;
|
|
489
489
|
if (node.type !== undefined) {
|
|
@@ -536,19 +536,19 @@ function countVariableDeclarations(declarations) {
|
|
|
536
536
|
return 1;
|
|
537
537
|
let count = 0;
|
|
538
538
|
for (const declaration of declarations)
|
|
539
|
-
if (declaration.kind ===
|
|
539
|
+
if (declaration.kind === 262 /* SyntaxKind.VariableDeclaration */)
|
|
540
540
|
count++;
|
|
541
541
|
return count;
|
|
542
542
|
}
|
|
543
543
|
function isValueSignatureDeclaration(node) {
|
|
544
544
|
switch (node.kind) {
|
|
545
|
-
case
|
|
546
|
-
case
|
|
547
|
-
case
|
|
548
|
-
case
|
|
549
|
-
case
|
|
550
|
-
case
|
|
551
|
-
case
|
|
545
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
546
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
547
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
548
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
549
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
550
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
551
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
552
552
|
return true;
|
|
553
553
|
}
|
|
554
554
|
return false;
|
|
@@ -563,25 +563,25 @@ class ReturnCollector extends NodeVisitor {
|
|
|
563
563
|
statements = [];
|
|
564
564
|
visitNode(node) {
|
|
565
565
|
switch (node.kind) {
|
|
566
|
-
case
|
|
566
|
+
case 255 /* SyntaxKind.ReturnStatement */:
|
|
567
567
|
if (node instanceof ReturnStatement)
|
|
568
568
|
this.statements.push(node);
|
|
569
569
|
return false;
|
|
570
|
-
case
|
|
571
|
-
case
|
|
572
|
-
case
|
|
573
|
-
case
|
|
574
|
-
case
|
|
575
|
-
case
|
|
576
|
-
case
|
|
577
|
-
case
|
|
578
|
-
case
|
|
579
|
-
case
|
|
580
|
-
case
|
|
581
|
-
case
|
|
582
|
-
case
|
|
583
|
-
case
|
|
584
|
-
case
|
|
570
|
+
case 271 /* SyntaxKind.CaseBlock */:
|
|
571
|
+
case 243 /* SyntaxKind.Block */:
|
|
572
|
+
case 247 /* SyntaxKind.IfStatement */:
|
|
573
|
+
case 248 /* SyntaxKind.DoStatement */:
|
|
574
|
+
case 249 /* SyntaxKind.WhileStatement */:
|
|
575
|
+
case 250 /* SyntaxKind.ForStatement */:
|
|
576
|
+
case 251 /* SyntaxKind.ForInStatement */:
|
|
577
|
+
case 252 /* SyntaxKind.ForOfStatement */:
|
|
578
|
+
case 256 /* SyntaxKind.WithStatement */:
|
|
579
|
+
case 257 /* SyntaxKind.SwitchStatement */:
|
|
580
|
+
case 298 /* SyntaxKind.CaseClause */:
|
|
581
|
+
case 299 /* SyntaxKind.DefaultClause */:
|
|
582
|
+
case 258 /* SyntaxKind.LabeledStatement */:
|
|
583
|
+
case 260 /* SyntaxKind.TryStatement */:
|
|
584
|
+
case 301 /* SyntaxKind.CatchClause */:
|
|
585
585
|
return node.forEachChild(this);
|
|
586
586
|
}
|
|
587
587
|
return false;
|
|
@@ -605,7 +605,7 @@ export function isConstTypeReference(node) {
|
|
|
605
605
|
isIdentifierNamed(node.typeName, 'const'));
|
|
606
606
|
}
|
|
607
607
|
function isConstAssertionNode(node) {
|
|
608
|
-
return ((node.kind ===
|
|
608
|
+
return ((node.kind === 236 /* SyntaxKind.AsExpression */ || node.kind === 218 /* SyntaxKind.TypeAssertionExpression */) &&
|
|
609
609
|
isConstTypeReference(getType(node)));
|
|
610
610
|
}
|
|
611
611
|
/** Whether a nested expression is inside an `as const`, as far as syntax decides. */
|
|
@@ -613,17 +613,17 @@ export function isInConstContext(node) {
|
|
|
613
613
|
let current = node.parent;
|
|
614
614
|
while (current !== undefined) {
|
|
615
615
|
switch (current.kind) {
|
|
616
|
-
case
|
|
617
|
-
case
|
|
616
|
+
case 236 /* SyntaxKind.AsExpression */:
|
|
617
|
+
case 218 /* SyntaxKind.TypeAssertionExpression */:
|
|
618
618
|
return isConstAssertionNode(current);
|
|
619
|
-
case
|
|
620
|
-
case
|
|
621
|
-
case
|
|
622
|
-
case
|
|
623
|
-
case
|
|
624
|
-
case
|
|
625
|
-
case
|
|
626
|
-
case
|
|
619
|
+
case 211 /* SyntaxKind.ArrayLiteralExpression */:
|
|
620
|
+
case 212 /* SyntaxKind.ObjectLiteralExpression */:
|
|
621
|
+
case 219 /* SyntaxKind.ParenthesizedExpression */:
|
|
622
|
+
case 232 /* SyntaxKind.SpreadElement */:
|
|
623
|
+
case 304 /* SyntaxKind.PropertyAssignment */:
|
|
624
|
+
case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
|
|
625
|
+
case 241 /* SyntaxKind.TemplateSpan */:
|
|
626
|
+
case 226 /* SyntaxKind.PrefixUnaryExpression */:
|
|
627
627
|
current = current.parent;
|
|
628
628
|
continue;
|
|
629
629
|
}
|
|
@@ -635,17 +635,17 @@ export function isInConstContext(node) {
|
|
|
635
635
|
function isContextuallyTyped(node) {
|
|
636
636
|
for (let current = node.parent; current !== undefined; current = current.parent) {
|
|
637
637
|
switch (current.kind) {
|
|
638
|
-
case
|
|
639
|
-
case
|
|
640
|
-
case
|
|
641
|
-
case
|
|
638
|
+
case 215 /* SyntaxKind.CallExpression */:
|
|
639
|
+
case 240 /* SyntaxKind.SatisfiesExpression */:
|
|
640
|
+
case 286 /* SyntaxKind.JsxElement */:
|
|
641
|
+
case 296 /* SyntaxKind.JsxExpression */:
|
|
642
642
|
return true;
|
|
643
|
-
case
|
|
644
|
-
case
|
|
645
|
-
case
|
|
646
|
-
case
|
|
647
|
-
case
|
|
648
|
-
case
|
|
643
|
+
case 262 /* SyntaxKind.VariableDeclaration */:
|
|
644
|
+
case 171 /* SyntaxKind.Parameter */:
|
|
645
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
646
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
647
|
+
case 236 /* SyntaxKind.AsExpression */:
|
|
648
|
+
case 218 /* SyntaxKind.TypeAssertionExpression */:
|
|
649
649
|
if (getType(current) !== undefined && !isConstAssertionNode(current))
|
|
650
650
|
return true;
|
|
651
651
|
break;
|
|
@@ -660,7 +660,7 @@ function objectLiteralErrorNodes(node) {
|
|
|
660
660
|
errorNodes.push(property);
|
|
661
661
|
continue;
|
|
662
662
|
}
|
|
663
|
-
if (property.kind ===
|
|
663
|
+
if (property.kind === 305 /* SyntaxKind.ShorthandPropertyAssignment */ || property.kind === 306 /* SyntaxKind.SpreadAssignment */) {
|
|
664
664
|
errorNodes.push(property);
|
|
665
665
|
continue;
|
|
666
666
|
}
|
|
@@ -669,7 +669,7 @@ function objectLiteralErrorNodes(node) {
|
|
|
669
669
|
errorNodes.push(name);
|
|
670
670
|
else if (name.kind === 80 /* SyntaxKind.PrivateIdentifier */)
|
|
671
671
|
errorNodes.push(property);
|
|
672
|
-
else if (name.kind ===
|
|
672
|
+
else if (name.kind === 169 /* SyntaxKind.ComputedPropertyName */ && !isPrimitiveLiteral(getExpression(name)))
|
|
673
673
|
errorNodes.push(name);
|
|
674
674
|
}
|
|
675
675
|
return errorNodes;
|
|
@@ -682,7 +682,7 @@ function isPrimitiveLiteral(node) {
|
|
|
682
682
|
case 10 /* SyntaxKind.StringLiteral */:
|
|
683
683
|
case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
|
|
684
684
|
return true;
|
|
685
|
-
case
|
|
685
|
+
case 226 /* SyntaxKind.PrefixUnaryExpression */: {
|
|
686
686
|
const unary = node;
|
|
687
687
|
return ((unary.operator === 40 /* SyntaxKind.MinusToken */ || unary.operator === 39 /* SyntaxKind.PlusToken */) &&
|
|
688
688
|
unary.operand.kind === 8 /* SyntaxKind.NumericLiteral */);
|
|
@@ -703,23 +703,23 @@ export function lastRequiredParameterIndex(parameters) {
|
|
|
703
703
|
}
|
|
704
704
|
function typeNodeCouldReferToUndefined(node) {
|
|
705
705
|
let current = node;
|
|
706
|
-
while (current.kind ===
|
|
706
|
+
while (current.kind === 198 /* SyntaxKind.ParenthesizedType */)
|
|
707
707
|
current = getType(current);
|
|
708
708
|
switch (current.kind) {
|
|
709
709
|
// These need symbols or types to know.
|
|
710
|
-
case
|
|
711
|
-
case
|
|
712
|
-
case
|
|
713
|
-
case
|
|
714
|
-
case
|
|
715
|
-
case
|
|
716
|
-
case
|
|
717
|
-
case
|
|
718
|
-
case
|
|
710
|
+
case 185 /* SyntaxKind.TypeReference */:
|
|
711
|
+
case 201 /* SyntaxKind.IndexedAccessType */:
|
|
712
|
+
case 188 /* SyntaxKind.TypeQuery */:
|
|
713
|
+
case 192 /* SyntaxKind.OptionalType */:
|
|
714
|
+
case 193 /* SyntaxKind.RestType */:
|
|
715
|
+
case 207 /* SyntaxKind.ImportType */:
|
|
716
|
+
case 196 /* SyntaxKind.ConditionalType */:
|
|
717
|
+
case 200 /* SyntaxKind.TypeOperator */:
|
|
718
|
+
case 184 /* SyntaxKind.TypePredicate */:
|
|
719
719
|
case 157 /* SyntaxKind.UndefinedKeyword */:
|
|
720
720
|
return true;
|
|
721
|
-
case
|
|
722
|
-
case
|
|
721
|
+
case 194 /* SyntaxKind.UnionType */:
|
|
722
|
+
case 195 /* SyntaxKind.IntersectionType */:
|
|
723
723
|
// Intersections are treated like unions, as tsgo does.
|
|
724
724
|
for (const type of typesOf(current))
|
|
725
725
|
if (typeNodeCouldReferToUndefined(type))
|
|
@@ -765,7 +765,7 @@ function typeNodeHasUndefined(node) {
|
|
|
765
765
|
node.kind === 132 /* SyntaxKind.AnyKeyword */ ||
|
|
766
766
|
node.kind === 159 /* SyntaxKind.UnknownKeyword */)
|
|
767
767
|
return true;
|
|
768
|
-
if (node.kind ===
|
|
768
|
+
if (node.kind === 198 /* SyntaxKind.ParenthesizedType */)
|
|
769
769
|
return typeNodeHasUndefined(getType(node));
|
|
770
770
|
if (node instanceof UnionTypeNode) {
|
|
771
771
|
for (const member of node.types.nodes)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ImportDeclaration, ModifierFlags, Node, SourceFile, FileReference } from '../ast.js';
|
|
2
2
|
import type { EmitContext } from '../printer/emit-context.js';
|
|
3
|
-
import type { ModuleKind } from '../options.js';
|
|
4
3
|
import type { Symbol, SymbolFlags } from '../symbol.js';
|
|
5
4
|
import { EmitResolver } from './emit-resolver.js';
|
|
6
5
|
export declare const enum SymbolAccessibility {
|
|
@@ -125,8 +124,6 @@ export declare abstract class DeclarationEmitResolver extends EmitResolver {
|
|
|
125
124
|
abstract isExpandoFunctionDeclaration(node: Node): boolean;
|
|
126
125
|
/** Types: the declarations of properties assigned to a function. */
|
|
127
126
|
abstract getExpandoPropertyDeclarations(node: Node): Node[];
|
|
128
|
-
/** The `resolution-mode` of import attributes, or undefined. */
|
|
129
|
-
abstract getResolutionModeOverride(node: Node): ModuleKind | undefined;
|
|
130
127
|
/** The program file a `/// <reference path>` names. */
|
|
131
128
|
abstract getSourceFileFromReference(file: SourceFile, reference: FileReference): SourceFile | undefined;
|
|
132
129
|
/** The class member a JavaScript `this.x = …` assignment declares. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileReference, Identifier, type ImportDeclaration, ModifierFlags, type Node, SourceFile, type EntityName } from '../ast.js';
|
|
2
|
-
import type { CompilerOptions
|
|
2
|
+
import type { CompilerOptions } from '../options.js';
|
|
3
3
|
import type { EmitContext } from '../printer/emit-context.js';
|
|
4
4
|
import type { SyntacticEmitResolver } from './emit-resolver.js';
|
|
5
5
|
import type { TypeReferenceSerializationKind } from './type-serialization.js';
|
|
@@ -86,7 +86,6 @@ export declare class SyntacticDeclarationEmitResolver extends DeclarationEmitRes
|
|
|
86
86
|
getJsxFactoryEntity(file: SourceFile): EntityName | undefined;
|
|
87
87
|
getJsxFragmentFactoryEntity(file: SourceFile): EntityName | undefined;
|
|
88
88
|
getTypeReferenceSerializationKind(typeName: Node, location: Node | undefined): TypeReferenceSerializationKind;
|
|
89
|
-
getResolutionModeOverride(node: Node): ModuleKind | undefined;
|
|
90
89
|
getSourceFileFromReference(file: SourceFile, reference: FileReference): SourceFile | undefined;
|
|
91
90
|
getReferencedMemberValueDeclaration(node: Node): Node | undefined;
|
|
92
91
|
isThisPropertyAssignmentDeclarationRedundant(_node: Node): boolean;
|