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
|
@@ -20,6 +20,7 @@ import { getApparentTypeOfContextualType, getInferenceContext, popContextualType
|
|
|
20
20
|
import { addIntraExpressionInferenceSite } from './checker-inference.js';
|
|
21
21
|
import { isEmptyObjectType } from './checker-type-factory.js';
|
|
22
22
|
import { getTypeOfExpandoObjectLiteral, isJSObjectLiteral } from './checker-javascript.js';
|
|
23
|
+
import { checkNodeDeferred } from './checker-source-file.js';
|
|
23
24
|
import { copyDeclarations, declarationCount, getDeclarations, getSymbolId, internalSymbolNamePrefix, setDeclarations, } from './symbol.js';
|
|
24
25
|
/** Builds the type of the members collected since the last spread. */
|
|
25
26
|
class ObjectLiteralBuilder {
|
|
@@ -80,6 +81,8 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
80
81
|
const expandoType = getTypeOfExpandoObjectLiteral(c, node);
|
|
81
82
|
if (expandoType !== undefined)
|
|
82
83
|
return expandoType;
|
|
84
|
+
// Deprecated properties of the contextual type are reported once the file is checked.
|
|
85
|
+
checkNodeDeferred(c, node);
|
|
83
86
|
const inDestructuringPattern = isAssignmentTarget(node);
|
|
84
87
|
checkGrammarObjectLiteralOfExpression(c, node, inDestructuringPattern);
|
|
85
88
|
const allProperties = c.strictNullChecks ? new Map() : undefined;
|
|
@@ -92,40 +95,40 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
92
95
|
const contextualType = getApparentTypeOfContextualType(c, node);
|
|
93
96
|
const contextualPattern = contextualType !== undefined ? c.patternForType.get(contextualType) : undefined;
|
|
94
97
|
const contextualTypeHasPattern = contextualPattern !== undefined &&
|
|
95
|
-
(contextualPattern.kind ===
|
|
96
|
-
contextualPattern.kind ===
|
|
98
|
+
(contextualPattern.kind === 208 /* SyntaxKind.ObjectBindingPattern */ ||
|
|
99
|
+
contextualPattern.kind === 212 /* SyntaxKind.ObjectLiteralExpression */);
|
|
97
100
|
let spread = c.emptyObjectType;
|
|
98
101
|
const elements = getProperties(node).nodes;
|
|
99
102
|
// Computed names are checked up front: a spread may bail out before the member is reached.
|
|
100
103
|
for (const e of elements) {
|
|
101
104
|
const name = getName(e);
|
|
102
|
-
if (name !== undefined && name.kind ===
|
|
105
|
+
if (name !== undefined && name.kind === 169 /* SyntaxKind.ComputedPropertyName */)
|
|
103
106
|
checkComputedPropertyName(c, name);
|
|
104
107
|
}
|
|
105
108
|
for (const memberDecl of elements) {
|
|
106
109
|
let member = getSymbolOfDeclaration(c, memberDecl);
|
|
107
110
|
const name = getName(memberDecl);
|
|
108
|
-
const computedNameType = name !== undefined && name.kind ===
|
|
111
|
+
const computedNameType = name !== undefined && name.kind === 169 /* SyntaxKind.ComputedPropertyName */
|
|
109
112
|
? checkComputedPropertyName(c, name)
|
|
110
113
|
: undefined;
|
|
111
|
-
if (memberDecl.kind ===
|
|
112
|
-
memberDecl.kind ===
|
|
113
|
-
memberDecl.kind ===
|
|
114
|
+
if (memberDecl.kind === 304 /* SyntaxKind.PropertyAssignment */ ||
|
|
115
|
+
memberDecl.kind === 305 /* SyntaxKind.ShorthandPropertyAssignment */ ||
|
|
116
|
+
memberDecl.kind === 176 /* SyntaxKind.MethodDeclaration */) {
|
|
114
117
|
let t;
|
|
115
|
-
if (memberDecl.kind ===
|
|
118
|
+
if (memberDecl.kind === 304 /* SyntaxKind.PropertyAssignment */)
|
|
116
119
|
t = checkPropertyAssignment(c, memberDecl, checkMode);
|
|
117
|
-
else if (memberDecl.kind ===
|
|
120
|
+
else if (memberDecl.kind === 305 /* SyntaxKind.ShorthandPropertyAssignment */)
|
|
118
121
|
t = checkShorthandPropertyAssignment(c, memberDecl, inDestructuringPattern, checkMode);
|
|
119
122
|
else
|
|
120
123
|
t = getTypeOfObjectLiteralMethod(c, memberDecl, checkMode);
|
|
121
124
|
if ((checkMode & 2 /* CheckMode.Inferential */) !== 0 &&
|
|
122
125
|
(checkMode & 4 /* CheckMode.SkipContextSensitive */) === 0 &&
|
|
123
|
-
(memberDecl.kind ===
|
|
126
|
+
(memberDecl.kind === 304 /* SyntaxKind.PropertyAssignment */ || memberDecl.kind === 176 /* SyntaxKind.MethodDeclaration */) &&
|
|
124
127
|
isContextSensitive(c, memberDecl)) {
|
|
125
128
|
// Inferences flowing between context-sensitive members are made before fixing.
|
|
126
129
|
const inferenceContext = getInferenceContext(c, node);
|
|
127
130
|
if (inferenceContext !== undefined)
|
|
128
|
-
addIntraExpressionInferenceSite(inferenceContext, memberDecl.kind ===
|
|
131
|
+
addIntraExpressionInferenceSite(inferenceContext, memberDecl.kind === 304 /* SyntaxKind.PropertyAssignment */
|
|
129
132
|
? memberDecl.initializer
|
|
130
133
|
: memberDecl, t);
|
|
131
134
|
}
|
|
@@ -133,7 +136,7 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
133
136
|
continue;
|
|
134
137
|
builder.objectFlags |= t.objectFlags & 458752 /* ObjectFlags.PropagatingFlags */;
|
|
135
138
|
const nameType = computedNameType !== undefined && isTypeUsableAsPropertyName(computedNameType) ? computedNameType : undefined;
|
|
136
|
-
const prop = c.newSymbolWithCheckFlags(4 /* SymbolFlags.Property */ | member.flags, nameType !== undefined ? getPropertyNameFromType(nameType) : member.name, checkFlags | (nameType !== undefined ?
|
|
139
|
+
const prop = c.newSymbolWithCheckFlags(4 /* SymbolFlags.Property */ | member.flags, nameType !== undefined ? getPropertyNameFromType(nameType) : member.name, checkFlags | (nameType !== undefined ? 32768 /* CheckFlags.Late */ : 0));
|
|
137
140
|
const id = getSymbolId(prop);
|
|
138
141
|
if (nameType !== undefined)
|
|
139
142
|
c.symbolNameTypes.set(id, nameType);
|
|
@@ -147,7 +150,7 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
147
150
|
if (impliedProp !== undefined)
|
|
148
151
|
prop.flags |= impliedProp.flags & 16777216 /* SymbolFlags.Optional */;
|
|
149
152
|
else if (getIndexInfoOfType(c, contextualType, c.stringType) === undefined)
|
|
150
|
-
c.error(getName(memberDecl),
|
|
153
|
+
c.error(getName(memberDecl), 536 /* Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1 */, symbolToString(c, member), typeToString(c, contextualType));
|
|
151
154
|
}
|
|
152
155
|
copyDeclarations(prop, member);
|
|
153
156
|
prop.parent = member.parent;
|
|
@@ -158,7 +161,7 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
158
161
|
if (allProperties !== undefined)
|
|
159
162
|
allProperties.set(prop.name, prop);
|
|
160
163
|
}
|
|
161
|
-
else if (memberDecl.kind ===
|
|
164
|
+
else if (memberDecl.kind === 306 /* SyntaxKind.SpreadAssignment */) {
|
|
162
165
|
if (builder.properties.length > 0) {
|
|
163
166
|
spread = getSpreadType(c, spread, builder.createType(c), getSymbol(node), builder.objectFlags, inConstContext);
|
|
164
167
|
builder.reset();
|
|
@@ -174,7 +177,7 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
174
177
|
spread = getSpreadType(c, spread, mergedType, getSymbol(node), builder.objectFlags, inConstContext);
|
|
175
178
|
}
|
|
176
179
|
else {
|
|
177
|
-
c.error(memberDecl,
|
|
180
|
+
c.error(memberDecl, 837 /* Diagnostics.Spread_types_may_only_be_created_from_object_types */);
|
|
178
181
|
spread = c.errorType;
|
|
179
182
|
}
|
|
180
183
|
continue;
|
|
@@ -216,7 +219,7 @@ export function checkObjectLiteral(c, node, checkMode) {
|
|
|
216
219
|
return builder.createType(c);
|
|
217
220
|
}
|
|
218
221
|
export function checkPropertyAssignment(c, node, checkMode) {
|
|
219
|
-
if (node.name.kind ===
|
|
222
|
+
if (node.name.kind === 169 /* SyntaxKind.ComputedPropertyName */)
|
|
220
223
|
checkComputedPropertyName(c, node.name);
|
|
221
224
|
const initializerType = checkExpressionForMutableLocationEx(c, node.initializer, checkMode);
|
|
222
225
|
const typeNode = getType(node);
|
|
@@ -261,7 +264,7 @@ function isSymbolWithSymbolName(c, symbol) {
|
|
|
261
264
|
return true;
|
|
262
265
|
const name = getFirstDeclarationName(symbol);
|
|
263
266
|
return (name !== undefined &&
|
|
264
|
-
name.kind ===
|
|
267
|
+
name.kind === 169 /* SyntaxKind.ComputedPropertyName */ &&
|
|
265
268
|
isTypeAssignableToKindEx(c, checkComputedPropertyName(c, name), 512 /* TypeFlags.ESSymbol */, false));
|
|
266
269
|
}
|
|
267
270
|
function isSymbolWithNumericName(c, symbol) {
|
|
@@ -271,7 +274,7 @@ function isSymbolWithNumericName(c, symbol) {
|
|
|
271
274
|
if (name === undefined)
|
|
272
275
|
return false;
|
|
273
276
|
switch (name.kind) {
|
|
274
|
-
case
|
|
277
|
+
case 169 /* SyntaxKind.ComputedPropertyName */:
|
|
275
278
|
return isTypeAssignableToKindEx(c, checkComputedPropertyName(c, name), 67648 /* TypeFlags.NumberLike */, false);
|
|
276
279
|
case 79 /* SyntaxKind.Identifier */:
|
|
277
280
|
case 8 /* SyntaxKind.NumericLiteral */:
|
|
@@ -282,7 +285,7 @@ function isSymbolWithNumericName(c, symbol) {
|
|
|
282
285
|
}
|
|
283
286
|
function isSymbolWithComputedName(symbol) {
|
|
284
287
|
const name = getFirstDeclarationName(symbol);
|
|
285
|
-
return name !== undefined && name.kind ===
|
|
288
|
+
return name !== undefined && name.kind === 169 /* SyntaxKind.ComputedPropertyName */;
|
|
286
289
|
}
|
|
287
290
|
/** Reports earlier properties that a spread always overwrites. */
|
|
288
291
|
export function checkSpreadPropOverrides(c, t, props, spread) {
|
|
@@ -292,8 +295,8 @@ export function checkSpreadPropOverrides(c, t, props, spread) {
|
|
|
292
295
|
const left = props.get(right.name);
|
|
293
296
|
if (left === undefined)
|
|
294
297
|
continue;
|
|
295
|
-
const diagnostic = c.error(left.valueDeclaration,
|
|
296
|
-
diagnostic.addRelatedInfo(createDiagnosticForNode(spread,
|
|
298
|
+
const diagnostic = c.error(left.valueDeclaration, 922 /* Diagnostics.X_0_is_specified_more_than_once_so_this_usage_will_be_overwritten */, left.name);
|
|
299
|
+
diagnostic.addRelatedInfo(createDiagnosticForNode(spread, 924 /* Diagnostics.This_spread_always_overwrites_this_property */, []));
|
|
297
300
|
}
|
|
298
301
|
}
|
|
299
302
|
// ---- Spread types
|
|
@@ -468,7 +471,7 @@ function tryMergeUnionOfObjectTypeAndEmptyObject(c, t, readonly) {
|
|
|
468
471
|
if (!isSpreadableProperty(prop))
|
|
469
472
|
continue;
|
|
470
473
|
const isSetonlyAccessor = (prop.flags & 65536 /* SymbolFlags.SetAccessor */) !== 0 && (prop.flags & 32768 /* SymbolFlags.GetAccessor */) === 0;
|
|
471
|
-
const result = c.newSymbolWithCheckFlags(4 /* SymbolFlags.Property */ | 16777216 /* SymbolFlags.Optional */, prop.name, (prop.checkFlags &
|
|
474
|
+
const result = c.newSymbolWithCheckFlags(4 /* SymbolFlags.Property */ | 16777216 /* SymbolFlags.Optional */, prop.name, (prop.checkFlags & 32768 /* CheckFlags.Late */) | (readonly ? 8 /* CheckFlags.Readonly */ : 0));
|
|
472
475
|
const id = getSymbolId(result);
|
|
473
476
|
c.symbolTypes.set(id, isSetonlyAccessor ? c.undefinedType : addOptionality(c, getTypeOfSymbol(c, prop), true, true));
|
|
474
477
|
copyDeclarations(result, prop);
|