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.
Files changed (367) 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 +20 -15
  6. package/dist/api/compiler/ast.js +1023 -995
  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 +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +469 -438
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -113
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +210 -74
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +137 -34
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +93 -31
  73. package/dist/api/compiler/checker.js +143 -35
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +19 -4
  77. package/dist/api/compiler/compile-program.js +45 -26
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.js +7 -7
  81. package/dist/api/compiler/emitter.d.ts +7 -1
  82. package/dist/api/compiler/emitter.js +53 -11
  83. package/dist/api/compiler/file-include.d.ts +2 -1
  84. package/dist/api/compiler/file-include.js +11 -7
  85. package/dist/api/compiler/file-loader.d.ts +10 -0
  86. package/dist/api/compiler/file-loader.js +138 -41
  87. package/dist/api/compiler/instantiation.d.ts +7 -0
  88. package/dist/api/compiler/instantiation.js +101 -49
  89. package/dist/api/compiler/jsdoc.js +23 -23
  90. package/dist/api/compiler/link-tables.d.ts +48 -18
  91. package/dist/api/compiler/link-tables.js +80 -37
  92. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  93. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  94. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  95. package/dist/api/compiler/locales/de-DE.js +1 -1
  96. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  97. package/dist/api/compiler/locales/es-ES.js +1 -1
  98. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  99. package/dist/api/compiler/locales/fr-FR.js +1 -1
  100. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  101. package/dist/api/compiler/locales/it-IT.js +1 -1
  102. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  103. package/dist/api/compiler/locales/ja-JP.js +1 -1
  104. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  105. package/dist/api/compiler/locales/ko-KR.js +1 -1
  106. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  107. package/dist/api/compiler/locales/pl-PL.js +1 -1
  108. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  109. package/dist/api/compiler/locales/pt-BR.js +1 -1
  110. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  111. package/dist/api/compiler/locales/ru-RU.js +1 -1
  112. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  113. package/dist/api/compiler/locales/tr-TR.js +1 -1
  114. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  115. package/dist/api/compiler/locales/zh-CN.js +1 -1
  116. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  117. package/dist/api/compiler/locales/zh-TW.js +1 -1
  118. package/dist/api/compiler/module-resolution-types.js +6 -6
  119. package/dist/api/compiler/module-resolution.d.ts +10 -1
  120. package/dist/api/compiler/module-resolution.js +115 -84
  121. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  122. package/dist/api/compiler/module-specifiers.js +24 -18
  123. package/dist/api/compiler/name-resolver.js +74 -65
  124. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  125. package/dist/api/compiler/node-builder-names.js +210 -90
  126. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  127. package/dist/api/compiler/node-builder-reuse.js +23 -22
  128. package/dist/api/compiler/node-builder.d.ts +18 -1
  129. package/dist/api/compiler/node-builder.js +191 -102
  130. package/dist/api/compiler/option-declarations.d.ts +2 -6
  131. package/dist/api/compiler/option-declarations.js +315 -375
  132. package/dist/api/compiler/options.d.ts +15 -33
  133. package/dist/api/compiler/options.js +21 -54
  134. package/dist/api/compiler/output-paths.d.ts +4 -1
  135. package/dist/api/compiler/output-paths.js +6 -11
  136. package/dist/api/compiler/package-json.d.ts +3 -3
  137. package/dist/api/compiler/package-json.js +11 -10
  138. package/dist/api/compiler/parser.d.ts +40 -19
  139. package/dist/api/compiler/parser.js +308 -216
  140. package/dist/api/compiler/path.d.ts +9 -0
  141. package/dist/api/compiler/path.js +20 -3
  142. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  143. package/dist/api/compiler/printer/emit-context.js +16 -1
  144. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  145. package/dist/api/compiler/printer/factory-base.js +7 -3
  146. package/dist/api/compiler/printer/factory.js +3 -1
  147. package/dist/api/compiler/printer/helpers.js +10 -1
  148. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  149. package/dist/api/compiler/printer/name-generator.js +35 -16
  150. package/dist/api/compiler/printer/printer.d.ts +1 -0
  151. package/dist/api/compiler/printer/printer.js +303 -281
  152. package/dist/api/compiler/printer/utilities.js +149 -147
  153. package/dist/api/compiler/program-checker.d.ts +8 -2
  154. package/dist/api/compiler/program-checker.js +84 -34
  155. package/dist/api/compiler/program-utilities.d.ts +3 -1
  156. package/dist/api/compiler/program-utilities.js +28 -15
  157. package/dist/api/compiler/program.d.ts +2 -0
  158. package/dist/api/compiler/program.js +69 -57
  159. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  160. package/dist/api/compiler/pseudo-bigint.js +18 -0
  161. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  162. package/dist/api/compiler/regexp-checker.js +93 -76
  163. package/dist/api/compiler/relations.d.ts +27 -4
  164. package/dist/api/compiler/relations.js +337 -180
  165. package/dist/api/compiler/reparser.js +60 -56
  166. package/dist/api/compiler/scanner.d.ts +19 -2
  167. package/dist/api/compiler/scanner.js +123 -108
  168. package/dist/api/compiler/shared-results.d.ts +463 -0
  169. package/dist/api/compiler/shared-results.js +2128 -0
  170. package/dist/api/compiler/sourcemap.js +2 -2
  171. package/dist/api/compiler/symbol-accessibility.js +87 -74
  172. package/dist/api/compiler/symbol.d.ts +22 -13
  173. package/dist/api/compiler/symbol.js +15 -1
  174. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  175. package/dist/api/compiler/transformers/alias-references.js +247 -139
  176. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  177. package/dist/api/compiler/transformers/async.d.ts +0 -1
  178. package/dist/api/compiler/transformers/async.js +64 -77
  179. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  180. package/dist/api/compiler/transformers/class-fields.js +81 -78
  181. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  182. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  183. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  184. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  185. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  186. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  187. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  188. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  189. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  190. package/dist/api/compiler/transformers/declarations.js +305 -238
  191. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  192. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  193. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  194. package/dist/api/compiler/transformers/destructuring.js +19 -18
  195. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  196. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  197. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  198. package/dist/api/compiler/transformers/for-await.js +25 -25
  199. package/dist/api/compiler/transformers/import-elision.js +14 -14
  200. package/dist/api/compiler/transformers/jsx.js +12 -12
  201. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  202. package/dist/api/compiler/transformers/module.js +8 -8
  203. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  204. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  205. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  206. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  207. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  208. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  209. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  210. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  211. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  212. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  213. package/dist/api/compiler/transformers/using.js +12 -12
  214. package/dist/api/compiler/transformers/utilities.js +77 -77
  215. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  216. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  217. package/dist/api/compiler/tsconfig.d.ts +10 -2
  218. package/dist/api/compiler/tsconfig.js +136 -48
  219. package/dist/api/compiler/type-printer.js +40 -3
  220. package/dist/api/compiler/types.d.ts +2 -1
  221. package/dist/api/library/ast.generated.d.ts +42 -39
  222. package/dist/api/library/ast.generated.js +1 -1
  223. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  224. package/dist/api/library/compiler-options.generated.js +1 -1
  225. package/dist/api/library/disk.js +12 -1
  226. package/dist/api/library/enums.generated.d.ts +206 -206
  227. package/dist/api/library/enums.generated.js +206 -206
  228. package/dist/api/library/nodes.js +26 -26
  229. package/package.json +9 -9
  230. package/src/compiler/ast-utilities.ts +99 -7
  231. package/src/compiler/ast.ts +55 -26
  232. package/src/compiler/binder.ts +39 -4
  233. package/src/compiler/character-codes.ts +2 -2
  234. package/src/compiler/checker-calls.ts +76 -8
  235. package/src/compiler/checker-classes.ts +78 -24
  236. package/src/compiler/checker-contextual.ts +6 -1
  237. package/src/compiler/checker-declarations.ts +31 -4
  238. package/src/compiler/checker-declared-types.ts +8 -5
  239. package/src/compiler/checker-decorators.ts +1 -1
  240. package/src/compiler/checker-deprecation.ts +29 -8
  241. package/src/compiler/checker-destructuring.ts +10 -3
  242. package/src/compiler/checker-emit-helpers.ts +1 -0
  243. package/src/compiler/checker-emit-resolver.ts +16 -6
  244. package/src/compiler/checker-expressions.ts +79 -46
  245. package/src/compiler/checker-functions.ts +21 -6
  246. package/src/compiler/checker-generated-code.ts +2 -22
  247. package/src/compiler/checker-grammar.ts +133 -60
  248. package/src/compiler/checker-heritage.ts +22 -21
  249. package/src/compiler/checker-inference.ts +514 -87
  250. package/src/compiler/checker-iteration.ts +18 -31
  251. package/src/compiler/checker-javascript.ts +1 -1
  252. package/src/compiler/checker-jsdoc.ts +50 -27
  253. package/src/compiler/checker-jsx.ts +26 -4
  254. package/src/compiler/checker-members.ts +197 -55
  255. package/src/compiler/checker-modules.ts +332 -65
  256. package/src/compiler/checker-narrowing.ts +98 -19
  257. package/src/compiler/checker-object-literals.ts +3 -0
  258. package/src/compiler/checker-operators.ts +11 -4
  259. package/src/compiler/checker-property-access.ts +7 -2
  260. package/src/compiler/checker-services.ts +39 -12
  261. package/src/compiler/checker-signatures.ts +15 -1
  262. package/src/compiler/checker-source-file.ts +39 -13
  263. package/src/compiler/checker-statements.ts +3 -2
  264. package/src/compiler/checker-symbol-types.ts +29 -6
  265. package/src/compiler/checker-symbols.ts +158 -15
  266. package/src/compiler/checker-type-factory.ts +120 -21
  267. package/src/compiler/checker-type-nodes.ts +46 -3
  268. package/src/compiler/checker-type-operators.ts +83 -26
  269. package/src/compiler/checker-types.ts +147 -4
  270. package/src/compiler/checker-unused.ts +9 -14
  271. package/src/compiler/checker.ts +168 -41
  272. package/src/compiler/command-line.ts +28 -28
  273. package/src/compiler/compile-program.ts +51 -25
  274. package/src/compiler/decoder.ts +13 -4
  275. package/src/compiler/diagnostic-messages.ts +1973 -1892
  276. package/src/compiler/emitter.ts +57 -8
  277. package/src/compiler/encoder.ts +23 -8
  278. package/src/compiler/file-include.ts +9 -3
  279. package/src/compiler/file-loader.ts +139 -32
  280. package/src/compiler/help.ts +10 -14
  281. package/src/compiler/incremental.ts +86 -18
  282. package/src/compiler/init.ts +2 -7
  283. package/src/compiler/instantiation.ts +77 -22
  284. package/src/compiler/jsdoc.ts +3 -1
  285. package/src/compiler/link-tables.ts +82 -37
  286. package/src/compiler/locales/cs-CZ.ts +1 -1
  287. package/src/compiler/locales/de-DE.ts +1 -1
  288. package/src/compiler/locales/es-ES.ts +1 -1
  289. package/src/compiler/locales/fr-FR.ts +1 -1
  290. package/src/compiler/locales/it-IT.ts +1 -1
  291. package/src/compiler/locales/ja-JP.ts +1 -1
  292. package/src/compiler/locales/ko-KR.ts +1 -1
  293. package/src/compiler/locales/pl-PL.ts +1 -1
  294. package/src/compiler/locales/pt-BR.ts +1 -1
  295. package/src/compiler/locales/ru-RU.ts +1 -1
  296. package/src/compiler/locales/tr-TR.ts +1 -1
  297. package/src/compiler/locales/zh-CN.ts +1 -1
  298. package/src/compiler/locales/zh-TW.ts +1 -1
  299. package/src/compiler/module-resolution.ts +44 -8
  300. package/src/compiler/module-specifiers.ts +62 -20
  301. package/src/compiler/name-resolver.ts +9 -1
  302. package/src/compiler/node-builder-names.ts +236 -54
  303. package/src/compiler/node-builder-pseudo.ts +4 -7
  304. package/src/compiler/node-builder-reuse.ts +5 -4
  305. package/src/compiler/node-builder.ts +130 -31
  306. package/src/compiler/option-declarations.ts +33 -103
  307. package/src/compiler/options.ts +23 -62
  308. package/src/compiler/output-paths.ts +5 -18
  309. package/src/compiler/package-entrypoints.ts +345 -0
  310. package/src/compiler/package-json.ts +4 -4
  311. package/src/compiler/parallel-check.ts +197 -8
  312. package/src/compiler/parallel-emit.ts +1 -1
  313. package/src/compiler/parser.ts +156 -39
  314. package/src/compiler/path.ts +22 -2
  315. package/src/compiler/printer/emit-context.ts +16 -0
  316. package/src/compiler/printer/factory-base.ts +10 -3
  317. package/src/compiler/printer/factory.ts +4 -1
  318. package/src/compiler/printer/helpers.ts +10 -1
  319. package/src/compiler/printer/name-generator.ts +24 -2
  320. package/src/compiler/printer/printer.ts +35 -14
  321. package/src/compiler/printer/utilities.ts +8 -2
  322. package/src/compiler/program-checker.ts +53 -5
  323. package/src/compiler/program-utilities.ts +23 -10
  324. package/src/compiler/program.ts +13 -1
  325. package/src/compiler/pseudo-bigint.ts +17 -0
  326. package/src/compiler/regexp-checker.ts +63 -30
  327. package/src/compiler/relations.ts +233 -77
  328. package/src/compiler/reparser.ts +7 -2
  329. package/src/compiler/scanner.ts +109 -79
  330. package/src/compiler/shared-results.ts +2414 -0
  331. package/src/compiler/show-config.ts +18 -1
  332. package/src/compiler/sourcemap.ts +2 -2
  333. package/src/compiler/symbol-accessibility.ts +26 -3
  334. package/src/compiler/symbol.ts +31 -14
  335. package/src/compiler/syntax-kind.ts +188 -187
  336. package/src/compiler/thread-entry.ts +19 -2
  337. package/src/compiler/transformers/alias-references.ts +123 -4
  338. package/src/compiler/transformers/async.ts +2 -17
  339. package/src/compiler/transformers/class-fields.ts +13 -12
  340. package/src/compiler/transformers/commonjs-module.ts +11 -7
  341. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  342. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  343. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  344. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  345. package/src/compiler/transformers/declarations.ts +134 -48
  346. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  347. package/src/compiler/transformers/destructuring.ts +4 -3
  348. package/src/compiler/transformers/external-module-info.ts +1 -1
  349. package/src/compiler/transformers/jsx.ts +2 -1
  350. package/src/compiler/transformers/reference-resolver.ts +83 -19
  351. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  352. package/src/compiler/transformers/syntax-facts.ts +2 -7
  353. package/src/compiler/transformers/type-eraser.ts +10 -1
  354. package/src/compiler/transformers/type-serialization.ts +3 -2
  355. package/src/compiler/transformers/visitor-base.ts +2 -1
  356. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  357. package/src/compiler/tsc-build.ts +3 -0
  358. package/src/compiler/tsc-cli.ts +2 -0
  359. package/src/compiler/tsc-compile.ts +7 -2
  360. package/src/compiler/tsc-watch.ts +74 -45
  361. package/src/compiler/tsconfig.ts +176 -19
  362. package/src/compiler/type-printer.ts +36 -2
  363. package/src/compiler/types.ts +2 -1
  364. package/src/library/ast.generated.ts +57 -41
  365. package/src/library/compiler-options.generated.ts +117 -103
  366. package/src/library/disk.ts +10 -1
  367. package/src/library/enums.generated.ts +196 -196
