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.
Files changed (379) hide show
  1. package/README.md +1 -1
  2. package/bin/tsc-ts.js +70 -1
  3. package/dist/api/compiler/ast-utilities.d.ts +19 -1
  4. package/dist/api/compiler/ast-utilities.js +180 -95
  5. package/dist/api/compiler/ast.d.ts +29 -18
  6. package/dist/api/compiler/ast.js +1040 -1007
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +136 -91
  14. package/dist/api/compiler/checker-contextual.d.ts +20 -0
  15. package/dist/api/compiler/checker-contextual.js +175 -62
  16. package/dist/api/compiler/checker-declaration-order.js +79 -79
  17. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  18. package/dist/api/compiler/checker-declarations.js +160 -136
  19. package/dist/api/compiler/checker-declared-types.js +67 -65
  20. package/dist/api/compiler/checker-decorators.js +77 -77
  21. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  22. package/dist/api/compiler/checker-deprecation.js +76 -55
  23. package/dist/api/compiler/checker-destructuring.js +47 -45
  24. package/dist/api/compiler/checker-elaboration.js +24 -24
  25. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  26. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  27. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  28. package/dist/api/compiler/checker-evaluator.js +9 -9
  29. package/dist/api/compiler/checker-expressions.js +258 -212
  30. package/dist/api/compiler/checker-functions.js +113 -107
  31. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  32. package/dist/api/compiler/checker-generated-code.js +28 -52
  33. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  34. package/dist/api/compiler/checker-grammar.js +469 -438
  35. package/dist/api/compiler/checker-heritage.js +91 -93
  36. package/dist/api/compiler/checker-inference.d.ts +77 -5
  37. package/dist/api/compiler/checker-inference.js +487 -113
  38. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  39. package/dist/api/compiler/checker-iteration.js +35 -52
  40. package/dist/api/compiler/checker-javascript.js +14 -14
  41. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  42. package/dist/api/compiler/checker-jsdoc.js +67 -58
  43. package/dist/api/compiler/checker-jsx.js +107 -89
  44. package/dist/api/compiler/checker-members.d.ts +9 -2
  45. package/dist/api/compiler/checker-members.js +210 -74
  46. package/dist/api/compiler/checker-modules.d.ts +15 -6
  47. package/dist/api/compiler/checker-modules.js +469 -309
  48. package/dist/api/compiler/checker-narrowing.js +273 -189
  49. package/dist/api/compiler/checker-object-literals.js +25 -22
  50. package/dist/api/compiler/checker-operators.js +126 -118
  51. package/dist/api/compiler/checker-overloads.js +27 -27
  52. package/dist/api/compiler/checker-property-access.js +59 -55
  53. package/dist/api/compiler/checker-services.d.ts +1 -0
  54. package/dist/api/compiler/checker-services.js +222 -210
  55. package/dist/api/compiler/checker-signatures.js +65 -49
  56. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  57. package/dist/api/compiler/checker-source-file.js +154 -130
  58. package/dist/api/compiler/checker-statements.js +33 -32
  59. package/dist/api/compiler/checker-super.js +50 -50
  60. package/dist/api/compiler/checker-symbol-types.js +109 -93
  61. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  62. package/dist/api/compiler/checker-symbols.js +264 -149
  63. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  64. package/dist/api/compiler/checker-type-factory.js +190 -46
  65. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  66. package/dist/api/compiler/checker-type-nodes.js +179 -141
  67. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  68. package/dist/api/compiler/checker-type-operators.js +110 -63
  69. package/dist/api/compiler/checker-types.d.ts +80 -3
  70. package/dist/api/compiler/checker-types.js +121 -2
  71. package/dist/api/compiler/checker-unused.js +114 -118
  72. package/dist/api/compiler/checker-utilities.js +11 -11
  73. package/dist/api/compiler/checker.d.ts +97 -31
  74. package/dist/api/compiler/checker.js +149 -35
  75. package/dist/api/compiler/command-line.d.ts +1 -3
  76. package/dist/api/compiler/command-line.js +47 -44
  77. package/dist/api/compiler/compile-program.d.ts +24 -4
  78. package/dist/api/compiler/compile-program.js +53 -26
  79. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  80. package/dist/api/compiler/diagnostic-messages.js +128 -122
  81. package/dist/api/compiler/diagnostics.js +7 -7
  82. package/dist/api/compiler/emitter.d.ts +7 -1
  83. package/dist/api/compiler/emitter.js +53 -11
  84. package/dist/api/compiler/expr-record.d.ts +11 -0
  85. package/dist/api/compiler/expr-record.js +53 -0
  86. package/dist/api/compiler/file-include.d.ts +2 -1
  87. package/dist/api/compiler/file-include.js +11 -7
  88. package/dist/api/compiler/file-loader.d.ts +10 -0
  89. package/dist/api/compiler/file-loader.js +138 -41
  90. package/dist/api/compiler/identifier-name.d.ts +9 -0
  91. package/dist/api/compiler/identifier-name.js +10 -0
  92. package/dist/api/compiler/instantiation.d.ts +7 -0
  93. package/dist/api/compiler/instantiation.js +101 -49
  94. package/dist/api/compiler/jsdoc.js +27 -25
  95. package/dist/api/compiler/link-tables.d.ts +48 -18
  96. package/dist/api/compiler/link-tables.js +80 -37
  97. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  98. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  99. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  100. package/dist/api/compiler/locales/de-DE.js +1 -1
  101. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  102. package/dist/api/compiler/locales/es-ES.js +1 -1
  103. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  104. package/dist/api/compiler/locales/fr-FR.js +1 -1
  105. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  106. package/dist/api/compiler/locales/it-IT.js +1 -1
  107. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  108. package/dist/api/compiler/locales/ja-JP.js +1 -1
  109. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  110. package/dist/api/compiler/locales/ko-KR.js +1 -1
  111. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  112. package/dist/api/compiler/locales/pl-PL.js +1 -1
  113. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  114. package/dist/api/compiler/locales/pt-BR.js +1 -1
  115. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  116. package/dist/api/compiler/locales/ru-RU.js +1 -1
  117. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  118. package/dist/api/compiler/locales/tr-TR.js +1 -1
  119. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  120. package/dist/api/compiler/locales/zh-CN.js +1 -1
  121. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  122. package/dist/api/compiler/locales/zh-TW.js +1 -1
  123. package/dist/api/compiler/module-resolution-types.js +6 -6
  124. package/dist/api/compiler/module-resolution.d.ts +10 -1
  125. package/dist/api/compiler/module-resolution.js +115 -84
  126. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  127. package/dist/api/compiler/module-specifiers.js +24 -18
  128. package/dist/api/compiler/name-resolver.js +74 -65
  129. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  130. package/dist/api/compiler/node-builder-names.js +210 -90
  131. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  132. package/dist/api/compiler/node-builder-reuse.js +23 -22
  133. package/dist/api/compiler/node-builder.d.ts +18 -1
  134. package/dist/api/compiler/node-builder.js +191 -102
  135. package/dist/api/compiler/option-declarations.d.ts +2 -6
  136. package/dist/api/compiler/option-declarations.js +315 -375
  137. package/dist/api/compiler/options.d.ts +15 -33
  138. package/dist/api/compiler/options.js +21 -54
  139. package/dist/api/compiler/output-paths.d.ts +4 -1
  140. package/dist/api/compiler/output-paths.js +6 -11
  141. package/dist/api/compiler/package-json.d.ts +3 -3
  142. package/dist/api/compiler/package-json.js +11 -10
  143. package/dist/api/compiler/parser.d.ts +42 -20
  144. package/dist/api/compiler/parser.js +318 -224
  145. package/dist/api/compiler/path.d.ts +9 -0
  146. package/dist/api/compiler/path.js +20 -3
  147. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  148. package/dist/api/compiler/printer/emit-context.js +16 -1
  149. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  150. package/dist/api/compiler/printer/factory-base.js +7 -3
  151. package/dist/api/compiler/printer/factory.js +6 -3
  152. package/dist/api/compiler/printer/helpers.js +10 -1
  153. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  154. package/dist/api/compiler/printer/name-generator.js +35 -16
  155. package/dist/api/compiler/printer/printer.d.ts +1 -0
  156. package/dist/api/compiler/printer/printer.js +306 -283
  157. package/dist/api/compiler/printer/utilities.js +149 -147
  158. package/dist/api/compiler/program-checker.d.ts +8 -2
  159. package/dist/api/compiler/program-checker.js +84 -34
  160. package/dist/api/compiler/program-utilities.d.ts +3 -1
  161. package/dist/api/compiler/program-utilities.js +28 -15
  162. package/dist/api/compiler/program.d.ts +2 -0
  163. package/dist/api/compiler/program.js +69 -57
  164. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  165. package/dist/api/compiler/pseudo-bigint.js +18 -0
  166. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  167. package/dist/api/compiler/regexp-checker.js +93 -76
  168. package/dist/api/compiler/relations.d.ts +27 -4
  169. package/dist/api/compiler/relations.js +337 -180
  170. package/dist/api/compiler/reparser.js +64 -59
  171. package/dist/api/compiler/scanner.d.ts +27 -2
  172. package/dist/api/compiler/scanner.js +181 -150
  173. package/dist/api/compiler/shared-results.d.ts +696 -0
  174. package/dist/api/compiler/shared-results.js +2905 -0
  175. package/dist/api/compiler/sourcemap.js +2 -2
  176. package/dist/api/compiler/symbol-accessibility.js +87 -74
  177. package/dist/api/compiler/symbol.d.ts +22 -13
  178. package/dist/api/compiler/symbol.js +15 -1
  179. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  180. package/dist/api/compiler/transformers/alias-references.js +247 -139
  181. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  182. package/dist/api/compiler/transformers/async.d.ts +0 -1
  183. package/dist/api/compiler/transformers/async.js +64 -77
  184. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  185. package/dist/api/compiler/transformers/class-fields.js +81 -78
  186. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  187. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  188. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  189. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  190. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  191. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  192. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  193. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  194. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  195. package/dist/api/compiler/transformers/declarations.js +307 -239
  196. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  197. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  198. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  199. package/dist/api/compiler/transformers/destructuring.js +19 -18
  200. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  201. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  202. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  203. package/dist/api/compiler/transformers/for-await.js +25 -25
  204. package/dist/api/compiler/transformers/import-elision.js +14 -14
  205. package/dist/api/compiler/transformers/jsx.js +12 -12
  206. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  207. package/dist/api/compiler/transformers/module.js +8 -8
  208. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  209. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  210. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  211. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  212. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  213. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  214. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  215. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  216. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  217. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  218. package/dist/api/compiler/transformers/using.js +12 -12
  219. package/dist/api/compiler/transformers/utilities.js +77 -77
  220. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  221. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  222. package/dist/api/compiler/tsconfig.d.ts +10 -2
  223. package/dist/api/compiler/tsconfig.js +136 -48
  224. package/dist/api/compiler/type-printer.js +40 -3
  225. package/dist/api/compiler/types.d.ts +2 -1
  226. package/dist/api/library/ast.generated.d.ts +42 -39
  227. package/dist/api/library/ast.generated.js +1 -1
  228. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  229. package/dist/api/library/compiler-options.generated.js +1 -1
  230. package/dist/api/library/disk.js +12 -1
  231. package/dist/api/library/enums.generated.d.ts +206 -206
  232. package/dist/api/library/enums.generated.js +206 -206
  233. package/dist/api/library/nodes.js +26 -26
  234. package/package.json +9 -9
  235. package/src/compiler/ast-utilities.ts +99 -7
  236. package/src/compiler/ast.ts +74 -38
  237. package/src/compiler/binder.ts +39 -4
  238. package/src/compiler/cgroup.ts +157 -0
  239. package/src/compiler/character-codes.ts +2 -2
  240. package/src/compiler/checker-calls.ts +76 -8
  241. package/src/compiler/checker-classes.ts +80 -25
  242. package/src/compiler/checker-contextual.ts +110 -1
  243. package/src/compiler/checker-declarations.ts +31 -4
  244. package/src/compiler/checker-declared-types.ts +8 -5
  245. package/src/compiler/checker-decorators.ts +1 -1
  246. package/src/compiler/checker-deprecation.ts +29 -8
  247. package/src/compiler/checker-destructuring.ts +10 -3
  248. package/src/compiler/checker-emit-helpers.ts +1 -0
  249. package/src/compiler/checker-emit-resolver.ts +16 -6
  250. package/src/compiler/checker-expressions.ts +95 -47
  251. package/src/compiler/checker-functions.ts +21 -6
  252. package/src/compiler/checker-generated-code.ts +2 -22
  253. package/src/compiler/checker-grammar.ts +133 -60
  254. package/src/compiler/checker-heritage.ts +22 -21
  255. package/src/compiler/checker-inference.ts +514 -87
  256. package/src/compiler/checker-iteration.ts +18 -31
  257. package/src/compiler/checker-javascript.ts +1 -1
  258. package/src/compiler/checker-jsdoc.ts +50 -27
  259. package/src/compiler/checker-jsx.ts +28 -5
  260. package/src/compiler/checker-members.ts +197 -55
  261. package/src/compiler/checker-modules.ts +332 -65
  262. package/src/compiler/checker-narrowing.ts +98 -19
  263. package/src/compiler/checker-object-literals.ts +3 -0
  264. package/src/compiler/checker-operators.ts +11 -4
  265. package/src/compiler/checker-property-access.ts +7 -2
  266. package/src/compiler/checker-services.ts +39 -12
  267. package/src/compiler/checker-signatures.ts +15 -1
  268. package/src/compiler/checker-source-file.ts +39 -13
  269. package/src/compiler/checker-statements.ts +3 -2
  270. package/src/compiler/checker-symbol-types.ts +29 -6
  271. package/src/compiler/checker-symbols.ts +158 -15
  272. package/src/compiler/checker-type-factory.ts +173 -35
  273. package/src/compiler/checker-type-nodes.ts +46 -3
  274. package/src/compiler/checker-type-operators.ts +83 -26
  275. package/src/compiler/checker-types.ts +147 -4
  276. package/src/compiler/checker-unused.ts +9 -14
  277. package/src/compiler/checker.ts +175 -41
  278. package/src/compiler/command-line.ts +28 -28
  279. package/src/compiler/compile-program.ts +59 -25
  280. package/src/compiler/decoder.ts +15 -5
  281. package/src/compiler/diagnostic-messages.ts +1973 -1892
  282. package/src/compiler/doctor-report.ts +133 -0
  283. package/src/compiler/emitter.ts +57 -8
  284. package/src/compiler/encoder.ts +23 -8
  285. package/src/compiler/expr-record.ts +59 -0
  286. package/src/compiler/file-include.ts +9 -3
  287. package/src/compiler/file-loader.ts +139 -32
  288. package/src/compiler/help.ts +10 -14
  289. package/src/compiler/identifier-name.ts +13 -0
  290. package/src/compiler/incremental.ts +86 -18
  291. package/src/compiler/init.ts +2 -7
  292. package/src/compiler/instantiation.ts +77 -22
  293. package/src/compiler/jsdoc.ts +7 -3
  294. package/src/compiler/link-tables.ts +82 -37
  295. package/src/compiler/locales/cs-CZ.ts +1 -1
  296. package/src/compiler/locales/de-DE.ts +1 -1
  297. package/src/compiler/locales/es-ES.ts +1 -1
  298. package/src/compiler/locales/fr-FR.ts +1 -1
  299. package/src/compiler/locales/it-IT.ts +1 -1
  300. package/src/compiler/locales/ja-JP.ts +1 -1
  301. package/src/compiler/locales/ko-KR.ts +1 -1
  302. package/src/compiler/locales/pl-PL.ts +1 -1
  303. package/src/compiler/locales/pt-BR.ts +1 -1
  304. package/src/compiler/locales/ru-RU.ts +1 -1
  305. package/src/compiler/locales/tr-TR.ts +1 -1
  306. package/src/compiler/locales/zh-CN.ts +1 -1
  307. package/src/compiler/locales/zh-TW.ts +1 -1
  308. package/src/compiler/module-resolution.ts +44 -8
  309. package/src/compiler/module-specifiers.ts +62 -20
  310. package/src/compiler/name-resolver.ts +9 -1
  311. package/src/compiler/node-builder-names.ts +236 -54
  312. package/src/compiler/node-builder-pseudo.ts +4 -7
  313. package/src/compiler/node-builder-reuse.ts +5 -4
  314. package/src/compiler/node-builder.ts +130 -31
  315. package/src/compiler/option-declarations.ts +33 -103
  316. package/src/compiler/options.ts +23 -62
  317. package/src/compiler/output-paths.ts +5 -18
  318. package/src/compiler/package-entrypoints.ts +345 -0
  319. package/src/compiler/package-json.ts +4 -4
  320. package/src/compiler/parallel-check.ts +543 -147
  321. package/src/compiler/parallel-emit.ts +4 -4
  322. package/src/compiler/parser.ts +166 -47
  323. package/src/compiler/path.ts +22 -2
  324. package/src/compiler/printer/emit-context.ts +16 -0
  325. package/src/compiler/printer/factory-base.ts +10 -3
  326. package/src/compiler/printer/factory.ts +7 -3
  327. package/src/compiler/printer/helpers.ts +10 -1
  328. package/src/compiler/printer/name-generator.ts +24 -2
  329. package/src/compiler/printer/printer.ts +39 -16
  330. package/src/compiler/printer/utilities.ts +8 -2
  331. package/src/compiler/program-checker.ts +53 -5
  332. package/src/compiler/program-utilities.ts +23 -10
  333. package/src/compiler/program.ts +13 -1
  334. package/src/compiler/pseudo-bigint.ts +17 -0
  335. package/src/compiler/regexp-checker.ts +63 -30
  336. package/src/compiler/relations.ts +233 -77
  337. package/src/compiler/reparser.ts +14 -5
  338. package/src/compiler/run-config.ts +1383 -0
  339. package/src/compiler/run-record-read.ts +87 -0
  340. package/src/compiler/run-records.ts +575 -0
  341. package/src/compiler/scanner.ts +166 -120
  342. package/src/compiler/shared-results.ts +3144 -0
  343. package/src/compiler/show-config.ts +18 -1
  344. package/src/compiler/sourcemap.ts +2 -2
  345. package/src/compiler/symbol-accessibility.ts +26 -3
  346. package/src/compiler/symbol.ts +31 -14
  347. package/src/compiler/syntax-kind.ts +188 -187
  348. package/src/compiler/thread-entry.ts +22 -3
  349. package/src/compiler/transformers/alias-references.ts +123 -4
  350. package/src/compiler/transformers/async.ts +2 -17
  351. package/src/compiler/transformers/class-fields.ts +13 -12
  352. package/src/compiler/transformers/commonjs-module.ts +11 -7
  353. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  354. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  355. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  356. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  357. package/src/compiler/transformers/declarations.ts +136 -49
  358. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  359. package/src/compiler/transformers/destructuring.ts +4 -3
  360. package/src/compiler/transformers/external-module-info.ts +1 -1
  361. package/src/compiler/transformers/jsx.ts +2 -1
  362. package/src/compiler/transformers/reference-resolver.ts +83 -19
  363. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  364. package/src/compiler/transformers/syntax-facts.ts +2 -7
  365. package/src/compiler/transformers/type-eraser.ts +10 -1
  366. package/src/compiler/transformers/type-serialization.ts +3 -2
  367. package/src/compiler/transformers/visitor-base.ts +2 -1
  368. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  369. package/src/compiler/tsc-build.ts +67 -6
  370. package/src/compiler/tsc-cli.ts +35 -4
  371. package/src/compiler/tsc-compile.ts +220 -10
  372. package/src/compiler/tsc-watch.ts +97 -47
  373. package/src/compiler/tsconfig.ts +176 -19
  374. package/src/compiler/type-printer.ts +36 -2
  375. package/src/compiler/types.ts +2 -1
  376. package/src/library/ast.generated.ts +57 -41
  377. package/src/library/compiler-options.generated.ts +117 -103
  378. package/src/library/disk.ts +10 -1
  379. package/src/library/enums.generated.ts +196 -196
