tsc-ts 0.0.10 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +20 -15
- package/dist/api/compiler/ast.js +1023 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +173 -123
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +469 -438
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -113
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +210 -74
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +137 -34
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +93 -31
- package/dist/api/compiler/checker.js +143 -35
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +19 -4
- package/dist/api/compiler/compile-program.js +45 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +1 -0
- package/dist/api/compiler/printer/printer.js +303 -281
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +2 -0
- package/dist/api/compiler/program.js +69 -57
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +337 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +55 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +197 -55
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +120 -21
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +168 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +51 -25
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +86 -18
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +197 -8
- package/src/compiler/parallel-emit.ts +1 -1
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +35 -14
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +19 -2
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +3 -0
- package/src/compiler/tsc-cli.ts +2 -0
- package/src/compiler/tsc-compile.ts +7 -2
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- package/src/library/enums.generated.ts +196 -196
|
@@ -219,8 +219,8 @@ export class SourceMapGenerator {
|
|
|
219
219
|
const mappings = this.getMappings();
|
|
220
220
|
let json = '{"version":3,"file":' +
|
|
221
221
|
jsonString(this.file) +
|
|
222
|
-
|
|
223
|
-
jsonString(this.sourceRoot) +
|
|
222
|
+
// An empty source root is left out, as tsgo's `omitzero` does.
|
|
223
|
+
(this.sourceRoot === '' ? '' : ',"sourceRoot":' + jsonString(this.sourceRoot)) +
|
|
224
224
|
',"sources":' +
|
|
225
225
|
jsonStrings(this.sources) +
|
|
226
226
|
',"names":' +
|
|
@@ -8,7 +8,7 @@ import { ExternalModuleContainerIndex, SymbolAccessibilityCaches, fileIndexScale
|
|
|
8
8
|
import { getEffectiveDeclarationFlags } from './checker-declarations.js';
|
|
9
9
|
import { getDeclaredTypeOfSymbol } from './checker-declared-types.js';
|
|
10
10
|
import { checkExpressionCached } from './checker-expressions.js';
|
|
11
|
-
import { resolveExternalModuleName, resolveExternalModuleSymbol } from './checker-modules.js';
|
|
11
|
+
import { getImportAttributesTypeForModuleSpecifier, resolveExternalModuleName, resolveExternalModuleSymbol, } from './checker-modules.js';
|
|
12
12
|
import { getExportsOfSymbol, getMergedSymbol, getParentOfSymbol, getSymbolFlags, getSymbolOfDeclaration, resolveAlias, resolveSymbol, } from './checker-symbols.js';
|
|
13
13
|
import { getTypeOfSymbol } from './checker-symbol-types.js';
|
|
14
14
|
import { compareSymbols } from './checker-type-factory.js';
|
|
@@ -116,10 +116,10 @@ export function hasNonGlobalAugmentationExternalModuleDeclaration(symbol) {
|
|
|
116
116
|
}
|
|
117
117
|
export function hasNonGlobalAugmentationExternalModuleSymbol(declaration) {
|
|
118
118
|
return (isModuleWithStringLiteralName(declaration) ||
|
|
119
|
-
(declaration.kind ===
|
|
119
|
+
(declaration.kind === 308 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
|
|
120
120
|
}
|
|
121
121
|
function isModuleWithStringLiteralName(node) {
|
|
122
|
-
if (node.kind !==
|
|
122
|
+
if (node.kind !== 269 /* SyntaxKind.ModuleDeclaration */)
|
|
123
123
|
return false;
|
|
124
124
|
const name = getName(node);
|
|
125
125
|
return name !== undefined && name.kind === 10 /* SyntaxKind.StringLiteral */;
|
|
@@ -214,7 +214,7 @@ function getAlternativeContainingModules(c, symbol, enclosingDeclaration) {
|
|
|
214
214
|
// Synthesized specifiers can't be resolved.
|
|
215
215
|
if ((importRef.flags & 16 /* NodeFlags.Synthesized */) !== 0)
|
|
216
216
|
continue;
|
|
217
|
-
const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true);
|
|
217
|
+
const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true, getImportAttributesTypeForModuleSpecifier(c, importRef));
|
|
218
218
|
if (resolvedModule === undefined)
|
|
219
219
|
continue;
|
|
220
220
|
if (getAliasForSymbolInContainer(c, resolvedModule, symbol) === undefined)
|
|
@@ -280,7 +280,7 @@ function externalModuleFileIndex(c, symbol) {
|
|
|
280
280
|
if (symbol === undefined || (symbol.flags & 512 /* SymbolFlags.ValueModule */) === 0)
|
|
281
281
|
return -1;
|
|
282
282
|
for (const declaration of getDeclarations(symbol)) {
|
|
283
|
-
if (declaration.kind !==
|
|
283
|
+
if (declaration.kind !== 308 /* SyntaxKind.SourceFile */)
|
|
284
284
|
continue;
|
|
285
285
|
const file = declaration;
|
|
286
286
|
if (isExternalModule(file) && getSymbolOfDeclaration(c, declaration) === symbol)
|
|
@@ -343,14 +343,14 @@ function getVariableDeclarationOfObjectLiteral(c, symbol, meaning) {
|
|
|
343
343
|
const parent = firstDecl.parent;
|
|
344
344
|
if (parent === undefined || !(parent instanceof VariableDeclaration))
|
|
345
345
|
return undefined;
|
|
346
|
-
if ((firstDecl.kind ===
|
|
347
|
-
(firstDecl.kind ===
|
|
346
|
+
if ((firstDecl.kind === 212 /* SyntaxKind.ObjectLiteralExpression */ && firstDecl === getInitializer(parent)) ||
|
|
347
|
+
(firstDecl.kind === 189 /* SyntaxKind.TypeLiteral */ && firstDecl === getType(parent)))
|
|
348
348
|
return getSymbolOfDeclaration(c, parent);
|
|
349
349
|
return undefined;
|
|
350
350
|
}
|
|
351
351
|
function hasExternalModuleSymbol(declaration) {
|
|
352
352
|
return (isAmbientModule(declaration) ||
|
|
353
|
-
(declaration.kind ===
|
|
353
|
+
(declaration.kind === 308 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
|
|
354
354
|
}
|
|
355
355
|
function getExternalModuleContainer(c, declaration) {
|
|
356
356
|
for (let node = declaration; node !== undefined; node = node.parent)
|
|
@@ -388,7 +388,7 @@ export function getContainersOfSymbol(c, symbol, enclosingDeclaration, meaning)
|
|
|
388
388
|
continue;
|
|
389
389
|
}
|
|
390
390
|
// The `export =` of an ambient module.
|
|
391
|
-
if (parent.kind ===
|
|
391
|
+
if (parent.kind === 270 /* SyntaxKind.ModuleBlock */ &&
|
|
392
392
|
parent.parent !== undefined &&
|
|
393
393
|
resolveExternalModuleSymbol(c, getSymbolOfDeclaration(c, parent.parent), false) === symbol) {
|
|
394
394
|
addCandidate(getSymbolOfDeclaration(c, parent.parent));
|
|
@@ -545,7 +545,7 @@ class ChainSearch {
|
|
|
545
545
|
(this.useOnlyExternalAliasing && !hasExternalModuleImportEqualsDeclaration(fromTable)) ||
|
|
546
546
|
(isLocalNameLookup && hasNamespaceReexportDeclaration(fromTable)) ||
|
|
547
547
|
// Exports are in scope, but export specifiers aren't.
|
|
548
|
-
(!ignoreQualification && getDeclarations(fromTable).some((d) => d.kind ===
|
|
548
|
+
(!ignoreQualification && getDeclarations(fromTable).some((d) => d.kind === 283 /* SyntaxKind.ExportSpecifier */)))
|
|
549
549
|
continue;
|
|
550
550
|
const resolved = resolveAlias(c, fromTable);
|
|
551
551
|
const candidate = this.candidateListForSymbol(fromTable, resolved, ignoreQualification);
|
|
@@ -580,10 +580,23 @@ class ChainSearch {
|
|
|
580
580
|
isAccessible(fromTable, resolvedAlias, ignoreQualification) {
|
|
581
581
|
const c = this.c;
|
|
582
582
|
const symbol = getMergedSymbol(c, this.symbol);
|
|
583
|
-
|
|
583
|
+
let likeSymbols = this.symbol === resolvedAlias ||
|
|
584
584
|
this.symbol === fromTable ||
|
|
585
585
|
(resolvedAlias !== undefined && symbol === getMergedSymbol(c, resolvedAlias)) ||
|
|
586
586
|
symbol === getMergedSymbol(c, fromTable);
|
|
587
|
+
// An alias of an alias, such as `export =` of a class that a top-level export also names, resolves further.
|
|
588
|
+
if (!likeSymbols && resolvedAlias !== undefined && (resolvedAlias.flags & 2097152 /* SymbolFlags.Alias */) !== 0) {
|
|
589
|
+
const seen = new Set();
|
|
590
|
+
let alias = resolvedAlias;
|
|
591
|
+
while ((alias.flags & 2097152 /* SymbolFlags.Alias */) !== 0 && !seen.has(alias)) {
|
|
592
|
+
seen.add(alias);
|
|
593
|
+
alias = getMergedSymbol(c, resolveAlias(c, alias));
|
|
594
|
+
if (symbol === alias) {
|
|
595
|
+
likeSymbols = true;
|
|
596
|
+
break;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
587
600
|
if (!likeSymbols)
|
|
588
601
|
return false;
|
|
589
602
|
// An external module in the global table isn't accessible by name; otherwise the name must be qualifiable.
|
|
@@ -639,7 +652,7 @@ function compareSymbolChains(c, a, b) {
|
|
|
639
652
|
return 0;
|
|
640
653
|
}
|
|
641
654
|
function isUMDExportSymbol(symbol) {
|
|
642
|
-
return declarationCount(symbol) > 0 && symbol.declaration.kind ===
|
|
655
|
+
return declarationCount(symbol) > 0 && symbol.declaration.kind === 272 /* SyntaxKind.NamespaceExportDeclaration */;
|
|
643
656
|
}
|
|
644
657
|
function hasNamespaceReexportDeclaration(symbol) {
|
|
645
658
|
for (const d of getDeclarations(symbol))
|
|
@@ -648,7 +661,7 @@ function hasNamespaceReexportDeclaration(symbol) {
|
|
|
648
661
|
return false;
|
|
649
662
|
}
|
|
650
663
|
function isNamespaceReexportDeclaration(node) {
|
|
651
|
-
return (node.kind ===
|
|
664
|
+
return (node.kind === 282 /* SyntaxKind.NamespaceExport */ &&
|
|
652
665
|
node.parent instanceof ExportDeclaration &&
|
|
653
666
|
node.parent.moduleSpecifier !== undefined);
|
|
654
667
|
}
|
|
@@ -659,7 +672,7 @@ function hasExternalModuleImportEqualsDeclaration(symbol) {
|
|
|
659
672
|
return false;
|
|
660
673
|
}
|
|
661
674
|
function isExternalModuleImportEqualsDeclaration(node) {
|
|
662
|
-
return node instanceof ImportEqualsDeclaration && node.moduleReference.kind ===
|
|
675
|
+
return node instanceof ImportEqualsDeclaration && node.moduleReference.kind === 285 /* SyntaxKind.ExternalModuleReference */;
|
|
663
676
|
}
|
|
664
677
|
/** Whether another symbol of the same name and meaning shadows `symbol` at `enclosingDeclaration`. */
|
|
665
678
|
export function needsQualification(c, symbol, enclosingDeclaration, meaning) {
|
|
@@ -673,7 +686,7 @@ export function needsQualification(c, symbol, enclosingDeclaration, meaning) {
|
|
|
673
686
|
return true;
|
|
674
687
|
// Qualify if the symbol of this name has the meaning sought.
|
|
675
688
|
const shouldResolveAlias = (fromTable.flags & 2097152 /* SymbolFlags.Alias */) !== 0 &&
|
|
676
|
-
!getDeclarations(fromTable).some((d) => d.kind ===
|
|
689
|
+
!getDeclarations(fromTable).some((d) => d.kind === 283 /* SyntaxKind.ExportSpecifier */);
|
|
677
690
|
if (shouldResolveAlias)
|
|
678
691
|
fromTable = resolveAlias(c, fromTable);
|
|
679
692
|
const flags = shouldResolveAlias ? getSymbolFlags(c, fromTable) : fromTable.flags;
|
|
@@ -690,10 +703,10 @@ function isPropertyOrMethodDeclarationSymbol(symbol) {
|
|
|
690
703
|
return false;
|
|
691
704
|
for (const declaration of getDeclarations(symbol)) {
|
|
692
705
|
switch (declaration.kind) {
|
|
693
|
-
case
|
|
694
|
-
case
|
|
695
|
-
case
|
|
696
|
-
case
|
|
706
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
707
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
708
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
709
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
697
710
|
continue;
|
|
698
711
|
default:
|
|
699
712
|
return false;
|
|
@@ -714,9 +727,9 @@ export function someSymbolTableInScope(c, enclosingDeclaration, callback) {
|
|
|
714
727
|
return true;
|
|
715
728
|
}
|
|
716
729
|
switch (location.kind) {
|
|
717
|
-
case
|
|
718
|
-
case
|
|
719
|
-
if (location.kind ===
|
|
730
|
+
case 308 /* SyntaxKind.SourceFile */:
|
|
731
|
+
case 269 /* SyntaxKind.ModuleDeclaration */: {
|
|
732
|
+
if (location.kind === 308 /* SyntaxKind.SourceFile */ && !isExternalOrCommonJSModule(location))
|
|
720
733
|
break;
|
|
721
734
|
const symbol = getSymbolOfDeclaration(c, location);
|
|
722
735
|
if (symbol === undefined)
|
|
@@ -726,9 +739,9 @@ export function someSymbolTableInScope(c, enclosingDeclaration, callback) {
|
|
|
726
739
|
return true;
|
|
727
740
|
break;
|
|
728
741
|
}
|
|
729
|
-
case
|
|
730
|
-
case
|
|
731
|
-
case
|
|
742
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
743
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
744
|
+
case 266 /* SyntaxKind.InterfaceDeclaration */: {
|
|
732
745
|
// Type parameters are bound in `members` so they merge across declarations, but act like
|
|
733
746
|
// locals. Raw members suffice: they're never late bound.
|
|
734
747
|
const symbol = getSymbolOfDeclaration(c, location);
|
|
@@ -838,23 +851,23 @@ export function beginDeclarationEmitVisibility(c, file) {
|
|
|
838
851
|
}
|
|
839
852
|
function determineIfDeclarationIsVisible(c, node) {
|
|
840
853
|
switch (node.kind) {
|
|
841
|
-
case
|
|
842
|
-
case
|
|
854
|
+
case 332 /* SyntaxKind.JSDocCallbackTag */:
|
|
855
|
+
case 339 /* SyntaxKind.JSDocTypedefTag */: {
|
|
843
856
|
// Top-level JSDoc type aliases are exported.
|
|
844
857
|
const host = node.parent?.parent?.parent;
|
|
845
|
-
return host !== undefined && host.kind ===
|
|
858
|
+
return host !== undefined && host.kind === 308 /* SyntaxKind.SourceFile */;
|
|
846
859
|
}
|
|
847
|
-
case
|
|
860
|
+
case 210 /* SyntaxKind.BindingElement */:
|
|
848
861
|
return isDeclarationVisible(c, node.parent.parent);
|
|
849
|
-
case
|
|
850
|
-
case
|
|
851
|
-
case
|
|
852
|
-
case
|
|
853
|
-
case
|
|
854
|
-
case
|
|
855
|
-
case
|
|
856
|
-
case
|
|
857
|
-
case
|
|
862
|
+
case 262 /* SyntaxKind.VariableDeclaration */:
|
|
863
|
+
case 269 /* SyntaxKind.ModuleDeclaration */:
|
|
864
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
865
|
+
case 266 /* SyntaxKind.InterfaceDeclaration */:
|
|
866
|
+
case 267 /* SyntaxKind.TypeAliasDeclaration */:
|
|
867
|
+
case 346 /* SyntaxKind.JSTypeAliasDeclaration */:
|
|
868
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
869
|
+
case 268 /* SyntaxKind.EnumDeclaration */:
|
|
870
|
+
case 273 /* SyntaxKind.ImportEqualsDeclaration */: {
|
|
858
871
|
if (node instanceof VariableDeclaration) {
|
|
859
872
|
const name = node.name;
|
|
860
873
|
if (name instanceof BindingPattern && name.elements.nodes.length === 0)
|
|
@@ -865,51 +878,51 @@ function determineIfDeclarationIsVisible(c, node) {
|
|
|
865
878
|
const parent = getDeclarationContainer(node);
|
|
866
879
|
// Unexported declarations are visible only in global files; ambient module members are exported.
|
|
867
880
|
if ((getCombinedModifierFlags(node) & 32 /* ModifierFlags.Export */) === 0 &&
|
|
868
|
-
!(node.kind !==
|
|
869
|
-
parent.kind !==
|
|
881
|
+
!(node.kind !== 273 /* SyntaxKind.ImportEqualsDeclaration */ &&
|
|
882
|
+
parent.kind !== 308 /* SyntaxKind.SourceFile */ &&
|
|
870
883
|
(parent.flags & 8388608 /* NodeFlags.Ambient */) !== 0))
|
|
871
884
|
return isGlobalSourceFile(parent);
|
|
872
885
|
return isDeclarationVisible(c, parent);
|
|
873
886
|
}
|
|
874
|
-
case
|
|
875
|
-
case
|
|
876
|
-
case
|
|
877
|
-
case
|
|
878
|
-
case
|
|
879
|
-
case
|
|
887
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
888
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
889
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
890
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
891
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
892
|
+
case 175 /* SyntaxKind.MethodSignature */:
|
|
880
893
|
if (getEffectiveDeclarationFlags(node, 2 /* ModifierFlags.Private */ | 4 /* ModifierFlags.Protected */) !== 0)
|
|
881
894
|
return false;
|
|
882
895
|
return isDeclarationVisible(c, node.parent);
|
|
883
|
-
case
|
|
884
|
-
case
|
|
885
|
-
case
|
|
886
|
-
case
|
|
887
|
-
case
|
|
888
|
-
case
|
|
889
|
-
case
|
|
890
|
-
case
|
|
891
|
-
case
|
|
892
|
-
case
|
|
893
|
-
case
|
|
894
|
-
case
|
|
895
|
-
case
|
|
896
|
-
case
|
|
897
|
-
case
|
|
898
|
-
case
|
|
896
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
897
|
+
case 182 /* SyntaxKind.ConstructSignature */:
|
|
898
|
+
case 181 /* SyntaxKind.CallSignature */:
|
|
899
|
+
case 183 /* SyntaxKind.IndexSignature */:
|
|
900
|
+
case 171 /* SyntaxKind.Parameter */:
|
|
901
|
+
case 270 /* SyntaxKind.ModuleBlock */:
|
|
902
|
+
case 186 /* SyntaxKind.FunctionType */:
|
|
903
|
+
case 187 /* SyntaxKind.ConstructorType */:
|
|
904
|
+
case 189 /* SyntaxKind.TypeLiteral */:
|
|
905
|
+
case 185 /* SyntaxKind.TypeReference */:
|
|
906
|
+
case 190 /* SyntaxKind.ArrayType */:
|
|
907
|
+
case 191 /* SyntaxKind.TupleType */:
|
|
908
|
+
case 194 /* SyntaxKind.UnionType */:
|
|
909
|
+
case 195 /* SyntaxKind.IntersectionType */:
|
|
910
|
+
case 198 /* SyntaxKind.ParenthesizedType */:
|
|
911
|
+
case 204 /* SyntaxKind.NamedTupleMember */:
|
|
899
912
|
return isDeclarationVisible(c, node.parent);
|
|
900
913
|
// Imports are visible only once something refers to them.
|
|
901
|
-
case
|
|
902
|
-
case
|
|
903
|
-
case
|
|
914
|
+
case 275 /* SyntaxKind.ImportClause */:
|
|
915
|
+
case 276 /* SyntaxKind.NamespaceImport */:
|
|
916
|
+
case 278 /* SyntaxKind.ImportSpecifier */:
|
|
904
917
|
return false;
|
|
905
|
-
case
|
|
906
|
-
case
|
|
907
|
-
case
|
|
918
|
+
case 170 /* SyntaxKind.TypeParameter */:
|
|
919
|
+
case 308 /* SyntaxKind.SourceFile */:
|
|
920
|
+
case 272 /* SyntaxKind.NamespaceExportDeclaration */:
|
|
908
921
|
return true;
|
|
909
|
-
case
|
|
922
|
+
case 279 /* SyntaxKind.ExportAssignment */:
|
|
910
923
|
return false;
|
|
911
924
|
// `export { x }` without a module specifier re-exports `x` visibly.
|
|
912
|
-
case
|
|
925
|
+
case 283 /* SyntaxKind.ExportSpecifier */: {
|
|
913
926
|
const exportDeclaration = node.parent.parent;
|
|
914
927
|
if (exportDeclaration instanceof ExportDeclaration && exportDeclaration.moduleSpecifier === undefined)
|
|
915
928
|
return isDeclarationVisible(c, exportDeclaration.parent);
|
|
@@ -943,7 +956,7 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
|
|
|
943
956
|
continue;
|
|
944
957
|
}
|
|
945
958
|
if (declaration instanceof VariableDeclaration &&
|
|
946
|
-
declaration.parent.parent.kind ===
|
|
959
|
+
declaration.parent.parent.kind === 245 /* SyntaxKind.VariableStatement */ &&
|
|
947
960
|
!hasSyntacticModifier(declaration.parent.parent, 32 /* ModifierFlags.Export */) &&
|
|
948
961
|
isDeclarationVisible(c, declaration.parent.parent.parent)) {
|
|
949
962
|
addVisibleAlias(declaration, declaration.parent.parent);
|
|
@@ -961,7 +974,7 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
|
|
|
961
974
|
const statement = declaration.parent?.parent?.parent?.parent;
|
|
962
975
|
if (declaration.parent?.parent instanceof VariableDeclaration &&
|
|
963
976
|
statement !== undefined &&
|
|
964
|
-
statement.kind ===
|
|
977
|
+
statement.kind === 245 /* SyntaxKind.VariableStatement */ &&
|
|
965
978
|
!hasSyntacticModifier(statement, 32 /* ModifierFlags.Export */) &&
|
|
966
979
|
statement.parent !== undefined &&
|
|
967
980
|
isDeclarationVisible(c, statement.parent)) {
|
|
@@ -971,10 +984,10 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
|
|
|
971
984
|
}
|
|
972
985
|
if ((symbol.flags & 2 /* SymbolFlags.BlockScopedVariable */) !== 0) {
|
|
973
986
|
const root = getRootDeclaration(declaration);
|
|
974
|
-
if (root.kind ===
|
|
987
|
+
if (root.kind === 171 /* SyntaxKind.Parameter */)
|
|
975
988
|
return undefined;
|
|
976
989
|
const variableStatement = root.parent?.parent;
|
|
977
|
-
if (variableStatement === undefined || variableStatement.kind !==
|
|
990
|
+
if (variableStatement === undefined || variableStatement.kind !== 245 /* SyntaxKind.VariableStatement */)
|
|
978
991
|
return undefined;
|
|
979
992
|
// Already exported: nothing to keep.
|
|
980
993
|
if (hasSyntacticModifier(variableStatement, 32 /* ModifierFlags.Export */))
|
|
@@ -107,22 +107,26 @@ export declare const enum CheckFlags {
|
|
|
107
107
|
ContainsPublic = 256,
|
|
108
108
|
ContainsProtected = 512,
|
|
109
109
|
ContainsPrivate = 1024,
|
|
110
|
-
|
|
110
|
+
/** A synthetic property with public, protected or private write access in a constituent. */
|
|
111
|
+
ContainsWritePublic = 2048,
|
|
112
|
+
ContainsWriteProtected = 4096,
|
|
113
|
+
ContainsWritePrivate = 8192,
|
|
114
|
+
ContainsStatic = 16384,
|
|
111
115
|
/** Late-bound from a computed property name. */
|
|
112
|
-
Late =
|
|
113
|
-
ReverseMapped =
|
|
114
|
-
OptionalParameter =
|
|
115
|
-
RestParameter =
|
|
116
|
+
Late = 32768,
|
|
117
|
+
ReverseMapped = 65536,
|
|
118
|
+
OptionalParameter = 131072,
|
|
119
|
+
RestParameter = 262144,
|
|
116
120
|
/** The type is computed on demand. */
|
|
117
|
-
DeferredType =
|
|
118
|
-
HasNeverType =
|
|
119
|
-
Mapped =
|
|
120
|
-
StripOptional =
|
|
121
|
-
Unresolved =
|
|
122
|
-
IsDiscriminantComputed =
|
|
123
|
-
IsDiscriminant =
|
|
121
|
+
DeferredType = 524288,
|
|
122
|
+
HasNeverType = 1048576,
|
|
123
|
+
Mapped = 2097152,
|
|
124
|
+
StripOptional = 4194304,
|
|
125
|
+
Unresolved = 8388608,
|
|
126
|
+
IsDiscriminantComputed = 16777216,
|
|
127
|
+
IsDiscriminant = 33554432,
|
|
124
128
|
/** Created from an index signature. */
|
|
125
|
-
IndexSymbol =
|
|
129
|
+
IndexSymbol = 67108864,
|
|
126
130
|
Synthetic = 6,
|
|
127
131
|
NonUniformAndLiteral = 192,
|
|
128
132
|
Partial = 48
|
|
@@ -235,6 +239,11 @@ export declare function getMembers(symbol: Symbol): SymbolTable;
|
|
|
235
239
|
* vanishingly unlikely in a string-literal property name.
|
|
236
240
|
*/
|
|
237
241
|
export declare const internalSymbolNamePrefix = "\uFFFE";
|
|
242
|
+
/**
|
|
243
|
+
* The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
|
|
244
|
+
* attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
|
|
245
|
+
*/
|
|
246
|
+
export declare function tryGetAmbientModuleNameFromSymbolName(name: string): string | undefined;
|
|
238
247
|
export declare const enum InternalSymbolName {
|
|
239
248
|
/** Call signatures. */
|
|
240
249
|
Call = "\uFFFEcall",
|
|
@@ -149,7 +149,7 @@ export class Symbol {
|
|
|
149
149
|
}
|
|
150
150
|
/** Whether this is the symbol of an external module, named by its quoted path. */
|
|
151
151
|
isExternalModule() {
|
|
152
|
-
return (this.flags & 1536 /* SymbolFlags.Module */) !== 0 && this.name
|
|
152
|
+
return (this.flags & 1536 /* SymbolFlags.Module */) !== 0 && tryGetAmbientModuleNameFromSymbolName(this.name) !== undefined;
|
|
153
153
|
}
|
|
154
154
|
/** The flags of this symbol and its export symbol. */
|
|
155
155
|
combinedLocalAndExportSymbolFlags() {
|
|
@@ -316,6 +316,20 @@ export function getMembers(symbol) {
|
|
|
316
316
|
* vanishingly unlikely in a string-literal property name.
|
|
317
317
|
*/
|
|
318
318
|
export const internalSymbolNamePrefix = '';
|
|
319
|
+
/**
|
|
320
|
+
* The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
|
|
321
|
+
* attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
|
|
322
|
+
*/
|
|
323
|
+
export function tryGetAmbientModuleNameFromSymbolName(name) {
|
|
324
|
+
if (name.length >= 2 && name.charCodeAt(0) === 0x22 && name.charCodeAt(name.length - 1) === 0x22)
|
|
325
|
+
return name.substring(1, name.length - 1);
|
|
326
|
+
if (!name.startsWith(internalSymbolNamePrefix + '"'))
|
|
327
|
+
return undefined;
|
|
328
|
+
const markerIndex = name.lastIndexOf('"pattern@');
|
|
329
|
+
if (markerIndex < internalSymbolNamePrefix.length + 2)
|
|
330
|
+
return undefined;
|
|
331
|
+
return name.substring(internalSymbolNamePrefix.length + 1, markerIndex);
|
|
332
|
+
}
|
|
319
333
|
/** `name` with a leading internal prefix replaced by `__`. */
|
|
320
334
|
export function escapeInternalSymbolName(name) {
|
|
321
335
|
return name.startsWith(internalSymbolNamePrefix) ? '__' + name.substring(1) : name;
|