tsc-ts 0.0.10 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +29 -18
- package/dist/api/compiler/ast.js +1040 -1007
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +173 -123
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +136 -91
- package/dist/api/compiler/checker-contextual.d.ts +20 -0
- package/dist/api/compiler/checker-contextual.js +175 -62
- 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 +258 -212
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +469 -438
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -113
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +107 -89
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +210 -74
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +190 -46
- 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 +97 -31
- package/dist/api/compiler/checker.js +149 -35
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +24 -4
- package/dist/api/compiler/compile-program.js +53 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/expr-record.d.ts +11 -0
- package/dist/api/compiler/expr-record.js +53 -0
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- package/dist/api/compiler/identifier-name.d.ts +9 -0
- package/dist/api/compiler/identifier-name.js +10 -0
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +27 -25
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parser.d.ts +42 -20
- package/dist/api/compiler/parser.js +318 -224
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +6 -3
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +1 -0
- package/dist/api/compiler/printer/printer.js +306 -283
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +2 -0
- package/dist/api/compiler/program.js +69 -57
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +337 -180
- package/dist/api/compiler/reparser.js +64 -59
- package/dist/api/compiler/scanner.d.ts +27 -2
- package/dist/api/compiler/scanner.js +181 -150
- package/dist/api/compiler/shared-results.d.ts +696 -0
- package/dist/api/compiler/shared-results.js +2905 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +307 -239
- 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 +74 -38
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/cgroup.ts +157 -0
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- package/src/compiler/checker-classes.ts +80 -25
- package/src/compiler/checker-contextual.ts +110 -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 +95 -47
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +28 -5
- package/src/compiler/checker-members.ts +197 -55
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +173 -35
- 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 +175 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +59 -25
- package/src/compiler/decoder.ts +15 -5
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/doctor-report.ts +133 -0
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/expr-record.ts +59 -0
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/identifier-name.ts +13 -0
- package/src/compiler/incremental.ts +86 -18
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +7 -3
- 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 +543 -147
- package/src/compiler/parallel-emit.ts +4 -4
- package/src/compiler/parser.ts +166 -47
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +7 -3
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +39 -16
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -77
- package/src/compiler/reparser.ts +14 -5
- package/src/compiler/run-config.ts +1383 -0
- package/src/compiler/run-record-read.ts +87 -0
- package/src/compiler/run-records.ts +575 -0
- package/src/compiler/scanner.ts +166 -120
- package/src/compiler/shared-results.ts +3144 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +22 -3
- 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 +136 -49
- 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 +67 -6
- package/src/compiler/tsc-cli.ts +35 -4
- package/src/compiler/tsc-compile.ts +220 -10
- package/src/compiler/tsc-watch.ts +97 -47
- 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
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { ArrayTypeNode, ArrowFunction, AsExpression, BinaryExpression, CallSignatureDeclaration, ClassDeclaration, ClassExpression, ConstructSignatureDeclaration, ConstructorDeclaration, ConstructorTypeNode, ElementAccessExpression, ExportAssignment, ExpressionStatement, ExpressionWithTypeArguments, FunctionDeclaration, FunctionExpression, FunctionTypeNode, GetAccessorDeclaration, HeritageClause, Identifier, ImportDeclaration, IndexSignatureDeclaration, JSDoc, JSDocAugmentsTag, JSDocCallbackTag, JSDocImplementsTag, JSDocImportTag, JSDocOverloadTag, JSDocParameterOrPropertyTag, JSDocSatisfiesTag, JSDocSignature, JSDocTemplateTag, JSDocThisTag, JSDocTypeExpression, JSDocTypeLiteral, JSDocTypedefTag, JSDocVariadicType, JSDocOptionalType, KeywordTypeNode, MethodDeclaration, MethodSignatureDeclaration, ModifierList, ModuleBlock, ModuleDeclaration, NodeList, NodeVisitor, NumericLiteral, ParameterDeclaration, ParenthesizedExpression, PropertyAccessExpression, PropertyAssignment, PropertyDeclaration, PropertySignatureDeclaration, QualifiedName, ReturnStatement, SatisfiesExpression, SetAccessorDeclaration, ShorthandPropertyAssignment, StringLiteral, Token, TypeAliasDeclaration, TypeLiteralNode, TypeParameterDeclaration, VariableDeclaration, VariableStatement, getComment, getModifiers, getName, getParameters, getText, getType, getTypeExpression, getTypeParameters, FullPropertyAssignment, } from './ast.js';
|
|
10
10
|
import { isAssignmentOperator, isFunctionLike, isInJSFile, isLeftHandSideExpression, isStringLiteralLike, } from './ast-utilities.js';
|
|
11
11
|
import { isIdentifierPart, isIdentifierStart } from './character-codes.js';
|
|
12
|
+
import { IdentifierName } from './identifier-name.js';
|
|
12
13
|
/** Sets the parent of every node in a subtree. */
|
|
13
14
|
class ParentInChildrenSetter extends NodeVisitor {
|
|
14
15
|
parent = undefined;
|
|
@@ -127,7 +128,7 @@ export class Reparser {
|
|
|
127
128
|
type = this.reparseJSDocTypeLiteral(typeExpression);
|
|
128
129
|
else
|
|
129
130
|
throw new Error('typedef tag type expression should be a name reference or a type expression');
|
|
130
|
-
const typeAlias = new TypeAliasDeclaration(
|
|
131
|
+
const typeAlias = new TypeAliasDeclaration(346 /* SyntaxKind.JSTypeAliasDeclaration */, modifiers, name, typeParameters, type);
|
|
131
132
|
this.finishReparsedNode(typeAlias, tag);
|
|
132
133
|
this.attachReparsedJSDoc(typeAlias, jsDoc);
|
|
133
134
|
p.reparseList.push(this.wrapInJSDocNamespace(fullName, typeAlias, false));
|
|
@@ -139,7 +140,7 @@ export class Reparser {
|
|
|
139
140
|
const functionType = this.reparseJSDocSignature(tag.typeExpression, tag, jsDoc, tag, undefined);
|
|
140
141
|
const name = this.cloneTypeAliasName(this.getInnermostNameOfJSDocNamespace(fullName));
|
|
141
142
|
const typeParameters = this.gatherTypeParameters(jsDoc, true);
|
|
142
|
-
const typeAlias = new TypeAliasDeclaration(
|
|
143
|
+
const typeAlias = new TypeAliasDeclaration(346 /* SyntaxKind.JSTypeAliasDeclaration */, modifiers, name, typeParameters, functionType);
|
|
143
144
|
this.finishReparsedNode(typeAlias, tag);
|
|
144
145
|
this.attachReparsedJSDoc(typeAlias, jsDoc);
|
|
145
146
|
p.reparseList.push(this.wrapInJSDocNamespace(fullName, typeAlias, false));
|
|
@@ -162,16 +163,16 @@ export class Reparser {
|
|
|
162
163
|
p.reparsedClones.push(copy);
|
|
163
164
|
attributes = copy;
|
|
164
165
|
}
|
|
165
|
-
const importDeclaration = new ImportDeclaration(
|
|
166
|
+
const importDeclaration = new ImportDeclaration(347 /* SyntaxKind.JSImportDeclaration */, undefined, importClause, moduleSpecifier, attributes);
|
|
166
167
|
this.finishReparsedNode(importDeclaration, tag);
|
|
167
168
|
p.reparseList.push(importDeclaration);
|
|
168
169
|
return true;
|
|
169
170
|
}
|
|
170
171
|
if (tag instanceof JSDocOverloadTag) {
|
|
171
172
|
// Overload signatures only for functions, methods and constructors outside object literals.
|
|
172
|
-
if ((parent.kind ===
|
|
173
|
-
parent.kind ===
|
|
174
|
-
parent.kind ===
|
|
173
|
+
if ((parent.kind === 264 /* SyntaxKind.FunctionDeclaration */ ||
|
|
174
|
+
parent.kind === 176 /* SyntaxKind.MethodDeclaration */ ||
|
|
175
|
+
parent.kind === 178 /* SyntaxKind.Constructor */) &&
|
|
175
176
|
!p.inObjectLiteralMembers())
|
|
176
177
|
p.reparseList.push(this.reparseJSDocSignature(tag.typeExpression, parent, jsDoc, tag, getModifiers(parent)));
|
|
177
178
|
return true;
|
|
@@ -207,10 +208,10 @@ export class Reparser {
|
|
|
207
208
|
else if (fun instanceof MethodDeclaration) {
|
|
208
209
|
methodName = this.deepCloneReparse(this.checkNonIdentifierName(fun.name));
|
|
209
210
|
}
|
|
210
|
-
else if (fun.kind !==
|
|
211
|
+
else if (fun.kind !== 178 /* SyntaxKind.Constructor */ && fun.kind !== 332 /* SyntaxKind.JSDocCallbackTag */) {
|
|
211
212
|
throw new Error('Unexpected kind ' + fun.kind);
|
|
212
213
|
}
|
|
213
|
-
const typeParameters = tag.kind !==
|
|
214
|
+
const typeParameters = tag.kind !== 332 /* SyntaxKind.JSDocCallbackTag */ ? this.gatherTypeParameters(jsDoc, false) : undefined;
|
|
214
215
|
const parameters = [];
|
|
215
216
|
const signatureParameters = jsSignature instanceof JSDocSignature ? jsSignature.parameters : undefined;
|
|
216
217
|
if (signatureParameters !== undefined) {
|
|
@@ -219,7 +220,7 @@ export class Reparser {
|
|
|
219
220
|
const param = params[pi];
|
|
220
221
|
let parameter;
|
|
221
222
|
if (param instanceof JSDocThisTag) {
|
|
222
|
-
const thisIdent = new Identifier('this');
|
|
223
|
+
const thisIdent = new Identifier(new IdentifierName('this'));
|
|
223
224
|
thisIdent.pos = param.pos;
|
|
224
225
|
thisIdent.end = param.end;
|
|
225
226
|
thisIdent.flags = p.contextFlags | 8 /* NodeFlags.Reparsed */;
|
|
@@ -249,7 +250,7 @@ export class Reparser {
|
|
|
249
250
|
let name = param.name;
|
|
250
251
|
if (name instanceof Identifier && !isValidIdentifier(name.text)) {
|
|
251
252
|
// Replace invalid characters with `_`, or use `_N` for an empty name, for a valid parameter name.
|
|
252
|
-
name = this.addTransformedReparse(new Identifier(sanitizeIdentifier(name.text, pi)), name);
|
|
253
|
+
name = this.addTransformedReparse(new Identifier(new IdentifierName(sanitizeIdentifier(name.text, pi))), name);
|
|
253
254
|
}
|
|
254
255
|
else {
|
|
255
256
|
name = this.addDeepCloneReparse(name);
|
|
@@ -348,7 +349,7 @@ export class Reparser {
|
|
|
348
349
|
return undefined;
|
|
349
350
|
for (const tag of tags.nodes) {
|
|
350
351
|
// With a @typedef or @callback, @template declares the defined type's type parameters.
|
|
351
|
-
if (!typedefOrCallback && (tag.kind ===
|
|
352
|
+
if (!typedefOrCallback && (tag.kind === 339 /* SyntaxKind.JSDocTypedefTag */ || tag.kind === 332 /* SyntaxKind.JSDocCallbackTag */))
|
|
352
353
|
return undefined;
|
|
353
354
|
if (!(tag instanceof JSDocTemplateTag))
|
|
354
355
|
continue;
|
|
@@ -382,13 +383,13 @@ export class Reparser {
|
|
|
382
383
|
}
|
|
383
384
|
reparseHosted(tag, parent, jsDoc) {
|
|
384
385
|
switch (tag.kind) {
|
|
385
|
-
case
|
|
386
|
+
case 337 /* SyntaxKind.JSDocTypeTag */:
|
|
386
387
|
return this.reparseTypeTag(tag, parent);
|
|
387
|
-
case
|
|
388
|
+
case 343 /* SyntaxKind.JSDocSatisfiesTag */:
|
|
388
389
|
if (tag instanceof JSDocSatisfiesTag)
|
|
389
390
|
this.reparseSatisfiesTag(tag, parent);
|
|
390
391
|
return true;
|
|
391
|
-
case
|
|
392
|
+
case 338 /* SyntaxKind.JSDocTemplateTag */: {
|
|
392
393
|
const fun = getFunctionLikeHost(parent);
|
|
393
394
|
if (fun !== undefined) {
|
|
394
395
|
if (getTypeParameters(fun) === undefined && getFullSignature(fun) === undefined) {
|
|
@@ -396,7 +397,7 @@ export class Reparser {
|
|
|
396
397
|
this.finishMutatedNode(fun);
|
|
397
398
|
}
|
|
398
399
|
}
|
|
399
|
-
else if (parent.kind ===
|
|
400
|
+
else if (parent.kind === 265 /* SyntaxKind.ClassDeclaration */ || parent.kind === 233 /* SyntaxKind.ClassExpression */) {
|
|
400
401
|
if (getClassTypeParameters(parent) === undefined) {
|
|
401
402
|
setClassTypeParameters(parent, this.gatherTypeParameters(jsDoc, false));
|
|
402
403
|
this.finishMutatedNode(parent);
|
|
@@ -404,7 +405,7 @@ export class Reparser {
|
|
|
404
405
|
}
|
|
405
406
|
return true;
|
|
406
407
|
}
|
|
407
|
-
case
|
|
408
|
+
case 334 /* SyntaxKind.JSDocParameterTag */: {
|
|
408
409
|
const fun = getFunctionLikeHost(parent);
|
|
409
410
|
if (fun !== undefined && getFullSignature(fun) === undefined && tag instanceof JSDocParameterOrPropertyTag) {
|
|
410
411
|
const param = findMatchingParameter(fun, tag, jsDoc);
|
|
@@ -422,7 +423,7 @@ export class Reparser {
|
|
|
422
423
|
}
|
|
423
424
|
return true;
|
|
424
425
|
}
|
|
425
|
-
case
|
|
426
|
+
case 336 /* SyntaxKind.JSDocThisTag */: {
|
|
426
427
|
const fun = getFunctionLikeHost(parent);
|
|
427
428
|
if (fun !== undefined && tag instanceof JSDocThisTag) {
|
|
428
429
|
const parameters = getParameters(fun);
|
|
@@ -433,7 +434,7 @@ export class Reparser {
|
|
|
433
434
|
firstName.kind !== 109 /* SyntaxKind.ThisKeyword */ &&
|
|
434
435
|
!(firstName instanceof Identifier && firstName.text === 'this'))) {
|
|
435
436
|
// tsgo gives the `this` name no location.
|
|
436
|
-
const thisParam = new ParameterDeclaration(undefined, undefined, new Identifier('this'), undefined, undefined, undefined);
|
|
437
|
+
const thisParam = new ParameterDeclaration(undefined, undefined, new Identifier(new IdentifierName('this')), undefined, undefined, undefined);
|
|
437
438
|
thisParam.type = this.addDeepCloneReparse(getType(tag.typeExpression));
|
|
438
439
|
this.finishReparsedNode(thisParam, tag.tagName);
|
|
439
440
|
const newParams = [thisParam];
|
|
@@ -445,7 +446,7 @@ export class Reparser {
|
|
|
445
446
|
}
|
|
446
447
|
return true;
|
|
447
448
|
}
|
|
448
|
-
case
|
|
449
|
+
case 335 /* SyntaxKind.JSDocReturnTag */: {
|
|
449
450
|
const fun = getFunctionLikeHost(parent);
|
|
450
451
|
if (fun !== undefined && getFullSignature(fun) === undefined) {
|
|
451
452
|
const typeExpression = getTypeExpression(tag);
|
|
@@ -456,17 +457,17 @@ export class Reparser {
|
|
|
456
457
|
}
|
|
457
458
|
return true;
|
|
458
459
|
}
|
|
459
|
-
case
|
|
460
|
-
case
|
|
461
|
-
case
|
|
462
|
-
case
|
|
463
|
-
case
|
|
460
|
+
case 330 /* SyntaxKind.JSDocReadonlyTag */:
|
|
461
|
+
case 328 /* SyntaxKind.JSDocPrivateTag */:
|
|
462
|
+
case 327 /* SyntaxKind.JSDocPublicTag */:
|
|
463
|
+
case 329 /* SyntaxKind.JSDocProtectedTag */:
|
|
464
|
+
case 331 /* SyntaxKind.JSDocOverrideTag */:
|
|
464
465
|
return this.reparseModifierTag(tag, parent);
|
|
465
|
-
case
|
|
466
|
+
case 325 /* SyntaxKind.JSDocImplementsTag */:
|
|
466
467
|
if (tag instanceof JSDocImplementsTag)
|
|
467
468
|
this.reparseImplementsTag(tag, parent);
|
|
468
469
|
return true;
|
|
469
|
-
case
|
|
470
|
+
case 324 /* SyntaxKind.JSDocAugmentsTag */:
|
|
470
471
|
if (tag instanceof JSDocAugmentsTag)
|
|
471
472
|
this.reparseAugmentsTag(tag, parent);
|
|
472
473
|
return true;
|
|
@@ -476,7 +477,7 @@ export class Reparser {
|
|
|
476
477
|
reparseTypeTag(tag, parent) {
|
|
477
478
|
const typeExpression = getTypeExpression(tag);
|
|
478
479
|
switch (parent.kind) {
|
|
479
|
-
case
|
|
480
|
+
case 245 /* SyntaxKind.VariableStatement */:
|
|
480
481
|
if (parent instanceof VariableStatement)
|
|
481
482
|
for (const declaration of parent.declarationList.declarations.nodes)
|
|
482
483
|
if (declaration instanceof VariableDeclaration &&
|
|
@@ -487,26 +488,26 @@ export class Reparser {
|
|
|
487
488
|
return true;
|
|
488
489
|
}
|
|
489
490
|
break;
|
|
490
|
-
case
|
|
491
|
-
case
|
|
492
|
-
case
|
|
493
|
-
case
|
|
494
|
-
case
|
|
495
|
-
case
|
|
491
|
+
case 262 /* SyntaxKind.VariableDeclaration */:
|
|
492
|
+
case 279 /* SyntaxKind.ExportAssignment */:
|
|
493
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
494
|
+
case 304 /* SyntaxKind.PropertyAssignment */:
|
|
495
|
+
case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
|
|
496
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
496
497
|
if (getType(parent) === undefined && typeExpression !== undefined) {
|
|
497
498
|
setType(parent, this.addDeepCloneReparse(getType(typeExpression)));
|
|
498
499
|
this.finishMutatedNode(parent);
|
|
499
500
|
return true;
|
|
500
501
|
}
|
|
501
502
|
break;
|
|
502
|
-
case
|
|
503
|
+
case 171 /* SyntaxKind.Parameter */:
|
|
503
504
|
if (getType(parent) === undefined && typeExpression !== undefined) {
|
|
504
505
|
setType(parent, this.reparseJSDocTypeLiteral(getType(typeExpression)));
|
|
505
506
|
this.finishMutatedNode(parent);
|
|
506
507
|
return true;
|
|
507
508
|
}
|
|
508
509
|
break;
|
|
509
|
-
case
|
|
510
|
+
case 246 /* SyntaxKind.ExpressionStatement */:
|
|
510
511
|
if (parent instanceof ExpressionStatement) {
|
|
511
512
|
const bin = parent.expression;
|
|
512
513
|
if (bin instanceof BinaryExpression && isAssignmentDeclaration(bin) && typeExpression !== undefined) {
|
|
@@ -516,8 +517,8 @@ export class Reparser {
|
|
|
516
517
|
}
|
|
517
518
|
}
|
|
518
519
|
break;
|
|
519
|
-
case
|
|
520
|
-
case
|
|
520
|
+
case 255 /* SyntaxKind.ReturnStatement */:
|
|
521
|
+
case 219 /* SyntaxKind.ParenthesizedExpression */: {
|
|
521
522
|
const expression = getExpressionOfReturnOrParenthesized(parent);
|
|
522
523
|
if (expression !== undefined && typeExpression !== undefined) {
|
|
523
524
|
setExpression(parent, this.makeNewCast(this.addDeepCloneReparse(getType(typeExpression)), expression, true));
|
|
@@ -560,9 +561,9 @@ export class Reparser {
|
|
|
560
561
|
break;
|
|
561
562
|
}
|
|
562
563
|
}
|
|
563
|
-
else if (parent.kind ===
|
|
564
|
-
parent.kind ===
|
|
565
|
-
parent.kind ===
|
|
564
|
+
else if (parent.kind === 262 /* SyntaxKind.VariableDeclaration */ ||
|
|
565
|
+
parent.kind === 174 /* SyntaxKind.PropertyDeclaration */ ||
|
|
566
|
+
parent.kind === 304 /* SyntaxKind.PropertyAssignment */) {
|
|
566
567
|
const initializer = getInitializer(parent);
|
|
567
568
|
if (initializer !== undefined) {
|
|
568
569
|
setInitializer(parent, this.makeNewCast(this.addDeepCloneReparse(getType(typeExpression)), initializer, false));
|
|
@@ -576,9 +577,9 @@ export class Reparser {
|
|
|
576
577
|
this.finishMutatedNode(parent);
|
|
577
578
|
}
|
|
578
579
|
}
|
|
579
|
-
else if (parent.kind ===
|
|
580
|
-
parent.kind ===
|
|
581
|
-
parent.kind ===
|
|
580
|
+
else if (parent.kind === 255 /* SyntaxKind.ReturnStatement */ ||
|
|
581
|
+
parent.kind === 219 /* SyntaxKind.ParenthesizedExpression */ ||
|
|
582
|
+
parent.kind === 279 /* SyntaxKind.ExportAssignment */) {
|
|
582
583
|
const expression = getExpressionOfReturnOrParenthesized(parent);
|
|
583
584
|
if (expression !== undefined) {
|
|
584
585
|
setExpression(parent, this.makeNewCast(this.addDeepCloneReparse(getType(typeExpression)), expression, false));
|
|
@@ -598,32 +599,32 @@ export class Reparser {
|
|
|
598
599
|
if (parent instanceof ExpressionStatement)
|
|
599
600
|
parent = parent.expression;
|
|
600
601
|
switch (parent.kind) {
|
|
601
|
-
case
|
|
602
|
-
case
|
|
603
|
-
case
|
|
602
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
603
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
604
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
604
605
|
// In object literals these aren't class members: reparsed modifiers would cause spurious grammar errors.
|
|
605
606
|
if (this.p.inObjectLiteralMembers())
|
|
606
607
|
return false;
|
|
607
608
|
break;
|
|
608
|
-
case
|
|
609
|
-
case
|
|
610
|
-
case
|
|
609
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
610
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
611
|
+
case 228 /* SyntaxKind.BinaryExpression */:
|
|
611
612
|
break;
|
|
612
613
|
default:
|
|
613
614
|
return false;
|
|
614
615
|
}
|
|
615
616
|
let keyword = 0 /* SyntaxKind.Unknown */;
|
|
616
617
|
switch (tag.kind) {
|
|
617
|
-
case
|
|
618
|
+
case 330 /* SyntaxKind.JSDocReadonlyTag */:
|
|
618
619
|
keyword = 148 /* SyntaxKind.ReadonlyKeyword */;
|
|
619
620
|
break;
|
|
620
|
-
case
|
|
621
|
+
case 328 /* SyntaxKind.JSDocPrivateTag */:
|
|
621
622
|
keyword = 122 /* SyntaxKind.PrivateKeyword */;
|
|
622
623
|
break;
|
|
623
|
-
case
|
|
624
|
+
case 327 /* SyntaxKind.JSDocPublicTag */:
|
|
624
625
|
keyword = 124 /* SyntaxKind.PublicKeyword */;
|
|
625
626
|
break;
|
|
626
|
-
case
|
|
627
|
+
case 329 /* SyntaxKind.JSDocProtectedTag */:
|
|
627
628
|
keyword = 123 /* SyntaxKind.ProtectedKeyword */;
|
|
628
629
|
break;
|
|
629
630
|
default:
|
|
@@ -648,7 +649,7 @@ export class Reparser {
|
|
|
648
649
|
return true;
|
|
649
650
|
}
|
|
650
651
|
reparseImplementsTag(tag, parent) {
|
|
651
|
-
if (parent.kind !==
|
|
652
|
+
if (parent.kind !== 265 /* SyntaxKind.ClassDeclaration */ && parent.kind !== 233 /* SyntaxKind.ClassExpression */)
|
|
652
653
|
return false;
|
|
653
654
|
const className = tag.className;
|
|
654
655
|
const heritageClauses = getHeritageClauses(parent);
|
|
@@ -688,10 +689,14 @@ export class Reparser {
|
|
|
688
689
|
return false;
|
|
689
690
|
const target = clause.types.nodes[0];
|
|
690
691
|
const source = tag.className;
|
|
692
|
+
// The tag's type arguments apply to an `extends` clause without any: one naming the same
|
|
693
|
+
// entity, or another expression such as a call (`extends mixin(Base)`), but not `null`.
|
|
691
694
|
if (target instanceof ExpressionWithTypeArguments &&
|
|
692
|
-
hasSamePropertyAccessName(target.expression, source.expression) &&
|
|
693
695
|
target.typeArguments === undefined &&
|
|
694
|
-
source.typeArguments !== undefined
|
|
696
|
+
source.typeArguments !== undefined &&
|
|
697
|
+
target.expression.kind !== 105 /* SyntaxKind.NullKeyword */ &&
|
|
698
|
+
(!isEntityNameExpression(target.expression, false) ||
|
|
699
|
+
hasSamePropertyAccessName(target.expression, source.expression))) {
|
|
695
700
|
const newArguments = [];
|
|
696
701
|
for (const arg of source.typeArguments.nodes)
|
|
697
702
|
newArguments.push(this.addDeepCloneReparse(arg));
|
|
@@ -748,7 +753,7 @@ export class Reparser {
|
|
|
748
753
|
const block = new ModuleBlock(this.p.newNodeList(fullName.pos, fullName.end, [wrapped]));
|
|
749
754
|
this.finishReparsedNode(block, fullName);
|
|
750
755
|
const modifiers = nested ? this.createExportModifier(fullName) : undefined;
|
|
751
|
-
const result = new ModuleDeclaration(modifiers, 145 /* SyntaxKind.NamespaceKeyword */, this.addDeepCloneReparse(fullName.name), block);
|
|
756
|
+
const result = new ModuleDeclaration(modifiers, 145 /* SyntaxKind.NamespaceKeyword */, this.addDeepCloneReparse(fullName.name), undefined, block);
|
|
752
757
|
this.finishReparsedNode(result, fullName);
|
|
753
758
|
this.p.reparsedClones.push(result);
|
|
754
759
|
return result;
|
|
@@ -760,7 +765,7 @@ function findMatchingParameter(fun, parameterTag, jsDoc) {
|
|
|
760
765
|
let paramCount = -1;
|
|
761
766
|
if (jsDoc.tags !== undefined)
|
|
762
767
|
for (const tag of jsDoc.tags.nodes)
|
|
763
|
-
if (tag.kind ===
|
|
768
|
+
if (tag.kind === 334 /* SyntaxKind.JSDocParameterTag */) {
|
|
764
769
|
paramCount++;
|
|
765
770
|
if (tag === parameterTag) {
|
|
766
771
|
tagIndex = paramCount;
|
|
@@ -816,7 +821,7 @@ function getFunctionLikeHost(host) {
|
|
|
816
821
|
fun = first instanceof VariableDeclaration ? first.initializer : undefined;
|
|
817
822
|
}
|
|
818
823
|
}
|
|
819
|
-
else if (host.kind ===
|
|
824
|
+
else if (host.kind === 304 /* SyntaxKind.PropertyAssignment */ || host.kind === 174 /* SyntaxKind.PropertyDeclaration */) {
|
|
820
825
|
fun = getInitializer(host);
|
|
821
826
|
}
|
|
822
827
|
else if (host instanceof ExportAssignment) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IdentifierName } from './identifier-name.js';
|
|
1
2
|
import type { DiagnosticMessage } from './diagnostics.js';
|
|
2
3
|
import { EscapeSequenceScanningFlags, RegularExpressionFlags } from './regexp-checker.js';
|
|
3
4
|
import { SyntaxKind } from './syntax-kind.js';
|
|
@@ -60,6 +61,7 @@ export declare class Scanner {
|
|
|
60
61
|
/** @internal */ tokenFlags: TokenFlags;
|
|
61
62
|
/** @internal */ tokenValue: string;
|
|
62
63
|
/** @internal */ valueStart: number;
|
|
64
|
+
private tokenName;
|
|
63
65
|
/** @internal */ valueEnd: number;
|
|
64
66
|
private valueHash;
|
|
65
67
|
private hashStart;
|
|
@@ -68,6 +70,7 @@ export declare class Scanner {
|
|
|
68
70
|
/** @internal */ skipJSDocLeadingAsterisks: number;
|
|
69
71
|
private readonly cutUnits;
|
|
70
72
|
private readonly identifiers;
|
|
73
|
+
private lastEntry;
|
|
71
74
|
private loadedBlocks;
|
|
72
75
|
private textKind;
|
|
73
76
|
private lineFeedFrom;
|
|
@@ -113,6 +116,11 @@ export declare class Scanner {
|
|
|
113
116
|
recordIdentifierValue(text: string): boolean;
|
|
114
117
|
/** @internal Like `getTokenValue`, but identifiers with the same text share one string. */
|
|
115
118
|
getIdentifierValue(): string;
|
|
119
|
+
/**
|
|
120
|
+
* The identifier value as a name that identifiers with the same text share, after
|
|
121
|
+
* `getIdentifierValue`; a cooked value (with escapes) gets a name of its own.
|
|
122
|
+
*/
|
|
123
|
+
getIdentifierName(): IdentifierName;
|
|
116
124
|
getCommentDirectives(): readonly CommentDirective[];
|
|
117
125
|
hasUnicodeEscape(): boolean;
|
|
118
126
|
hasExtendedUnicodeEscape(): boolean;
|
|
@@ -172,10 +180,19 @@ export declare class Scanner {
|
|
|
172
180
|
/** Scans a merge conflict marker; returns true if it is skipped as trivia. */
|
|
173
181
|
private scanConflictMarker;
|
|
174
182
|
private processCommentDirective;
|
|
175
|
-
/**
|
|
176
|
-
|
|
183
|
+
/**
|
|
184
|
+
* @internal Scans an identifier after `prefixLength` units; sets the token value. `variant`
|
|
185
|
+
* decides the identifier parts: JSX and JSDoc names also take `-`, and regular expression group
|
|
186
|
+
* names take a surrogate pair written as two `\u` escapes.
|
|
187
|
+
*/
|
|
188
|
+
scanIdentifier(prefixLength: number, variant: IdentifierVariant): boolean;
|
|
177
189
|
/** Scans identifier parts including `\u` escapes and returns their cooked text. */
|
|
178
190
|
private scanIdentifierParts;
|
|
191
|
+
/**
|
|
192
|
+
* At `\`: scans a `\u` escape of an identifier start (`isStart`) or part and returns its code point,
|
|
193
|
+
* or returns -1 and leaves the scanner unchanged.
|
|
194
|
+
*/
|
|
195
|
+
private scanIdentifierEscape;
|
|
179
196
|
private scanInvalidCharacter;
|
|
180
197
|
/** Scans a quoted string and sets its cooked value. */
|
|
181
198
|
private scanString;
|
|
@@ -238,6 +255,14 @@ export declare class Scanner {
|
|
|
238
255
|
canFollowJSDocAt(): boolean;
|
|
239
256
|
scanJSDocToken(): SyntaxKind;
|
|
240
257
|
}
|
|
258
|
+
/** Which characters an identifier scan takes after its start. */
|
|
259
|
+
export declare const enum IdentifierVariant {
|
|
260
|
+
Standard = 0,
|
|
261
|
+
/** JSX and JSDoc names, which take `-`. */
|
|
262
|
+
JSX = 1,
|
|
263
|
+
/** Regular expression group names, which take a surrogate pair written as two `\u` escapes. */
|
|
264
|
+
RegExpGroupName = 2
|
|
265
|
+
}
|
|
241
266
|
/** Whether `text` has a `<<<<<<<`, `|||||||`, `=======` or `>>>>>>>` marker at `pos`. */
|
|
242
267
|
export declare function isConflictMarkerTrivia(text: string, pos: number): boolean;
|
|
243
268
|
/** The `#!` line at the start of `text`, or `''`. */
|