@@ -1,6 +1,6 @@
1
1
  // Contextual typing: the type an expression's position implies, and contextual signatures.
2
2
  import { resolvedReturnTypeOf } from './side-state.js';
3
- import { getInitializer, getName, getParameters, getType, getText, getSymbol, getTypeParameters, JsxAttribute, JsxElement, } from './ast.js';
3
+ import { getArguments, getInitializer, getName, getParameters, getType, getText, getSymbol, getTypeParameters, JsxAttribute, JsxElement, } from './ast.js';
4
4
  import { getImmediatelyInvokedFunctionExpression, isFunctionExpressionOrArrowFunction, isObjectLiteralMethod, isStatic, } from './binder-utilities.js';
5
5
  import { filterType, getIntersectionType, getNumberLiteralType, getRegularTypeOfLiteralType, getUnionType, getUnionTypeEx, getWidenedLiteralType, getEndElementCount, getStringLiteralType, getTypeArguments, getTypeReferenceArity, mapType, mapTypeEx, isTupleType, tupleTargetOf, typesOf, } from './checker-type-factory.js';
6
6
  import { combineUnionOrIntersectionMemberSignatures, compareTypeParametersIdentical, findApplicableIndexInfo, getApparentType, getBaseConstraintOrType, getIndexInfosOfStructuredType, getPropertiesOfType, getPropertyOfType, getReducedType, getSignaturesOfType, } from './checker-members.js';
