tsc-ts 0.0.4 → 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 +33 -1
- 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 +3 -2
- package/dist/api/library/ast.generated.d.ts +127 -139
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -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/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 +5 -1
- package/dist/api/library/index.js +4 -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/types.d.ts +14 -1
- package/package.json +12 -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 +141 -167
- package/src/library/ast.ts +4 -1
- package/src/library/checker.ts +384 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +21 -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/types.ts +14 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// Constant evaluation of enum member initializers and template expressions.
|
|
2
|
+
import { getExpression, getInitializer, getText, getType, getName, } from './ast.js';
|
|
3
|
+
import { computeEnumMemberValues } from './checker-declared-types.js';
|
|
4
|
+
import { getGlobalSymbol, resolveEntityName } from './checker-symbols.js';
|
|
5
|
+
import { declarationNameToString, getSourceFileOfNode } from './binder-utilities.js';
|
|
6
|
+
import { isConstantVariable } from './checker-narrowing.js';
|
|
7
|
+
import { isBlockScopedNameDeclaredBeforeUse } from './checker-declaration-order.js';
|
|
8
|
+
export class EvaluatorResult {
|
|
9
|
+
kind = 0 /* EvaluatedKind.None */;
|
|
10
|
+
numberValue = 0;
|
|
11
|
+
stringValue = '';
|
|
12
|
+
flags = 0 /* EvaluatedFlags.None */;
|
|
13
|
+
static number(value) {
|
|
14
|
+
const r = new EvaluatorResult();
|
|
15
|
+
r.kind = 1 /* EvaluatedKind.Number */;
|
|
16
|
+
r.numberValue = value;
|
|
17
|
+
return r;
|
|
18
|
+
}
|
|
19
|
+
static string(value) {
|
|
20
|
+
const r = new EvaluatorResult();
|
|
21
|
+
r.kind = 2 /* EvaluatedKind.String */;
|
|
22
|
+
r.stringValue = value;
|
|
23
|
+
return r;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** No constant value. */
|
|
27
|
+
function none() {
|
|
28
|
+
return new EvaluatorResult();
|
|
29
|
+
}
|
|
30
|
+
function withFlags(result, flags) {
|
|
31
|
+
result.flags = flags;
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
/** The constant value of an enum member initializer, if it has one. */
|
|
35
|
+
export function evaluateEnumMember(c, expr, member) {
|
|
36
|
+
return evaluate(c, expr, member);
|
|
37
|
+
}
|
|
38
|
+
/** The constant value of `expr`, evaluated at `location`. */
|
|
39
|
+
export function evaluate(c, expr, location) {
|
|
40
|
+
switch (expr.kind) {
|
|
41
|
+
case 225 /* SyntaxKind.PrefixUnaryExpression */: {
|
|
42
|
+
const operand = evaluate(c, expr.operand, location);
|
|
43
|
+
if (operand.kind !== 1 /* EvaluatedKind.Number */)
|
|
44
|
+
return none();
|
|
45
|
+
const v = operand.numberValue;
|
|
46
|
+
const flags = operand.flags & 2 /* EvaluatedFlags.ResolvedOtherFiles */;
|
|
47
|
+
switch (expr.operator) {
|
|
48
|
+
case 39 /* SyntaxKind.PlusToken */:
|
|
49
|
+
return withFlags(EvaluatorResult.number(v), flags);
|
|
50
|
+
case 40 /* SyntaxKind.MinusToken */:
|
|
51
|
+
return withFlags(EvaluatorResult.number(-v), flags);
|
|
52
|
+
case 54 /* SyntaxKind.TildeToken */:
|
|
53
|
+
return withFlags(EvaluatorResult.number(~v), flags);
|
|
54
|
+
}
|
|
55
|
+
return none();
|
|
56
|
+
}
|
|
57
|
+
case 227 /* SyntaxKind.BinaryExpression */: {
|
|
58
|
+
const shape = expr;
|
|
59
|
+
const left = evaluate(c, shape.left, location);
|
|
60
|
+
const right = evaluate(c, shape.right, location);
|
|
61
|
+
const op = shape.operatorToken.kind;
|
|
62
|
+
const flags = ((left.flags | right.flags) & 2 /* EvaluatedFlags.ResolvedOtherFiles */) |
|
|
63
|
+
(op === 39 /* SyntaxKind.PlusToken */ ? (left.flags | right.flags) & 1 /* EvaluatedFlags.SyntacticallyString */ : 0);
|
|
64
|
+
if (left.kind === 1 /* EvaluatedKind.Number */ && right.kind === 1 /* EvaluatedKind.Number */) {
|
|
65
|
+
const l = left.numberValue;
|
|
66
|
+
const r = right.numberValue;
|
|
67
|
+
switch (op) {
|
|
68
|
+
case 51 /* SyntaxKind.BarToken */:
|
|
69
|
+
return withFlags(EvaluatorResult.number(l | r), flags);
|
|
70
|
+
case 50 /* SyntaxKind.AmpersandToken */:
|
|
71
|
+
return withFlags(EvaluatorResult.number(l & r), flags);
|
|
72
|
+
case 48 /* SyntaxKind.GreaterThanGreaterThanToken */:
|
|
73
|
+
return withFlags(EvaluatorResult.number(l >> r), flags);
|
|
74
|
+
case 49 /* SyntaxKind.GreaterThanGreaterThanGreaterThanToken */:
|
|
75
|
+
return withFlags(EvaluatorResult.number(l >>> r), flags);
|
|
76
|
+
case 47 /* SyntaxKind.LessThanLessThanToken */:
|
|
77
|
+
return withFlags(EvaluatorResult.number(l << r), flags);
|
|
78
|
+
case 52 /* SyntaxKind.CaretToken */:
|
|
79
|
+
return withFlags(EvaluatorResult.number(l ^ r), flags);
|
|
80
|
+
case 41 /* SyntaxKind.AsteriskToken */:
|
|
81
|
+
return withFlags(EvaluatorResult.number(l * r), flags);
|
|
82
|
+
case 43 /* SyntaxKind.SlashToken */:
|
|
83
|
+
return withFlags(EvaluatorResult.number(l / r), flags);
|
|
84
|
+
case 39 /* SyntaxKind.PlusToken */:
|
|
85
|
+
return withFlags(EvaluatorResult.number(l + r), flags);
|
|
86
|
+
case 40 /* SyntaxKind.MinusToken */:
|
|
87
|
+
return withFlags(EvaluatorResult.number(l - r), flags);
|
|
88
|
+
case 44 /* SyntaxKind.PercentToken */:
|
|
89
|
+
return withFlags(EvaluatorResult.number(l % r), flags);
|
|
90
|
+
case 42 /* SyntaxKind.AsteriskAsteriskToken */:
|
|
91
|
+
return withFlags(EvaluatorResult.number(l ** r), flags);
|
|
92
|
+
}
|
|
93
|
+
return none();
|
|
94
|
+
}
|
|
95
|
+
if (op === 39 /* SyntaxKind.PlusToken */ &&
|
|
96
|
+
left.kind !== 0 /* EvaluatedKind.None */ &&
|
|
97
|
+
right.kind !== 0 /* EvaluatedKind.None */ &&
|
|
98
|
+
(left.kind === 2 /* EvaluatedKind.String */ || right.kind === 2 /* EvaluatedKind.String */))
|
|
99
|
+
return withFlags(EvaluatorResult.string(valueText(left) + valueText(right)), flags);
|
|
100
|
+
return none();
|
|
101
|
+
}
|
|
102
|
+
case 10 /* SyntaxKind.StringLiteral */:
|
|
103
|
+
case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
|
|
104
|
+
return withFlags(EvaluatorResult.string(getText(expr)), 1 /* EvaluatedFlags.SyntacticallyString */);
|
|
105
|
+
case 229 /* SyntaxKind.TemplateExpression */: {
|
|
106
|
+
const shape = expr;
|
|
107
|
+
let text = getText(shape.head);
|
|
108
|
+
let flags = 1 /* EvaluatedFlags.SyntacticallyString */;
|
|
109
|
+
for (const span of shape.templateSpans.nodes) {
|
|
110
|
+
const s = span;
|
|
111
|
+
const value = evaluate(c, s.expression, location);
|
|
112
|
+
if (value.kind === 0 /* EvaluatedKind.None */)
|
|
113
|
+
return none();
|
|
114
|
+
text += valueText(value) + getText(s.literal);
|
|
115
|
+
flags |= value.flags & 2 /* EvaluatedFlags.ResolvedOtherFiles */;
|
|
116
|
+
}
|
|
117
|
+
return withFlags(EvaluatorResult.string(text), flags);
|
|
118
|
+
}
|
|
119
|
+
case 8 /* SyntaxKind.NumericLiteral */:
|
|
120
|
+
return EvaluatorResult.number(Number(getText(expr)));
|
|
121
|
+
case 218 /* SyntaxKind.ParenthesizedExpression */:
|
|
122
|
+
return evaluate(c, getExpression(expr), location);
|
|
123
|
+
case 79 /* SyntaxKind.Identifier */:
|
|
124
|
+
case 212 /* SyntaxKind.PropertyAccessExpression */: {
|
|
125
|
+
const symbol = resolveEntityName(c, expr, 111551 /* SymbolFlags.Value */, true, false, undefined);
|
|
126
|
+
if (symbol === undefined)
|
|
127
|
+
return none();
|
|
128
|
+
if (expr.kind === 79 /* SyntaxKind.Identifier */) {
|
|
129
|
+
const text = getText(expr);
|
|
130
|
+
if ((text === 'Infinity' || text === 'NaN') &&
|
|
131
|
+
symbol === getGlobalSymbol(c, text, 111551 /* SymbolFlags.Value */, undefined))
|
|
132
|
+
return EvaluatorResult.number(Number(text));
|
|
133
|
+
}
|
|
134
|
+
if ((symbol.flags & 8 /* SymbolFlags.EnumMember */) !== 0)
|
|
135
|
+
return evaluateEnumMemberReference(c, expr, symbol.valueDeclaration, location);
|
|
136
|
+
// Constants without annotations evaluate to their initializers, when declared before the use.
|
|
137
|
+
const declaration = symbol.valueDeclaration;
|
|
138
|
+
if (isConstantVariable(c, symbol) &&
|
|
139
|
+
declaration !== undefined &&
|
|
140
|
+
declaration.kind === 261 /* SyntaxKind.VariableDeclaration */ &&
|
|
141
|
+
getType(declaration) === undefined &&
|
|
142
|
+
getInitializer(declaration) !== undefined &&
|
|
143
|
+
declaration !== location &&
|
|
144
|
+
isBlockScopedNameDeclaredBeforeUse(c, declaration, location)) {
|
|
145
|
+
const result = evaluate(c, getInitializer(declaration), declaration);
|
|
146
|
+
// A transpiler sees only this file, so a constant from another file is not written as a string here.
|
|
147
|
+
if (getSourceFileOfNode(location) !== getSourceFileOfNode(declaration))
|
|
148
|
+
result.flags = 2 /* EvaluatedFlags.ResolvedOtherFiles */;
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
return none();
|
|
152
|
+
}
|
|
153
|
+
case 213 /* SyntaxKind.ElementAccessExpression */: {
|
|
154
|
+
const root = getExpression(expr);
|
|
155
|
+
const argument = expr.argumentExpression;
|
|
156
|
+
if (argument.kind !== 10 /* SyntaxKind.StringLiteral */ && argument.kind !== 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */)
|
|
157
|
+
return none();
|
|
158
|
+
const rootSymbol = resolveEntityName(c, root, 111551 /* SymbolFlags.Value */, true, false, undefined);
|
|
159
|
+
if (rootSymbol === undefined || (rootSymbol.flags & 384 /* SymbolFlags.Enum */) === 0)
|
|
160
|
+
return none();
|
|
161
|
+
const member = rootSymbol.exports?.get(getText(argument));
|
|
162
|
+
return member !== undefined ? evaluateEnumMemberReference(c, expr, member.valueDeclaration, location) : none();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return none();
|
|
166
|
+
}
|
|
167
|
+
function evaluateEnumMemberReference(c, expr, declaration, location) {
|
|
168
|
+
if (declaration === undefined || declaration === location) {
|
|
169
|
+
const name = declaration !== undefined ? getName(declaration) : undefined;
|
|
170
|
+
c.error(expr, 719 /* Diagnostics.Property_0_is_used_before_being_assigned */, name !== undefined ? declarationNameToString(getSourceFileOfNode(name), name) : '');
|
|
171
|
+
return none();
|
|
172
|
+
}
|
|
173
|
+
// Referenced members must be declared earlier, in this enum or another.
|
|
174
|
+
if (!isBlockScopedNameDeclaredBeforeUse(c, declaration, location)) {
|
|
175
|
+
c.error(expr, 785 /* Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums */);
|
|
176
|
+
return EvaluatorResult.number(0);
|
|
177
|
+
}
|
|
178
|
+
computeEnumMemberValues(c, declaration.parent);
|
|
179
|
+
const links = c.nodeLinks(declaration);
|
|
180
|
+
if (links.enumValueKind === 1 /* EvaluatedKind.Number */)
|
|
181
|
+
return withFlags(EvaluatorResult.number(links.enumNumberValue), links.enumValueFlags);
|
|
182
|
+
if (links.enumValueKind === 2 /* EvaluatedKind.String */)
|
|
183
|
+
return withFlags(EvaluatorResult.string(links.enumStringValue), links.enumValueFlags);
|
|
184
|
+
return none();
|
|
185
|
+
}
|
|
186
|
+
function valueText(v) {
|
|
187
|
+
return v.kind === 1 /* EvaluatedKind.Number */ ? String(v.numberValue) : v.stringValue;
|
|
188
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type Identifier, type Node, type PropertyAccessExpression, type QualifiedName } from './ast.js';
|
|
2
|
+
import { type Symbol } from './symbol.js';
|
|
3
|
+
import { type Checker } from './checker.js';
|
|
4
|
+
import { CheckMode, type Type } from './checker-types.js';
|
|
5
|
+
export { getContextuallyTypedParameterType, isContextSensitiveFunctionOrObjectLiteralMethod, } from './checker-contextual.js';
|
|
6
|
+
export declare function checkExpression(c: Checker, node: Node): Type;
|
|
7
|
+
export declare function checkExpressionEx(c: Checker, node: Node, checkMode: CheckMode): Type;
|
|
8
|
+
/** The type of `node`, computed once. */
|
|
9
|
+
export declare function checkExpressionCached(c: Checker, node: Node): Type;
|
|
10
|
+
/** The type of an expression, cached when computing it needed flow analysis; may skip some diagnostics. */
|
|
11
|
+
export declare function getTypeOfExpression(c: Checker, node: Node): Type;
|
|
12
|
+
/** The type of an initializer in a position where literals widen unless the context wants them. */
|
|
13
|
+
export declare function checkExpressionForMutableLocation(c: Checker, node: Node): Type;
|
|
14
|
+
export declare function checkExpressionForMutableLocationEx(c: Checker, node: Node, checkMode: CheckMode): Type;
|
|
15
|
+
export declare function checkDeclarationInitializer(c: Checker, declaration: Node, checkMode?: CheckMode, contextualType?: Type): Type;
|
|
16
|
+
export declare function checkComputedPropertyName(c: Checker, node: Node): Type;
|
|
17
|
+
/** Whether `node` is the `this` of `typeof this` or `typeof this.x`, which parses as an identifier. */
|
|
18
|
+
export declare function isThisInTypeQuery(node: Node): boolean;
|
|
19
|
+
/** The type of the expression in a `typeof` type query. */
|
|
20
|
+
export declare function checkTypeQueryExpression(c: Checker, node: Node): Type;
|
|
21
|
+
/** The symbol an identifier refers to as a value; reports unresolved names. */
|
|
22
|
+
export declare function getResolvedSymbol(c: Checker, node: Node): Symbol;
|
|
23
|
+
export declare function parseBigIntText(text: string): string;
|
|
24
|
+
export declare function checkIdentifier(c: Checker, node: Identifier, checkMode?: CheckMode): Type;
|
|
25
|
+
/**
|
|
26
|
+
* A reference's type with union constraints substituted for generic types where only the
|
|
27
|
+
* constraint matters, so narrowing can apply: in constraint positions like `x.p`, or with a
|
|
28
|
+
* non-generic contextual type.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getNarrowableTypeForReference(c: Checker, t: Type, reference: Node, checkMode?: CheckMode): Type;
|
|
31
|
+
export declare function someTypeIsGenericWithUnionConstraint(c: Checker, t: Type): boolean;
|
|
32
|
+
export declare function isInAmbientOrTypeNode(node: Node): boolean;
|
|
33
|
+
export declare function checkThisExpression(c: Checker, node: Node): Type;
|
|
34
|
+
/** The `this` type of a function expression or method from its context, such as its object literal. */
|
|
35
|
+
export declare function getContextualThisParameterType(c: Checker, func: Node): Type | undefined;
|
|
36
|
+
export declare function isTupleLikeType(c: Checker, t: Type): boolean;
|
|
37
|
+
/** Whether `t` is a mutable array, a mutable tuple, or assignable to `any[]`. */
|
|
38
|
+
export declare function isMutableArrayLikeType(c: Checker, t: Type): boolean;
|
|
39
|
+
/** The name of an object literal element, or undefined when it's computed and not a literal. */
|
|
40
|
+
export declare function getPropertyNameOfObjectLiteralElement(c: Checker, element: Node): string | undefined;
|
|
41
|
+
/** Whether `node` is in an `as const` context, where literals keep their types. */
|
|
42
|
+
export declare function isConstContext(c: Checker, node: Node): boolean;
|
|
43
|
+
export declare function isConstTypeReference(node: Node): boolean;
|
|
44
|
+
/** Widens a literal type unless the contextual type calls for literals of its kind. */
|
|
45
|
+
export declare function getWidenedLiteralLikeTypeForContextualType(c: Checker, t: Type, contextualType: Type | undefined): Type;
|
|
46
|
+
export declare function isLiteralOfContextualType(c: Checker, candidate: Type, contextualType: Type | undefined): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The type of an expression used as an object, with `null` and `undefined` removed. Without
|
|
49
|
+
* narrowing, nullability errors are only reported where no narrowing could apply.
|
|
50
|
+
*/
|
|
51
|
+
export declare function checkNonNullExpression(c: Checker, node: Node): Type;
|
|
52
|
+
export declare function checkNonNullType(c: Checker, t: Type, node: Node): Type;
|
|
53
|
+
/** `checkNonNullType`, reporting a possibly nullish callee of a call when `isCallee`. */
|
|
54
|
+
export declare function checkNonNullTypeEx(c: Checker, t: Type, node: Node, isCallee: boolean): Type;
|
|
55
|
+
/** `checkNonNullType`, also reporting a `void` type as possibly undefined. */
|
|
56
|
+
export declare function checkNonNullNonVoidType(c: Checker, t: Type, node: Node): Type;
|
|
57
|
+
export declare function entityNameToString(node: Node): string;
|
|
58
|
+
/** The type of `obj.name`; `writeOnly` gives the type it can be assigned, as for compound assignments. */
|
|
59
|
+
export declare function checkPropertyAccessExpression(c: Checker, node: PropertyAccessExpression, writeOnly: boolean, checkMode?: CheckMode): Type;
|
|
60
|
+
export declare function checkQualifiedName(c: Checker, node: QualifiedName): Type;
|
|
61
|
+
export declare function getFlowTypeOfAccessExpression(c: Checker, node: Node, prop: Symbol | undefined, propTypeIn: Type, errorNode: Node, checkMode?: CheckMode): Type;
|
|
62
|
+
/** Checks that the index of a generic indexed access is assignable to `keyof` its object type. */
|
|
63
|
+
export declare function checkIndexedAccessIndexType(c: Checker, t: Type, accessNode: Node): Type;
|
|
64
|
+
/** Checks that an assertion's operand type and asserted type are comparable. */
|
|
65
|
+
export declare function checkAssertionDeferred(c: Checker, node: Node): void;
|
|
66
|
+
/** Reports `source` not assignable to `target` at `errorNode`. */
|
|
67
|
+
export declare function checkTypeAssignableToAndOptionallyElaborate(c: Checker, source: Type, target: Type, errorNode: Node, expr: Node | undefined): boolean;
|