@@ -3,11 +3,12 @@
3
3
  import { sideOf } from './side-state.js';
4
4
  import { getInferredTypeParameterConstraint } from './checker-inference.js';
5
5
  import { getExpression, getInitializer, getLocals, getName, getText, getType, getTypeArguments as getTypeArgumentNodes, getTypeParameters as getTypeParameterNodes, getHeritageClauses, } from './ast.js';
6
- import { getSourceFileOfNode, isEnumConst, isObjectLiteralMethod } from './binder-utilities.js';
6
+ import { getSourceFileOfNode, hasDynamicName, isEnumConst, isObjectLiteralMethod } from './binder-utilities.js';
7
+ import { getHeritageClauseElementName } from './ast-utilities.js';
7
8
  import { createDiagnosticForNode } from './checker.js';
8
9
  import { elaborateNeverIntersection } from './checker-property-access.js';
9
10
  import { TypeAlias, emptyTypes, newTypeMapper, ReferenceCache, } from './checker-types.js';
10
- import { createArrayTypeEx, getFreshTypeOfLiteralType, getNumberEnumLiteralType, getStringEnumLiteralType, getTargetType, getTypeArguments, getUnionType, getUnionTypeEx, isErrorType, newObjectType, typeListKey, typesOf, typeListHash, } from './checker-type-factory.js';
11
+ import { createArrayTypeEx, getFreshTypeOfLiteralType, getNumberEnumLiteralType, getStringEnumLiteralType, getTargetType, getTypeArguments, getUnionType, getUnionTypeEx, isErrorType, newObjectType, typeListKey, typesOf, typeListHash, compareTypes, } from './checker-type-factory.js';
11
12
  import { getFirstIdentifier, getMergedSymbol, getParentOfSymbol, getSymbolOfDeclaration, popTypeResolution, pushTypeResolution, resolveEntityName, } from './checker-symbols.js';