@@ -68,6 +68,116 @@ export function findContextualNode(c, node, includeCaches) {
68
68
  return i;
69
69
  return -1;
70
70
  }
71
+ /**
72
+ * The id of the contextual type in force for `node`, or -1 if the node's contextual type is not on
73
+ * the stack. A key built from -1 can't tell a check under a contextual type that was not pushed from
74
+ * a check with no contextual type, so callers record nothing under -1.
75
+ */
76
+ export function getContextualTypeId(c, node) {
77
+ const index = findContextualNode(c, node, true);
78
+ if (index < 0)
79
+ return -1;
80
+ const t = c.inferenceCaches.contextualTypes[index];
81
+ return t === undefined ? -1 : t.id;
82
+ }
83
+ /**
84
+ * Whether a check of `node` has no contextual type and no inference context, so its type is a
85
+ * function of the node and the check mode alone: the node is not on the contextual stack, no
86
+ * inference context contains it, and its parent gives it no contextual type. The parents answered
87
+ * here are the ones `getContextualTypeEx` returns `undefined` for without computing anything; a
88
+ * parent it computes a type for is not answered, so the result is never "yes" for a check that
89
+ * could have a contextual type.
90
+ *
91
+ * Types computed inside a flow loop are provisional (the checker does not cache them either), so a
92
+ * check in a loop is not context-free. The same holds while a reduce label is in force, as when
93
+ * flow analysis revisits a `finally` block with the antecedents of one outgoing path: the flow
94
+ * state differs from the one the earlier check of the block saw.
95
+ */
96
+ export function isCheckedWithoutContextualType(c, node) {
97
+ if (c.flowLoopStack.length !== 0)
98
+ return false;
99
+ if (c.flowReduceLabels.length !== 0)
100
+ return false;
101
+ if (findContextualNode(c, node, true) >= 0)
102
+ return false;
103
+ if (getInferenceContext(c, node) !== undefined)
104
+ return false;
105
+ const parent = node.parent;
106
+ if (parent === undefined)
107
+ return true;
108
+ switch (parent.kind) {
109
+ case 262 /* SyntaxKind.VariableDeclaration */:
110
+ case 171 /* SyntaxKind.Parameter */:
111
+ case 174 /* SyntaxKind.PropertyDeclaration */:
112
+ case 173 /* SyntaxKind.PropertySignature */:
113
+ case 210 /* SyntaxKind.BindingElement */:
114
+ // Only the initializer is contextually typed by the declaration.
115
+ return getInitializer(parent) !== node;
116
+ case 215 /* SyntaxKind.CallExpression */:
117
+ case 216 /* SyntaxKind.NewExpression */: {
118
+ // Only the arguments are contextually typed by the parameters; the callee is not.
119
+ const args = getArguments(parent);
120
+ if (args !== undefined) {
121
+ for (const arg of args.nodes)
122
+ if (arg === node)
123
+ return false;
124
+ }
125
+ return true;
126
+ }
127
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
128
+ // Only a method takes the property's contextual type.
129
+ return node.kind !== 176 /* SyntaxKind.MethodDeclaration */;
130
+ case 228 /* SyntaxKind.BinaryExpression */: {
131
+ const binary = parent;
132
+ if (binary.type !== undefined)
133
+ return false;
134
+ switch (binary.operatorToken.kind) {
135
+ case 63 /* SyntaxKind.EqualsToken */:
136
+ case 76 /* SyntaxKind.AmpersandAmpersandEqualsToken */:
137
+ case 75 /* SyntaxKind.BarBarEqualsToken */:
138
+ case 77 /* SyntaxKind.QuestionQuestionEqualsToken */:
139
+ return node !== binary.right;
140
+ case 56 /* SyntaxKind.BarBarToken */:
141
+ case 60 /* SyntaxKind.QuestionQuestionToken */:
142
+ case 55 /* SyntaxKind.AmpersandAmpersandToken */:
143
+ case 27 /* SyntaxKind.CommaToken */:
144
+ return false;
145
+ }
146
+ return true;
147
+ }
148
+ case 229 /* SyntaxKind.ConditionalExpression */: {
149
+ const conditional = parent;
150
+ return node !== conditional.whenTrue && node !== conditional.whenFalse;
151
+ }
152
+ case 241 /* SyntaxKind.TemplateSpan */: {
153
+ // Only a tagged template types its spans.
154
+ const template = parent.parent;
155
+ return template.parent === undefined || template.parent.kind !== 217 /* SyntaxKind.TaggedTemplateExpression */;
156
+ }
157
+ case 221 /* SyntaxKind.ArrowFunction */:
158
+ case 255 /* SyntaxKind.ReturnStatement */:
159
+ case 231 /* SyntaxKind.YieldExpression */:
160
+ case 225 /* SyntaxKind.AwaitExpression */:
161
+ case 172 /* SyntaxKind.Decorator */:
162
+ case 236 /* SyntaxKind.AsExpression */:
163
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
164
+ case 240 /* SyntaxKind.SatisfiesExpression */:
165
+ case 279 /* SyntaxKind.ExportAssignment */:
166
+ case 304 /* SyntaxKind.PropertyAssignment */:
167
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
168
+ case 306 /* SyntaxKind.SpreadAssignment */:
169
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
170
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
171
+ case 237 /* SyntaxKind.NonNullExpression */:
172
+ case 296 /* SyntaxKind.JsxExpression */:
173
+ case 293 /* SyntaxKind.JsxAttribute */:
174
+ case 295 /* SyntaxKind.JsxSpreadAttribute */:
175
+ case 288 /* SyntaxKind.JsxOpeningElement */:
176
+ case 287 /* SyntaxKind.JsxSelfClosingElement */:
177
+ return false;
178
+ }
179
+ return true;
180
+ }
71
181
  export function pushInferenceContext(c, node, context) {
72
182
  const caches = c.inferenceCaches;
73
183
  const depth = caches.inferenceDepth;
@@ -98,7 +208,7 @@ export function getInferenceContext(c, node) {
98
208
  }
99
209
  /** The node a contextual type for `node` is pushed onto: an element for its attributes, which spans its children. */
100
210
  function getContextNode(node) {
101
- if (node.kind === 293 /* SyntaxKind.JsxAttributes */ && node.parent.kind !== 286 /* SyntaxKind.JsxSelfClosingElement */)
211
+ if (node.kind === 294 /* SyntaxKind.JsxAttributes */ && node.parent.kind !== 287 /* SyntaxKind.JsxSelfClosingElement */)
102
212
  return node.parent.parent;
103
213
  return node;
104
214
  }
@@ -175,56 +285,56 @@ export function getContextualTypeEx(c, node, contextFlags) {
175
285
  if (parent === undefined)
176
286
  return undefined;
177
287
  switch (parent.kind) {
178
- case 261 /* SyntaxKind.VariableDeclaration */:
179
- case 170 /* SyntaxKind.Parameter */:
180
- case 173 /* SyntaxKind.PropertyDeclaration */:
181
- case 172 /* SyntaxKind.PropertySignature */:
182
- case 209 /* SyntaxKind.BindingElement */:
288
+ case 262 /* SyntaxKind.VariableDeclaration */:
289
+ case 171 /* SyntaxKind.Parameter */:
290
+ case 174 /* SyntaxKind.PropertyDeclaration */:
291
+ case 173 /* SyntaxKind.PropertySignature */:
292
+ case 210 /* SyntaxKind.BindingElement */:
183
293
  if (getInitializer(parent) !== node)
184
294
  return undefined;
185
295
  return getContextualTypeForInitializerExpression(c, parent, contextFlags);
186
- case 220 /* SyntaxKind.ArrowFunction */:
187
- case 254 /* SyntaxKind.ReturnStatement */:
296
+ case 221 /* SyntaxKind.ArrowFunction */:
297
+ case 255 /* SyntaxKind.ReturnStatement */:
188
298
  return getContextualTypeForReturnExpression(c, node);
189
- case 230 /* SyntaxKind.YieldExpression */:
299
+ case 231 /* SyntaxKind.YieldExpression */:
190
300
  return getContextualTypeForYieldOperand(c, parent, contextFlags);
191
- case 224 /* SyntaxKind.AwaitExpression */:
301
+ case 225 /* SyntaxKind.AwaitExpression */:
192
302
  return getContextualTypeForAwaitOperand(c, parent, contextFlags);
193
- case 214 /* SyntaxKind.CallExpression */:
194
- case 215 /* SyntaxKind.NewExpression */:
303
+ case 215 /* SyntaxKind.CallExpression */:
304
+ case 216 /* SyntaxKind.NewExpression */:
195
305
  return getContextualTypeForArgument(c, parent, node);
196
- case 171 /* SyntaxKind.Decorator */: {
306
+ case 172 /* SyntaxKind.Decorator */: {
197
307
  // A decorator expression is contextually typed by the call the runtime makes.
198
308
  const signature = getDecoratorCallSignature(c, parent);
199
309
  return signature !== undefined ? getOrCreateTypeFromSignature(c, signature) : undefined;
200
310
  }
201
- case 235 /* SyntaxKind.AsExpression */:
202
- case 217 /* SyntaxKind.TypeAssertionExpression */: {
311
+ case 236 /* SyntaxKind.AsExpression */:
312
+ case 218 /* SyntaxKind.TypeAssertionExpression */: {
203
313
  const typeNode = getType(parent);
204
314
  return isConstTypeReference(typeNode)
205
315
  ? getContextualTypeEx(c, parent, contextFlags)
206
316
  : getTypeFromTypeNode(c, typeNode);
207
317
  }
208
- case 239 /* SyntaxKind.SatisfiesExpression */:
318
+ case 240 /* SyntaxKind.SatisfiesExpression */:
209
319
  return getTypeFromTypeNode(c, getType(parent));
210
- case 278 /* SyntaxKind.ExportAssignment */: {
320
+ case 279 /* SyntaxKind.ExportAssignment */: {
211
321
  // A JSDoc `@type` on `export default`.
212
322
  const typeNode = getType(parent);
213
323
  return typeNode !== undefined ? getTypeFromTypeNode(c, typeNode) : undefined;
214
324
  }
215
- case 227 /* SyntaxKind.BinaryExpression */:
325
+ case 228 /* SyntaxKind.BinaryExpression */:
216
326
  return getContextualTypeForBinaryOperand(c, parent, node, contextFlags);
217
- case 303 /* SyntaxKind.PropertyAssignment */:
218
- case 304 /* SyntaxKind.ShorthandPropertyAssignment */:
327
+ case 304 /* SyntaxKind.PropertyAssignment */:
328
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
219
329
  // The property's name gets the property's contextual type too.
220
330
  return getContextualTypeForObjectLiteralElement(c, parent, contextFlags);
221
- case 211 /* SyntaxKind.ObjectLiteralExpression */:
222
- return node.kind === 175 /* SyntaxKind.MethodDeclaration */
331
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
332
+ return node.kind === 176 /* SyntaxKind.MethodDeclaration */
223
333
  ? getContextualTypeForObjectLiteralElement(c, node, contextFlags)
224
334
  : undefined;
225
- case 305 /* SyntaxKind.SpreadAssignment */:
335
+ case 306 /* SyntaxKind.SpreadAssignment */:
226
336
  return getContextualTypeEx(c, parent.parent, contextFlags);
227
- case 210 /* SyntaxKind.ArrayLiteralExpression */: {
337
+ case 211 /* SyntaxKind.ArrayLiteralExpression */: {
228
338
  const elements = parent.elements.nodes;
229
339
  const index = indexOfNode(elements, node);
230
340
  if (index < 0)
@@ -232,28 +342,28 @@ export function getContextualTypeEx(c, node, contextFlags) {
232
342
  const spreads = getSpreadIndices(c, parent, elements);
233
343
  return getContextualTypeForElementExpression(c, getApparentTypeOfContextualTypeEx(c, parent, contextFlags), index, elements.length, spreads.first, spreads.last);
234
344
  }
235
- case 228 /* SyntaxKind.ConditionalExpression */: {
345
+ case 229 /* SyntaxKind.ConditionalExpression */: {
236
346
  const cond = parent;
237
347
  return node === cond.whenTrue || node === cond.whenFalse
238
348
  ? getContextualTypeEx(c, parent, contextFlags)
239
349
  : undefined;
240
350
  }
241
- case 240 /* SyntaxKind.TemplateSpan */: {
351
+ case 241 /* SyntaxKind.TemplateSpan */: {
242
352
  const template = parent.parent;
243
- return template.parent !== undefined && template.parent.kind === 216 /* SyntaxKind.TaggedTemplateExpression */
353
+ return template.parent !== undefined && template.parent.kind === 217 /* SyntaxKind.TaggedTemplateExpression */
244
354
  ? getContextualTypeForArgument(c, template.parent, node)
245
355
  : undefined;
246
356
  }
247
- case 218 /* SyntaxKind.ParenthesizedExpression */:
248
- case 236 /* SyntaxKind.NonNullExpression */:
357
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
358
+ case 237 /* SyntaxKind.NonNullExpression */:
249
359
  return getContextualTypeEx(c, parent, contextFlags);
250
- case 295 /* SyntaxKind.JsxExpression */:
360
+ case 296 /* SyntaxKind.JsxExpression */:
251
361
  return getContextualTypeForJsxExpression(c, parent, contextFlags);
252
- case 292 /* SyntaxKind.JsxAttribute */:
253
- case 294 /* SyntaxKind.JsxSpreadAttribute */:
362
+ case 293 /* SyntaxKind.JsxAttribute */:
363
+ case 295 /* SyntaxKind.JsxSpreadAttribute */:
254
364
  return getContextualTypeForJsxAttribute(c, parent, contextFlags);
255
- case 287 /* SyntaxKind.JsxOpeningElement */:
256
- case 286 /* SyntaxKind.JsxSelfClosingElement */:
365
+ case 288 /* SyntaxKind.JsxOpeningElement */:
366
+ case 287 /* SyntaxKind.JsxSelfClosingElement */:
257
367
  return getContextualJsxElementAttributesType(c, parent, contextFlags);
258
368
  }
259
369
  return undefined;
@@ -266,7 +376,7 @@ function getContextualTypeForInitializerExpression(c, declaration, contextFlags)
266
376
  const name = getName(declaration);
267
377
  if ((contextFlags & 8 /* ContextFlags.SkipBindingPatterns */) === 0 &&
268
378
  name !== undefined &&
269
- (name.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 208 /* SyntaxKind.ArrayBindingPattern */) &&
379
+ (name.kind === 208 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 209 /* SyntaxKind.ArrayBindingPattern */) &&
270
380
  getElements(name).nodes.length > 0)
271
381
  return getTypeFromBindingPattern(c, name, true, false);
272
382
  return undefined;
@@ -275,17 +385,20 @@ function getContextualTypeForInitializer(c, declaration, contextFlags) {
275
385
  const typeNode = getType(declaration);
276
386
  if (typeNode !== undefined)
277
387
  return getTypeFromTypeNode(c, typeNode);
278
- if (declaration.kind === 170 /* SyntaxKind.Parameter */)
388
+ if (declaration.kind === 171 /* SyntaxKind.Parameter */)
279
389
  return getContextuallyTypedParameterTypeOrUndefined(c, declaration);
280
- if (declaration.kind === 209 /* SyntaxKind.BindingElement */)
390
+ if (declaration.kind === 210 /* SyntaxKind.BindingElement */)
281
391
  return getContextualTypeForBindingElement(c, declaration);
282
392
  // A static property of a class expression takes the type of the same property of the class's contextual type.
283
- if (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ &&
393
+ if (declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ &&
284
394
  isStatic(declaration) &&
285
- declaration.parent.kind === 232 /* SyntaxKind.ClassExpression */) {
395
+ declaration.parent.kind === 233 /* SyntaxKind.ClassExpression */) {
286
396
  const parentType = getContextualTypeEx(c, declaration.parent, contextFlags);
287
397
  const symbol = getSymbolOfDeclaration(c, declaration);
288
- if (parentType !== undefined && symbol !== undefined)
398
+ // The class's own type might still be in progress, so contextually typing by it would report a spurious circularity.
399
+ if (parentType !== undefined &&
400
+ symbol !== undefined &&
401
+ parentType.symbol !== getSymbolOfDeclaration(c, declaration.parent))
289
402
  return getTypeOfPropertyOfContextualType(c, parentType, symbol.name);
290
403
  }
291
404
  return undefined;
@@ -295,18 +408,18 @@ function getContextualTypeForBindingElement(c, declaration) {
295
408
  const element = declaration;
296
409
  const name = element.propertyName ?? element.name;
297
410
  if (name === undefined ||
298
- name.kind === 207 /* SyntaxKind.ObjectBindingPattern */ ||
299
- name.kind === 208 /* SyntaxKind.ArrayBindingPattern */ ||
300
- (name.kind === 168 /* SyntaxKind.ComputedPropertyName */ && !isLiteralComputedName(name)))
411
+ name.kind === 208 /* SyntaxKind.ObjectBindingPattern */ ||
412
+ name.kind === 209 /* SyntaxKind.ArrayBindingPattern */ ||
413
+ (name.kind === 169 /* SyntaxKind.ComputedPropertyName */ && !isLiteralComputedName(name)))
301
414
  return undefined;
302
415
  const parent = declaration.parent.parent;
303
416
  let parentType = getContextualTypeForInitializer(c, parent, 0 /* ContextFlags.None */);
304
- if (parentType === undefined && parent.kind !== 209 /* SyntaxKind.BindingElement */ && getInitializer(parent) !== undefined)
417
+ if (parentType === undefined && parent.kind !== 210 /* SyntaxKind.BindingElement */ && getInitializer(parent) !== undefined)
305
418
  parentType = checkDeclarationInitializer(c, parent, element.dotDotDotToken !== undefined ? 32 /* CheckMode.RestBindingElement */ : 0 /* CheckMode.Normal */);
306
419
  if (parentType === undefined)
307
420
  return undefined;
308
421
  const parentName = getName(parent);
309
- if (parentName.kind === 208 /* SyntaxKind.ArrayBindingPattern */) {
422
+ if (parentName.kind === 209 /* SyntaxKind.ArrayBindingPattern */) {
310
423
  const index = getElements(parentName).nodes.indexOf(declaration);
311
424
  if (index < 0)
312
425
  return undefined;
@@ -498,7 +611,7 @@ function getSpreadIndices(c, node, elements) {
498
611
  let first = -1;
499
612
  let last = -1;
500
613
  for (let i = 0; i < elements.length; i++)
501
- if (elements[i].kind === 231 /* SyntaxKind.SpreadElement */) {
614
+ if (elements[i].kind === 232 /* SyntaxKind.SpreadElement */) {
502
615
  if (first < 0)
503
616
  first = i;
504
617
  last = i;
@@ -524,7 +637,7 @@ function getContextualTypeForObjectLiteralElement(c, element, contextFlags) {
524
637
  let nameType = symbol !== undefined ? c.symbolNameTypes.get(getSymbolId(symbol)) : undefined;
525
638
  // Late-bound members are named by the type of their computed name, like a unique symbol.
526
639
  const nameNode = getName(element);
527
- if (nameType === undefined && nameNode.kind === 168 /* SyntaxKind.ComputedPropertyName */)
640
+ if (nameType === undefined && nameNode.kind === 169 /* SyntaxKind.ComputedPropertyName */)
528
641
  nameType = checkComputedPropertyName(c, nameNode);
529
642
  return getTypeOfPropertyOfContextualTypeEx(c, t, name, nameType);
530
643
  }
@@ -629,7 +742,7 @@ function getTypeOfConcretePropertyOfContextualType(c, t, name) {
629
742
  }
630
743
  /** Whether the type of a mapped type property is being resolved. */
631
744
  function isCircularMappedProperty(c, symbol) {
632
- return ((symbol.checkFlags & 262144 /* CheckFlags.Mapped */) !== 0 &&
745
+ return ((symbol.checkFlags & 2097152 /* CheckFlags.Mapped */) !== 0 &&
633
746
  c.symbolTypes.get(getSymbolId(symbol)) === undefined &&
634
747
  findResolutionCycleStartIndex(c, symbol, 0 /* TypeSystemPropertyName.Type */) >= 0);
635
748
  }
@@ -697,9 +810,9 @@ export function getApparentTypeOfContextualTypeEx(c, node, contextFlags) {
697
810
  : mapTypeEx(c, t, (u) => ((u.objectFlags & 32 /* ObjectFlags.Mapped */) !== 0 ? u : getApparentType(c, u)), true);
698
811
  if (apparentType === undefined)
699
812
  return undefined;
700
- if ((apparentType.flags & 134217728 /* TypeFlags.Union */) !== 0 && node.kind === 211 /* SyntaxKind.ObjectLiteralExpression */)
813
+ if ((apparentType.flags & 134217728 /* TypeFlags.Union */) !== 0 && node.kind === 212 /* SyntaxKind.ObjectLiteralExpression */)
701
814
  return discriminateContextualTypeByObjectMembers(c, node, apparentType);
702
- if ((apparentType.flags & 134217728 /* TypeFlags.Union */) !== 0 && node.kind === 293 /* SyntaxKind.JsxAttributes */)
815
+ if ((apparentType.flags & 134217728 /* TypeFlags.Union */) !== 0 && node.kind === 294 /* SyntaxKind.JsxAttributes */)
703
816
  return discriminateContextualTypeByJSXAttributes(c, node, apparentType);
704
817
  return apparentType;
705
818
  }
@@ -732,10 +845,10 @@ function discriminateContextualTypeByObjectMembers(c, node, contextualType) {
732
845
  const symbol = getSymbol(p);
733
846
  if (symbol === undefined)
734
847
  continue;
735
- if ((p.kind === 303 /* SyntaxKind.PropertyAssignment */ &&
848
+ if ((p.kind === 304 /* SyntaxKind.PropertyAssignment */ &&
736
849
  isPossiblyDiscriminantValue(p.initializer) &&
737
850
  isDiscriminantProperty(c, contextualType, symbol.name)) ||
738
- (p.kind === 304 /* SyntaxKind.ShorthandPropertyAssignment */ && isDiscriminantProperty(c, contextualType, symbol.name)))
851
+ (p.kind === 305 /* SyntaxKind.ShorthandPropertyAssignment */ && isDiscriminantProperty(c, contextualType, symbol.name)))
739
852
  props.push(p);
740
853
  }
741
854
  const nodeSymbol = getSymbol(node);
@@ -789,7 +902,7 @@ function getMatchingUnionConstituentForObjectLiteral(c, unionType, node) {
789
902
  for (const p of getProperties(node).nodes) {
790
903
  const symbol = getSymbol(p);
791
904
  if (symbol !== undefined &&
792
- p.kind === 303 /* SyntaxKind.PropertyAssignment */ &&
905
+ p.kind === 304 /* SyntaxKind.PropertyAssignment */ &&
793
906
  symbol.name === keyPropertyName &&
794
907
  isPossiblyDiscriminantValue(p.initializer)) {
795
908
  propNode = p;
@@ -807,17 +920,17 @@ function isPossiblyDiscriminantValue(node) {
807
920
  case 8 /* SyntaxKind.NumericLiteral */:
808
921
  case 9 /* SyntaxKind.BigIntLiteral */:
809
922
  case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
810
- case 229 /* SyntaxKind.TemplateExpression */:
923
+ case 230 /* SyntaxKind.TemplateExpression */:
811
924
  case 111 /* SyntaxKind.TrueKeyword */:
812
925
  case 96 /* SyntaxKind.FalseKeyword */:
813
926
  case 105 /* SyntaxKind.NullKeyword */:
814
927
  case 79 /* SyntaxKind.Identifier */:
815
928
  case 157 /* SyntaxKind.UndefinedKeyword */:
816
929
  return true;
817
- case 212 /* SyntaxKind.PropertyAccessExpression */:
818
- case 218 /* SyntaxKind.ParenthesizedExpression */:
930
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
931
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
819
932
  return isPossiblyDiscriminantValue(getExpression(node));
820
- case 295 /* SyntaxKind.JsxExpression */: {
933
+ case 296 /* SyntaxKind.JsxExpression */: {
821
934
  const expression = getExpression(node);
822
935
  return expression === undefined || isPossiblyDiscriminantValue(expression);
823
936
  }
@@ -912,7 +1025,7 @@ function discriminantMatches(c, props, index, t) {
912
1025
  let propType;
913
1026
  if (index < props.length) {
914
1027
  const prop = props[index];
915
- if (prop.kind === 303 /* SyntaxKind.PropertyAssignment */)
1028
+ if (prop.kind === 304 /* SyntaxKind.PropertyAssignment */)
916
1029
  propType = getContextFreeTypeOfExpression(c, prop.initializer);
917
1030
  else if (prop instanceof JsxAttribute)
918
1031
  // An attribute without an initializer is `true`.
@@ -957,7 +1070,7 @@ export function hasContextSensitiveParameters(func) {
957
1070
  for (const p of params)
958
1071
  if (getType(p) === undefined)
959
1072
  return true;
960
- if (func.kind !== 220 /* SyntaxKind.ArrowFunction */) {
1073
+ if (func.kind !== 221 /* SyntaxKind.ArrowFunction */) {
961
1074
  // Without an explicit `this` parameter, the implicit one is contextually typed.
962
1075
  if (params.length === 0 || !isThisParameter(params[0]))
963
1076
  return (func.flags & 128 /* NodeFlags.ContainsThis */) !== 0;
@@ -1084,7 +1197,7 @@ export function getContextuallyTypedParameterType(c, parameter) {
1084
1197
  }
1085
1198
  /** The contextual type of an intra-expression inference site. */
1086
1199
  export function getContextualTypeForInference(c, node) {
1087
- return node.kind === 175 /* SyntaxKind.MethodDeclaration */
1200
+ return node.kind === 176 /* SyntaxKind.MethodDeclaration */
1088
1201
  ? getContextualTypeForObjectLiteralElement(c, node, 2 /* ContextFlags.NoConstraints */)
1089
1202
  : getContextualTypeEx(c, node, 2 /* ContextFlags.NoConstraints */);
1090
1203
  }
@@ -1109,7 +1222,7 @@ function getThisTypeOfObjectLiteralFromContextualType(c, containingLiteral, cont
1109
1222
  const thisType = getThisTypeFromContextualType(c, t);
1110
1223
  if (thisType !== undefined)
1111
1224
  return thisType;
1112
- if (literal.parent.kind !== 303 /* SyntaxKind.PropertyAssignment */)
1225
+ if (literal.parent.kind !== 304 /* SyntaxKind.PropertyAssignment */)
1113
1226
  break;
1114
1227
  literal = literal.parent.parent;
1115
1228
  t = getApparentTypeOfContextualTypeEx(c, literal, 0 /* ContextFlags.None */);