12
13
  import { getTypeFromTypeNode, getTypeFromClassOrInterfaceReference, isTypeAlias } from './checker-type-nodes.js';
13
14
  import { instantiateType } from './instantiation.js';
@@ -84,14 +85,14 @@ export function getDeclaredTypeOfClassOrInterface(c, symbol) {
84
85
  }
85
86
  function isThislessInterface(c, symbol) {
86
87
  for (const declaration of getDeclarations(symbol)) {
87
- if (declaration.kind !== 265 /* SyntaxKind.InterfaceDeclaration */)
88
+ if (declaration.kind !== 266 /* SyntaxKind.InterfaceDeclaration */)
88
89
  continue;
89
90
  if ((declaration.flags & 128 /* NodeFlags.ContainsThis */) !== 0)
90
91
  return false;
91
92
  for (const node of getExtendsHeritageClauseElements(declaration)) {
92
- const expression = getExpression(node);
93
- if (isEntityNameExpression(expression)) {
94
- const baseSymbol = resolveEntityName(c, expression, 788968 /* SymbolFlags.Type */, true, false, undefined);
93
+ const name = getHeritageClauseElementName(node);
94
+ if (name.kind === 168 /* SyntaxKind.QualifiedName */ || isEntityNameExpression(name)) {
95
+ const baseSymbol = resolveEntityName(c, name, 788968 /* SymbolFlags.Type */, true, false, undefined);
95
96
  if (baseSymbol === undefined ||
96
97
  (baseSymbol.flags & 64 /* SymbolFlags.Interface */) === 0 ||
97
98
  getDeclaredTypeOfClassOrInterface(c, baseSymbol).thisType !== undefined)
@@ -104,7 +105,7 @@ function isThislessInterface(c, symbol) {
104
105
  export function isEntityNameExpression(node) {
105
106
  if (node.kind === 79 /* SyntaxKind.Identifier */)
106
107
  return true;
107
- if (node.kind === 212 /* SyntaxKind.PropertyAccessExpression */) {
108
+ if (node.kind === 213 /* SyntaxKind.PropertyAccessExpression */) {
108
109
  const name = getName(node);
109
110
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && isEntityNameExpression(getExpression(node));
110
111
  }
@@ -129,7 +130,7 @@ export function getExtendsHeritageClauseElement(node) {
129
130
  }
130
131
  export function getClassLikeDeclarationOfSymbol(symbol) {
131
132
  for (const d of getDeclarations(symbol))
132
- if (d.kind === 264 /* SyntaxKind.ClassDeclaration */ || d.kind === 232 /* SyntaxKind.ClassExpression */)
133
+ if (d.kind === 265 /* SyntaxKind.ClassDeclaration */ || d.kind === 233 /* SyntaxKind.ClassExpression */)
133
134
  return d;
134
135
  return undefined;
135
136
  }
@@ -138,14 +139,14 @@ function getOuterTypeParametersOfClassOrInterface(c, symbol) {
138
139
  if ((symbol.flags & (32 /* SymbolFlags.Class */ | 16 /* SymbolFlags.Function */)) === 0) {
139
140
  declaration = undefined;
140
141
  for (const d of getDeclarations(symbol)) {
141
- if (d.kind === 265 /* SyntaxKind.InterfaceDeclaration */) {
142
+ if (d.kind === 266 /* SyntaxKind.InterfaceDeclaration */) {
142
143
  declaration = d;
143
144
  break;
144
145
  }
145
- if (d.kind === 261 /* SyntaxKind.VariableDeclaration */) {
146
+ if (d.kind === 262 /* SyntaxKind.VariableDeclaration */) {
146
147
  const initializer = getInitializer(d);
147
148
  if (initializer !== undefined &&
148
- (initializer.kind === 219 /* SyntaxKind.FunctionExpression */ || initializer.kind === 220 /* SyntaxKind.ArrowFunction */)) {
149
+ (initializer.kind === 220 /* SyntaxKind.FunctionExpression */ || initializer.kind === 221 /* SyntaxKind.ArrowFunction */)) {
149
150
  declaration = d;
150
151
  break;
151
152
  }
@@ -161,26 +162,26 @@ export function getOuterTypeParameters(c, node, includeThisTypes) {
161
162
  for (let current = node.parent; current !== undefined; current = current.parent) {
162
163
  const kind = current.kind;
163
164
  switch (kind) {
164
- case 264 /* SyntaxKind.ClassDeclaration */:
165
- case 232 /* SyntaxKind.ClassExpression */:
166
- case 265 /* SyntaxKind.InterfaceDeclaration */:
167
- case 180 /* SyntaxKind.CallSignature */:
168
- case 181 /* SyntaxKind.ConstructSignature */:
169
- case 174 /* SyntaxKind.MethodSignature */:
170
- case 185 /* SyntaxKind.FunctionType */:
171
- case 186 /* SyntaxKind.ConstructorType */:
172
- case 263 /* SyntaxKind.FunctionDeclaration */:
173
- case 175 /* SyntaxKind.MethodDeclaration */:
174
- case 219 /* SyntaxKind.FunctionExpression */:
175
- case 220 /* SyntaxKind.ArrowFunction */:
176
- case 266 /* SyntaxKind.TypeAliasDeclaration */:
177
- case 345 /* SyntaxKind.JSTypeAliasDeclaration */:
178
- case 201 /* SyntaxKind.MappedType */:
179
- case 195 /* SyntaxKind.ConditionalType */: {
165
+ case 265 /* SyntaxKind.ClassDeclaration */:
166
+ case 233 /* SyntaxKind.ClassExpression */:
167
+ case 266 /* SyntaxKind.InterfaceDeclaration */:
168
+ case 181 /* SyntaxKind.CallSignature */:
169
+ case 182 /* SyntaxKind.ConstructSignature */:
170
+ case 175 /* SyntaxKind.MethodSignature */:
171
+ case 186 /* SyntaxKind.FunctionType */:
172
+ case 187 /* SyntaxKind.ConstructorType */:
173
+ case 264 /* SyntaxKind.FunctionDeclaration */:
174
+ case 176 /* SyntaxKind.MethodDeclaration */:
175
+ case 220 /* SyntaxKind.FunctionExpression */:
176
+ case 221 /* SyntaxKind.ArrowFunction */:
177
+ case 267 /* SyntaxKind.TypeAliasDeclaration */:
178
+ case 346 /* SyntaxKind.JSTypeAliasDeclaration */:
179
+ case 202 /* SyntaxKind.MappedType */:
180
+ case 196 /* SyntaxKind.ConditionalType */: {
180
181
  const outer = getOuterTypeParameters(c, current, includeThisTypes);
181
182
  // A contextually typed function has the type parameters of its contextual signature.
182
- if ((kind === 219 /* SyntaxKind.FunctionExpression */ ||
183
- kind === 220 /* SyntaxKind.ArrowFunction */ ||
183
+ if ((kind === 220 /* SyntaxKind.FunctionExpression */ ||
184
+ kind === 221 /* SyntaxKind.ArrowFunction */ ||
184
185
  isObjectLiteralMethod(current)) &&
185
186
  isContextSensitive(c, current)) {
186
187
  const signatures = getSignaturesOfType(c, getTypeOfSymbol(c, getSymbolOfDeclaration(c, current)), 0 /* SignatureKind.Call */);
@@ -190,21 +191,21 @@ export function getOuterTypeParameters(c, node, includeThisTypes) {
190
191
  return outer;
191
192
  }
192
193
  }
193
- if (kind === 201 /* SyntaxKind.MappedType */) {
194
+ if (kind === 202 /* SyntaxKind.MappedType */) {
194
195
  const typeParameter = current.typeParameter;
195
196
  outer.push(getDeclaredTypeOfTypeParameter(c, getSymbolOfDeclaration(c, typeParameter)));
196
197
  return outer;
197
198
  }
198
- if (kind === 195 /* SyntaxKind.ConditionalType */) {
199
+ if (kind === 196 /* SyntaxKind.ConditionalType */) {
199
200
  for (const t of getInferTypeParameters(c, current))
200
201
  outer.push(t);
201
202
  return outer;
202
203
  }
203
204
  appendTypeParameters(c, outer, getTypeParameterNodes(current)?.nodes);
204
205
  if (includeThisTypes &&
205
- (kind === 264 /* SyntaxKind.ClassDeclaration */ ||
206
- kind === 232 /* SyntaxKind.ClassExpression */ ||
207
- kind === 265 /* SyntaxKind.InterfaceDeclaration */)) {
206
+ (kind === 265 /* SyntaxKind.ClassDeclaration */ ||
207
+ kind === 233 /* SyntaxKind.ClassExpression */ ||
208
+ kind === 266 /* SyntaxKind.InterfaceDeclaration */)) {
208
209
  const thisType = getDeclaredTypeOfClassOrInterface(c, getSymbolOfDeclaration(c, current)).thisType;
209
210
  if (thisType !== undefined)
210
211
  outer.push(thisType);
@@ -222,6 +223,7 @@ export function getInferTypeParameters(c, node) {
222
223
  for (const symbol of locals.values())
223
224
  if ((symbol.flags & 262144 /* SymbolFlags.TypeParameter */) !== 0)
224
225
  result.push(getDeclaredTypeOfSymbol(c, symbol));
226
+ result.sort((t1, t2) => compareTypes(c, t1, t2));
225
227
  return result;
226
228
  }
227
229
  export function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(c, symbol) {
@@ -229,9 +231,9 @@ export function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(c, symbol) {
229
231
  }
230
232
  function appendLocalTypeParameters(c, types, symbol) {
231
233
  for (const node of getDeclarations(symbol)) {
232
- if (node.kind === 265 /* SyntaxKind.InterfaceDeclaration */ ||
233
- node.kind === 264 /* SyntaxKind.ClassDeclaration */ ||
234
- node.kind === 232 /* SyntaxKind.ClassExpression */ ||
234
+ if (node.kind === 266 /* SyntaxKind.InterfaceDeclaration */ ||
235
+ node.kind === 265 /* SyntaxKind.ClassDeclaration */ ||
236
+ node.kind === 233 /* SyntaxKind.ClassExpression */ ||
235
237
  isTypeAlias(node))
236
238
  appendTypeParameters(c, types, getTypeParameterNodes(node)?.nodes);
237
239
  }
@@ -261,7 +263,7 @@ export function getDeclaredTypeOfTypeAlias(c, symbol) {
261
263
  return c.errorType;
262
264
  let declaration;
263
265
  for (const d of getDeclarations(symbol))
264
- if (d.kind === 266 /* SyntaxKind.TypeAliasDeclaration */ || d.kind === 345 /* SyntaxKind.JSTypeAliasDeclaration */) {
266
+ if (d.kind === 267 /* SyntaxKind.TypeAliasDeclaration */ || d.kind === 346 /* SyntaxKind.JSTypeAliasDeclaration */) {
265
267
  declaration = d;
266
268
  break;
267
269
  }
@@ -281,7 +283,7 @@ export function getDeclaredTypeOfTypeAlias(c, symbol) {
281
283
  }
282
284
  else {
283
285
  const errorNode = declaration !== undefined ? (getName(declaration) ?? declaration) : undefined;
284
- c.error(errorNode, 622 /* Diagnostics.Type_alias_0_circularly_references_itself */, symbolToString(c, symbol));
286
+ c.error(errorNode, 629 /* Diagnostics.Type_alias_0_circularly_references_itself */, symbolToString(c, symbol));
285
287
  type = c.errorType;
286
288
  }
287
289
  if (links.declaredType === undefined)
@@ -294,10 +296,10 @@ export function getDeclaredTypeOfEnum(c, symbol) {
294
296
  return links.declaredType;
295
297
  const memberTypes = [];
296
298
  for (const declaration of getDeclarations(symbol)) {
297
- if (declaration.kind !== 267 /* SyntaxKind.EnumDeclaration */)
299
+ if (declaration.kind !== 268 /* SyntaxKind.EnumDeclaration */)
298
300
  continue;
299
301
  for (const member of declaration.members.nodes) {
300
- if (!hasBindableName(member))
302
+ if (hasDynamicName(member))
301
303
  continue;
302
304
  const memberSymbol = getSymbolOfDeclaration(c, member);
303
305
  computeEnumMemberValues(c, declaration);
@@ -325,7 +327,7 @@ export function getDeclaredTypeOfEnum(c, symbol) {
325
327
  }
326
328
  export function hasBindableName(node) {
327
329
  const name = getName(node);
328
- return name === undefined || name.kind !== 168 /* SyntaxKind.ComputedPropertyName */ || isLiteralComputed(name);
330
+ return name === undefined || name.kind !== 169 /* SyntaxKind.ComputedPropertyName */ || isLiteralComputed(name);
329
331
  }
330
332
  function isLiteralComputed(name) {
331
333
  const e = getExpression(name);
@@ -374,14 +376,14 @@ export function computeEnumMemberValues(c, node) {
374
376
  function computeEnumMemberValue(c, member, hasAuto, autoValue, previous) {
375
377
  const links = c.nodeLinks(member);
376
378
  const name = getName(member);
377
- if (name.kind === 168 /* SyntaxKind.ComputedPropertyName */ && !isLiteralComputed(name))
379
+ if (name.kind === 169 /* SyntaxKind.ComputedPropertyName */ && !isLiteralComputed(name))
378
380
  c.error(name, 121 /* Diagnostics.Computed_property_names_are_not_allowed_in_enums */);
379
381
  else if (name.kind === 9 /* SyntaxKind.BigIntLiteral */)
380
- c.error(name, 620 /* Diagnostics.An_enum_member_cannot_have_a_numeric_name */);
382
+ c.error(name, 627 /* Diagnostics.An_enum_member_cannot_have_a_numeric_name */);
381
383
  else {
382
- const text = name.kind === 168 /* SyntaxKind.ComputedPropertyName */ ? getText(getExpression(name)) : getText(name);
384
+ const text = name.kind === 169 /* SyntaxKind.ComputedPropertyName */ ? getText(getExpression(name)) : getText(name);
383
385
  if (isNumericLiteralName(text) && text !== 'Infinity' && text !== '-Infinity' && text !== 'NaN')
384
- c.error(name, 620 /* Diagnostics.An_enum_member_cannot_have_a_numeric_name */);
386
+ c.error(name, 627 /* Diagnostics.An_enum_member_cannot_have_a_numeric_name */);
385
387
  }
386
388
  const initializer = getInitializer(member);
387
389
  if (initializer !== undefined) {
@@ -403,7 +405,7 @@ function computeEnumMemberValue(c, member, hasAuto, autoValue, previous) {
403
405
  const previousLinks = c.nodeLinks(previous);
404
406
  if (previousLinks.enumValueKind !== 1 /* EvaluatedKind.Number */ ||
405
407
  (previousLinks.enumValueFlags & 2 /* EvaluatedFlags.ResolvedOtherFiles */) !== 0)
406
- c.error(name, 1871 /* Diagnostics.Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled */);
408
+ c.error(name, 1891 /* Diagnostics.Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled */);
407
409
  }
408
410
  links.enumValueKind = 1 /* EvaluatedKind.Number */;
409
411
  links.enumNumberValue = autoValue;
@@ -419,20 +421,20 @@ function computeConstantEnumMemberValue(c, member, initializer) {
419
421
  if (result.kind !== 0 /* EvaluatedKind.None */) {
420
422
  if (isConstEnum && result.kind === 1 /* EvaluatedKind.Number */ && !Number.isFinite(result.numberValue))
421
423
  c.error(initializer, result.numberValue !== result.numberValue
422
- ? 642 /* Diagnostics.X_const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN */
423
- : 641 /* Diagnostics.X_const_enum_member_initializer_was_evaluated_to_a_non_finite_value */);
424
+ ? 649 /* Diagnostics.X_const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN */
425
+ : 648 /* Diagnostics.X_const_enum_member_initializer_was_evaluated_to_a_non_finite_value */);
424
426
  // A transpiler emits a string member without a reverse mapping only when it sees a string.
425
427
  if (c.isolatedModules &&
426
428
  result.kind === 2 /* EvaluatedKind.String */ &&
427
429
  (result.flags & 1 /* EvaluatedFlags.SyntacticallyString */) === 0)
428
- c.error(initializer, 1870 /* Diagnostics.X_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled */, getText(getName(member.parent)) + '.' + getText(getName(member)));
430
+ c.error(initializer, 1890 /* Diagnostics.X_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled */, getText(getName(member.parent)) + '.' + getText(getName(member)));
429
431
  }
430
432
  else if (isConstEnum)
431
- c.error(initializer, 638 /* Diagnostics.X_const_enum_member_initializers_must_be_constant_expressions */);
433
+ c.error(initializer, 645 /* Diagnostics.X_const_enum_member_initializers_must_be_constant_expressions */);
432
434
  else if ((member.parent.flags & 8388608 /* NodeFlags.Ambient */) !== 0)
433
435
  c.error(initializer, 51 /* Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression */);
434
436
  else
435
- checkTypeAssignableTo(c, checkExpression(c, initializer), c.numberType, initializer, 1850 /* Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values */);
437
+ checkTypeAssignableTo(c, checkExpression(c, initializer), c.numberType, initializer, 1870 /* Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values */);
436
438
  }
437
439
  export function isNumericLiteralName(name) {
438
440
  // A name is numeric when it round-trips through Number.
@@ -456,7 +458,7 @@ export function getBaseTypes(c, t) {
456
458
  }
457
459
  if (!popTypeResolution(c))
458
460
  for (const declaration of getDeclarations(t.symbol))
459
- if (declaration.kind === 264 /* SyntaxKind.ClassDeclaration */ || declaration.kind === 265 /* SyntaxKind.InterfaceDeclaration */)
461
+ if (declaration.kind === 265 /* SyntaxKind.ClassDeclaration */ || declaration.kind === 266 /* SyntaxKind.InterfaceDeclaration */)
460
462
  reportCircularBaseType(c, declaration, t);
461
463
  // Circular defaults may leave members partially resolved; reset them.
462
464
  membersHolder(c, t).objectFlags &= ~2097152 /* ObjectFlags.MembersResolved */;
@@ -492,7 +494,7 @@ function resolveBaseTypesOfClass(c, t) {
492
494
  else {
493
495
  const constructors = getInstantiatedConstructorsForTypeArguments(c, baseConstructorType, getTypeArgumentNodes(baseTypeNode)?.nodes, baseTypeNode);
494
496
  if (constructors.length === 0) {
495
- c.error(getExpression(baseTypeNode), 668 /* Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments */);
497
+ c.error(getExpression(baseTypeNode), 675 /* Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments */);
496
498
  return;
497
499
  }
498
500
  baseType = getReturnTypeOfSignature(c, constructors[0]);
@@ -502,12 +504,12 @@ function resolveBaseTypesOfClass(c, t) {
502
504
  const reducedBaseType = getReducedType(c, baseType);
503
505
  if (!isValidBaseType(c, reducedBaseType)) {
504
506
  const errorNode = getExpression(baseTypeNode);
505
- const diagnostic = createDiagnosticForNode(errorNode, 669 /* Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members */, [typeToString(c, reducedBaseType)]);
507
+ const diagnostic = createDiagnosticForNode(errorNode, 676 /* Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members */, [typeToString(c, reducedBaseType)]);
506
508
  c.addDiagnostic(diagnostic.addMessageChain(elaborateNeverIntersection(c, undefined, errorNode, baseType)));
507
509
  return;
508
510
  }
509
511
  if (t.id === reducedBaseType.id || hasBaseType(c, reducedBaseType, t)) {
510
- c.error(t.symbol.valueDeclaration, 488 /* Diagnostics.Type_0_recursively_references_itself_as_a_base_type */, typeToString(c, t));
512
+ c.error(t.symbol.valueDeclaration, 495 /* Diagnostics.Type_0_recursively_references_itself_as_a_base_type */, typeToString(c, t));
511
513
  return;
512
514
  }
513
515
  sideOf(c, t).resolvedBaseTypes = [reducedBaseType];
@@ -530,7 +532,7 @@ function isInJS(node) {
530
532
  }
531
533
  function resolveBaseTypesOfInterface(c, t) {
532
534
  for (const declaration of getDeclarations(t.symbol)) {
533
- if (declaration.kind !== 265 /* SyntaxKind.InterfaceDeclaration */)
535
+ if (declaration.kind !== 266 /* SyntaxKind.InterfaceDeclaration */)
534
536
  continue;
535
537
  for (const node of getExtendsHeritageClauseElements(declaration)) {
536
538
  const baseType = getReducedType(c, getTypeFromTypeNode(c, node));
@@ -548,7 +550,7 @@ function resolveBaseTypesOfInterface(c, t) {
548
550
  reportCircularBaseType(c, declaration, t);
549
551
  }
550
552
  else
551
- c.error(node, 490 /* Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members */);
553
+ c.error(node, 497 /* Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members */);
552
554
  }
553
555
  }
554
556
  }
@@ -561,7 +563,7 @@ function areAllOuterTypeParametersApplied(c, t) {
561
563
  return outer[last].symbol !== getTypeArguments(c, t)[last].symbol;
562
564
  }
563
565
  function reportCircularBaseType(c, node, t) {
564
- c.error(node, 488 /* Diagnostics.Type_0_recursively_references_itself_as_a_base_type */, typeToString(c, t, undefined, 1 << 1));
566
+ c.error(node, 495 /* Diagnostics.Type_0_recursively_references_itself_as_a_base_type */, typeToString(c, t, undefined, 1 << 1));
565
567
  }
566
568
  export function isValidBaseType(c, t) {
567
569
  if ((t.flags & 524288 /* TypeFlags.TypeParameter */) !== 0) {
@@ -613,7 +615,7 @@ export function getBaseConstructorTypeOfClass(c, t) {
613
615
  if ((baseConstructorType.flags & (1048576 /* TypeFlags.Object */ | 268435456 /* TypeFlags.Intersection */)) !== 0)
614
616
  resolveStructuredTypeMembers(c, baseConstructorType);
615
617
  if (!popTypeResolution(c)) {
616
- c.error(t.symbol.valueDeclaration, 666 /* Diagnostics.X_0_is_referenced_directly_or_indirectly_in_its_own_base_expression */, symbolToString(c, t.symbol));
618
+ c.error(t.symbol.valueDeclaration, 673 /* Diagnostics.X_0_is_referenced_directly_or_indirectly_in_its_own_base_expression */, symbolToString(c, t.symbol));
617
619
  if (side.resolvedBaseConstructorType === undefined)
618
620
  side.resolvedBaseConstructorType = c.errorType;
619
621
  return side.resolvedBaseConstructorType;
@@ -621,7 +623,7 @@ export function getBaseConstructorTypeOfClass(c, t) {
621
623
  if ((baseConstructorType.flags & 1 /* TypeFlags.Any */) === 0 &&
622
624
  baseConstructorType !== c.nullWideningType &&
623
625
  !isConstructorType(c, baseConstructorType)) {
624
- c.error(getExpression(baseTypeNode), 667 /* Diagnostics.Type_0_is_not_a_constructor_function_type */, typeToString(c, baseConstructorType));
626
+ c.error(getExpression(baseTypeNode), 674 /* Diagnostics.Type_0_is_not_a_constructor_function_type */, typeToString(c, baseConstructorType));
625
627
  if (side.resolvedBaseConstructorType === undefined)
626
628
  side.resolvedBaseConstructorType = c.errorType;
627
629
  return side.resolvedBaseConstructorType;
@@ -668,7 +670,7 @@ export function hasNonCircularBaseConstraint(c, t) {
668
670
  export function getConstraintDeclaration(t) {
669
671
  if (t.symbol !== undefined)
670
672
  for (const d of getDeclarations(t.symbol))
671
- if (d.kind === 169 /* SyntaxKind.TypeParameter */) {
673
+ if (d.kind === 170 /* SyntaxKind.TypeParameter */) {
672
674
  const constraint = d.constraint;
673
675
  if (constraint !== undefined)
674
676
  return constraint;
@@ -697,7 +699,7 @@ export function getConstraintFromTypeParameter(c, t) {
697
699
  if ((constraint.flags & 1 /* TypeFlags.Any */) !== 0 && !isErrorType(c, constraint))
698
700
  // Mapped type keys use string | number | symbol; others unknown.
699
701
  constraint =
700
- declaration.parent.parent.kind === 201 /* SyntaxKind.MappedType */ ? c.stringNumberSymbolType : c.unknownType;
702
+ declaration.parent.parent.kind === 202 /* SyntaxKind.MappedType */ ? c.stringNumberSymbolType : c.unknownType;
701
703
  }
702
704
  else
703
705
  constraint = getInferredTypeParameterConstraint(c, t);
@@ -725,7 +727,7 @@ export function getResolvedTypeParameterDefault(c, t) {
725
727
  let defaultType = c.noConstraintType;
726
728
  if (t.symbol !== undefined)
727
729
  for (const d of getDeclarations(t.symbol))
728
- if (d.kind === 169 /* SyntaxKind.TypeParameter */) {
730
+ if (d.kind === 170 /* SyntaxKind.TypeParameter */) {
729
731
  const node = d.defaultType;
730
732
  if (node !== undefined) {
731
733
  defaultType = getTypeFromTypeNode(c, node);
@@ -757,7 +759,7 @@ function hasTypeParameterDefault(t) {
757
759
  return false;
758
760
  for (let i = 0; i < declarationCount(symbol); i++) {
759
761
  const d = declarationAt(symbol, i);
760
- if (d.kind === 169 /* SyntaxKind.TypeParameter */ && d.defaultType !== undefined)
762
+ if (d.kind === 170 /* SyntaxKind.TypeParameter */ && d.defaultType !== undefined)
761
763
  return true;
762
764
  }
763
765
  return false;