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
@@ -25,7 +25,7 @@ export function checkResolvedBlockScopedVariable(c, resolved, errorLocation) {
25
25
  let declaration;
26
26
  for (let i = 0; i < declarationCount(result); i++) {
27
27
  const d = declarationAt(result, i);
28
- if (isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 267 /* SyntaxKind.EnumDeclaration */) {
28
+ if (isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 268 /* SyntaxKind.EnumDeclaration */) {
29
29
  declaration = d;
30
30
  break;
31
31
  }
@@ -37,13 +37,13 @@ export function checkResolvedBlockScopedVariable(c, resolved, errorLocation) {
37
37
  const declarationName = declarationNameToString(getSourceFileOfNode(declaration), getNameOfDeclaration(declaration));
38
38
  let diagnostic = undefined;
39
39
  if ((result.flags & 2 /* SymbolFlags.BlockScopedVariable */) !== 0)
40
- diagnostic = c.error(errorLocation, 616 /* Diagnostics.Block_scoped_variable_0_used_before_its_declaration */, declarationName);
40
+ diagnostic = c.error(errorLocation, 623 /* Diagnostics.Block_scoped_variable_0_used_before_its_declaration */, declarationName);
41
41
  else if ((result.flags & 32 /* SymbolFlags.Class */) !== 0)
42
- diagnostic = c.error(errorLocation, 617 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
42
+ diagnostic = c.error(errorLocation, 624 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
43
43
  else if ((result.flags & 256 /* SymbolFlags.RegularEnum */) !== 0 || c.isolatedModules)
44
- diagnostic = c.error(errorLocation, 618 /* Diagnostics.Enum_0_used_before_its_declaration */, declarationName);
44
+ diagnostic = c.error(errorLocation, 625 /* Diagnostics.Enum_0_used_before_its_declaration */, declarationName);
45
45
  if (diagnostic !== undefined)
46
- diagnostic.addRelatedInfo(createDiagnosticForNode(declaration, 860 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
46
+ diagnostic.addRelatedInfo(createDiagnosticForNode(declaration, 867 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
47
47
  }
48
48
  /** Reports a class property read in an initializer before it's initialized. */
49
49
  export function checkPropertyNotUsedBeforeDeclaration(c, prop, node, right) {
@@ -56,33 +56,33 @@ export function checkPropertyNotUsedBeforeDeclaration(c, prop, node, right) {
56
56
  !isOptionalPropertyDeclaration(valueDeclaration) &&
57
57
  !(isAccessExpression(node) && isAccessExpression(getExpression(node))) &&
58
58
  !isBlockScopedNameDeclaredBeforeUse(c, valueDeclaration, right) &&
59
- !(valueDeclaration.kind === 175 /* SyntaxKind.MethodDeclaration */ && isStatic(valueDeclaration)) &&
59
+ !(valueDeclaration.kind === 176 /* SyntaxKind.MethodDeclaration */ && isStatic(valueDeclaration)) &&
60
60
  (getUseDefineForClassFields(c) || !isPropertyDeclaredInAncestorClass(c, prop)))
61
- diagnostic = c.error(right, 861 /* Diagnostics.Property_0_is_used_before_its_initialization */, declarationName);
62
- else if (valueDeclaration.kind === 264 /* SyntaxKind.ClassDeclaration */ &&
63
- node.parent.kind !== 184 /* SyntaxKind.TypeReference */ &&
61
+ diagnostic = c.error(right, 868 /* Diagnostics.Property_0_is_used_before_its_initialization */, declarationName);
62
+ else if (valueDeclaration.kind === 265 /* SyntaxKind.ClassDeclaration */ &&
63
+ node.parent.kind !== 185 /* SyntaxKind.TypeReference */ &&
64
64
  (valueDeclaration.flags & 8388608 /* NodeFlags.Ambient */) === 0 &&
65
65
  !isBlockScopedNameDeclaredBeforeUse(c, valueDeclaration, right))
66
- diagnostic = c.error(right, 617 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
66
+ diagnostic = c.error(right, 624 /* Diagnostics.Class_0_used_before_its_declaration */, declarationName);
67
67
  if (diagnostic !== undefined)
68
- diagnostic.addRelatedInfo(createDiagnosticForNode(valueDeclaration, 860 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
68
+ diagnostic.addRelatedInfo(createDiagnosticForNode(valueDeclaration, 867 /* Diagnostics.X_0_is_declared_here */, [declarationName]));
69
69
  }
70
70
  export function isInPropertyInitializerOrClassStaticBlock(node, ignoreArrowFunctions) {
71
71
  for (let current = node; current !== undefined; current = current.parent) {
72
72
  switch (current.kind) {
73
- case 173 /* SyntaxKind.PropertyDeclaration */:
74
- case 176 /* SyntaxKind.ClassStaticBlockDeclaration */:
73
+ case 174 /* SyntaxKind.PropertyDeclaration */:
74
+ case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
75
75
  return true;
76
- case 187 /* SyntaxKind.TypeQuery */:
77
- case 288 /* SyntaxKind.JsxClosingElement */:
76
+ case 188 /* SyntaxKind.TypeQuery */:
77
+ case 289 /* SyntaxKind.JsxClosingElement */:
78
78
  return false;
79
- case 220 /* SyntaxKind.ArrowFunction */:
79
+ case 221 /* SyntaxKind.ArrowFunction */:
80
80
  if (!ignoreArrowFunctions)
81
81
  return false;
82
82
  break;
83
- case 242 /* SyntaxKind.Block */: {
83
+ case 243 /* SyntaxKind.Block */: {
84
84
  const parent = current.parent;
85
- if (isFunctionLike(parent) && parent.kind !== 220 /* SyntaxKind.ArrowFunction */)
85
+ if (isFunctionLike(parent) && parent.kind !== 221 /* SyntaxKind.ArrowFunction */)
86
86
  return false;
87
87
  }
88
88
  }
@@ -90,7 +90,7 @@ export function isInPropertyInitializerOrClassStaticBlock(node, ignoreArrowFunct
90
90
  return false;
91
91
  }
92
92
  function isOptionalPropertyDeclaration(node) {
93
- if (node.kind !== 173 /* SyntaxKind.PropertyDeclaration */)
93
+ if (node.kind !== 174 /* SyntaxKind.PropertyDeclaration */)
94
94
  return false;
95
95
  const postfix = getPostfixToken(node);
96
96
  return postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */;
@@ -120,25 +120,25 @@ export function isBlockScopedNameDeclaredBeforeUse(c, declaration, usage) {
120
120
  if ((usage.flags & 4194304 /* NodeFlags.JSDoc */) !== 0 || isPartOfTypeQuery(usage) || isInAmbientOrTypeNode(usage))
121
121
  return true;
122
122
  if (declaration.pos <= usage.pos &&
123
- !(declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ &&
123
+ !(declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ &&
124
124
  isThisProperty(usage.parent) &&
125
125
  getInitializer(declaration) === undefined &&
126
126
  declaration.postfixToken?.kind !== 53 /* SyntaxKind.ExclamationToken */)) {
127
- if (declaration.kind === 209 /* SyntaxKind.BindingElement */) {
127
+ if (declaration.kind === 210 /* SyntaxKind.BindingElement */) {
128
128
  // Binding elements may use earlier siblings only (`var [a = b, b = b] = ...` is an error).
129
- const errorBindingElement = findAncestorOfKind(usage, 209 /* SyntaxKind.BindingElement */);
129
+ const errorBindingElement = findAncestorOfKind(usage, 210 /* SyntaxKind.BindingElement */);
130
130
  if (errorBindingElement !== undefined)
131
- return (findAncestorOfKind(errorBindingElement, 209 /* SyntaxKind.BindingElement */) !==
132
- findAncestorOfKind(declaration, 209 /* SyntaxKind.BindingElement */) || declaration.pos < errorBindingElement.pos);
131
+ return (findAncestorOfKind(errorBindingElement, 210 /* SyntaxKind.BindingElement */) !==
132
+ findAncestorOfKind(declaration, 210 /* SyntaxKind.BindingElement */) || declaration.pos < errorBindingElement.pos);
133
133
  // `var [a] = a` uses the variable before its declaration.
134
- return isBlockScopedNameDeclaredBeforeUse(c, findAncestorOfKind(declaration, 261 /* SyntaxKind.VariableDeclaration */), usage);
134
+ return isBlockScopedNameDeclaredBeforeUse(c, findAncestorOfKind(declaration, 262 /* SyntaxKind.VariableDeclaration */), usage);
135
135
  }
136
- if (declaration.kind === 261 /* SyntaxKind.VariableDeclaration */)
136
+ if (declaration.kind === 262 /* SyntaxKind.VariableDeclaration */)
137
137
  // `var a = a` uses the variable in its own initializer.
138
138
  return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage, declContainer);
139
139
  if (isClassLike(declaration))
140
140
  return !isUsedInClassComputedNameOrDecorator(c, declaration, usage);
141
- if (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */)
141
+ if (declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */)
142
142
  // A self-referencing property initializer, as in `x = this.x`.
143
143
  return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, false);
144
144
  if (isParameterPropertyDeclaration(declaration, declaration.parent))
@@ -151,12 +151,12 @@ export function isBlockScopedNameDeclaredBeforeUse(c, declaration, usage) {
151
151
  // Uses after the declaration are legal when deferred: in export specifiers and `export =`,
152
152
  // functions, and instance property initializers referencing other members.
153
153
  const parent = usage.parent;
154
- if (parent.kind === 282 /* SyntaxKind.ExportSpecifier */ || isExportEquals(parent) || isExportEquals(usage))
154
+ if (parent.kind === 283 /* SyntaxKind.ExportSpecifier */ || isExportEquals(parent) || isExportEquals(usage))
155
155
  return true;
156
156
  if (isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer)) {
157
157
  if (getEmitStandardClassFields(c) &&
158
158
  getContainingClass(declaration) !== undefined &&
159
- (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ ||
159
+ (declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ ||
160
160
  isParameterPropertyDeclaration(declaration, declaration.parent)))
161
161
  return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, true);
162
162
  return true;
@@ -164,7 +164,7 @@ export function isBlockScopedNameDeclaredBeforeUse(c, declaration, usage) {
164
164
  return false;
165
165
  }
166
166
  function isExportEquals(node) {
167
- return node.kind === 278 /* SyntaxKind.ExportAssignment */ && node.isExportEquals;
167
+ return node.kind === 279 /* SyntaxKind.ExportAssignment */ && node.isExportEquals;
168
168
  }
169
169
  /**
170
170
  * Whether a use of a class within its own declaration happens before the class exists: in a
@@ -174,24 +174,24 @@ function isUsedInClassComputedNameOrDecorator(c, declaration, usage) {
174
174
  const legacyDecorators = c.compilerOptions.experimentalDecorators === true;
175
175
  let container = usage;
176
176
  while (container !== undefined && container !== declaration) {
177
- if (container.kind === 168 /* SyntaxKind.ComputedPropertyName */ && container.parent.parent === declaration)
177
+ if (container.kind === 169 /* SyntaxKind.ComputedPropertyName */ && container.parent.parent === declaration)
178
178
  break;
179
- if (!legacyDecorators && container.kind === 171 /* SyntaxKind.Decorator */) {
179
+ if (!legacyDecorators && container.kind === 172 /* SyntaxKind.Decorator */) {
180
180
  const decorated = container.parent;
181
181
  if (decorated === declaration ||
182
- ((decorated.kind === 175 /* SyntaxKind.MethodDeclaration */ ||
183
- decorated.kind === 178 /* SyntaxKind.GetAccessor */ ||
184
- decorated.kind === 179 /* SyntaxKind.SetAccessor */ ||
185
- decorated.kind === 173 /* SyntaxKind.PropertyDeclaration */) &&
182
+ ((decorated.kind === 176 /* SyntaxKind.MethodDeclaration */ ||
183
+ decorated.kind === 179 /* SyntaxKind.GetAccessor */ ||
184
+ decorated.kind === 180 /* SyntaxKind.SetAccessor */ ||
185
+ decorated.kind === 174 /* SyntaxKind.PropertyDeclaration */) &&
186
186
  decorated.parent === declaration) ||
187
- (decorated.kind === 170 /* SyntaxKind.Parameter */ && decorated.parent.parent === declaration))
187
+ (decorated.kind === 171 /* SyntaxKind.Parameter */ && decorated.parent.parent === declaration))
188
188
  break;
189
189
  }
190
190
  container = container.parent;
191
191
  }
192
192
  if (container === undefined || container === declaration)
193
193
  return false;
194
- if (!legacyDecorators && container.kind === 171 /* SyntaxKind.Decorator */) {
194
+ if (!legacyDecorators && container.kind === 172 /* SyntaxKind.Decorator */) {
195
195
  let n = usage;
196
196
  while (n !== undefined && n !== container) {
197
197
  if (isFunctionLike(n) && getImmediatelyInvokedFunctionExpression(n) === undefined)
@@ -215,36 +215,36 @@ function isInAmbientOrTypeNode(node) {
215
215
  if ((node.flags & 8388608 /* NodeFlags.Ambient */) !== 0)
216
216
  return true;
217
217
  for (let current = node; current !== undefined; current = current.parent)
218
- if (current.kind === 265 /* SyntaxKind.InterfaceDeclaration */ ||
219
- current.kind === 266 /* SyntaxKind.TypeAliasDeclaration */ ||
220
- current.kind === 188 /* SyntaxKind.TypeLiteral */)
218
+ if (current.kind === 266 /* SyntaxKind.InterfaceDeclaration */ ||
219
+ current.kind === 267 /* SyntaxKind.TypeAliasDeclaration */ ||
220
+ current.kind === 189 /* SyntaxKind.TypeLiteral */)
221
221
  return true;
222
222
  return false;
223
223
  }
224
224
  export function getEnclosingBlockScopeContainer(node) {
225
225
  for (let current = node.parent; current !== undefined; current = current.parent) {
226
226
  switch (current.kind) {
227
- case 307 /* SyntaxKind.SourceFile */:
228
- case 270 /* SyntaxKind.CaseBlock */:
229
- case 300 /* SyntaxKind.CatchClause */:
230
- case 268 /* SyntaxKind.ModuleDeclaration */:
231
- case 249 /* SyntaxKind.ForStatement */:
232
- case 250 /* SyntaxKind.ForInStatement */:
233
- case 251 /* SyntaxKind.ForOfStatement */:
234
- case 177 /* SyntaxKind.Constructor */:
235
- case 175 /* SyntaxKind.MethodDeclaration */:
236
- case 178 /* SyntaxKind.GetAccessor */:
237
- case 179 /* SyntaxKind.SetAccessor */:
238
- case 263 /* SyntaxKind.FunctionDeclaration */:
239
- case 219 /* SyntaxKind.FunctionExpression */:
240
- case 220 /* SyntaxKind.ArrowFunction */:
241
- case 173 /* SyntaxKind.PropertyDeclaration */:
242
- case 176 /* SyntaxKind.ClassStaticBlockDeclaration */:
227
+ case 308 /* SyntaxKind.SourceFile */:
228
+ case 271 /* SyntaxKind.CaseBlock */:
229
+ case 301 /* SyntaxKind.CatchClause */:
230
+ case 269 /* SyntaxKind.ModuleDeclaration */:
231
+ case 250 /* SyntaxKind.ForStatement */:
232
+ case 251 /* SyntaxKind.ForInStatement */:
233
+ case 252 /* SyntaxKind.ForOfStatement */:
234
+ case 178 /* SyntaxKind.Constructor */:
235
+ case 176 /* SyntaxKind.MethodDeclaration */:
236
+ case 179 /* SyntaxKind.GetAccessor */:
237
+ case 180 /* SyntaxKind.SetAccessor */:
238
+ case 264 /* SyntaxKind.FunctionDeclaration */:
239
+ case 220 /* SyntaxKind.FunctionExpression */:
240
+ case 221 /* SyntaxKind.ArrowFunction */:
241
+ case 174 /* SyntaxKind.PropertyDeclaration */:
242
+ case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
243
243
  return current;
244
- case 242 /* SyntaxKind.Block */: {
244
+ case 243 /* SyntaxKind.Block */: {
245
245
  // Function bodies aren't block scope containers of their own.
246
246
  const parent = current.parent;
247
- if (!isFunctionLike(parent) && parent.kind !== 176 /* SyntaxKind.ClassStaticBlockDeclaration */)
247
+ if (!isFunctionLike(parent) && parent.kind !== 177 /* SyntaxKind.ClassStaticBlockDeclaration */)
248
248
  return current;
249
249
  }
250
250
  }
@@ -260,25 +260,25 @@ function isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer
260
260
  return true;
261
261
  continue;
262
262
  }
263
- if (current.kind === 176 /* SyntaxKind.ClassStaticBlockDeclaration */) {
263
+ if (current.kind === 177 /* SyntaxKind.ClassStaticBlockDeclaration */) {
264
264
  if (declaration.pos < usage.pos)
265
265
  return true;
266
266
  continue;
267
267
  }
268
268
  const parent = current.parent;
269
- if (parent !== undefined && parent.kind === 173 /* SyntaxKind.PropertyDeclaration */ && getInitializer(parent) === current) {
269
+ if (parent !== undefined && parent.kind === 174 /* SyntaxKind.PropertyDeclaration */ && getInitializer(parent) === current) {
270
270
  if (isStatic(parent)) {
271
- if (declaration.kind === 175 /* SyntaxKind.MethodDeclaration */)
271
+ if (declaration.kind === 176 /* SyntaxKind.MethodDeclaration */)
272
272
  return true;
273
273
  // A static property assigned in a static block before the initializer.
274
- if (declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ &&
274
+ if (declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ &&
275
275
  getContainingClass(usage) === getContainingClass(declaration)) {
276
276
  const propName = getName(declaration);
277
277
  if (propName.kind === 79 /* SyntaxKind.Identifier */ || propName.kind === 80 /* SyntaxKind.PrivateIdentifier */) {
278
278
  const symbol = getSymbolOfDeclaration(c, declaration);
279
279
  const staticBlocks = [];
280
280
  for (const m of getMembers(declaration.parent).nodes)
281
- if (m.kind === 176 /* SyntaxKind.ClassStaticBlockDeclaration */)
281
+ if (m.kind === 177 /* SyntaxKind.ClassStaticBlockDeclaration */)
282
282
  staticBlocks.push(m);
283
283
  if (symbol !== undefined &&
284
284
  isPropertyInitializedInStaticBlocks(c, propName, getTypeOfSymbol(c, symbol), staticBlocks, declaration.parent.pos, current.pos))
@@ -287,16 +287,16 @@ function isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer
287
287
  }
288
288
  }
289
289
  else {
290
- const isDeclarationInstanceProperty = declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ && !isStatic(declaration);
290
+ const isDeclarationInstanceProperty = declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ && !isStatic(declaration);
291
291
  if (!isDeclarationInstanceProperty || getContainingClass(usage) !== getContainingClass(declaration))
292
292
  return true;
293
293
  }
294
294
  }
295
- if (parent !== undefined && parent.kind === 171 /* SyntaxKind.Decorator */ && getExpression(parent) === current) {
295
+ if (parent !== undefined && parent.kind === 172 /* SyntaxKind.Decorator */ && getExpression(parent) === current) {
296
296
  const decorated = parent.parent;
297
- if (decorated.kind === 170 /* SyntaxKind.Parameter */)
297
+ if (decorated.kind === 171 /* SyntaxKind.Parameter */)
298
298
  return isUsedInFunctionOrInstanceProperty(c, decorated.parent.parent, declaration, declContainer);
299
- if (decorated.kind === 175 /* SyntaxKind.MethodDeclaration */)
299
+ if (decorated.kind === 176 /* SyntaxKind.MethodDeclaration */)
300
300
  return isUsedInFunctionOrInstanceProperty(c, decorated.parent, declaration, declContainer);
301
301
  }
302
302
  }
@@ -305,15 +305,15 @@ function isUsedInFunctionOrInstanceProperty(c, usage, declaration, declContainer
305
305
  function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage, declContainer) {
306
306
  const grandparent = declaration.parent.parent;
307
307
  switch (grandparent.kind) {
308
- case 244 /* SyntaxKind.VariableStatement */:
309
- case 249 /* SyntaxKind.ForStatement */:
310
- case 251 /* SyntaxKind.ForOfStatement */:
308
+ case 245 /* SyntaxKind.VariableStatement */:
309
+ case 250 /* SyntaxKind.ForStatement */:
310
+ case 252 /* SyntaxKind.ForOfStatement */:
311
311
  // The use is within the declaration: its initializer or a binding element.
312
312
  if (isSameScopeDescendentOf(usage, declaration, declContainer))
313
313
  return true;
314
314
  }
315
315
  // In `for (... in/of expr)`, the use is within the expression.
316
- return ((grandparent.kind === 250 /* SyntaxKind.ForInStatement */ || grandparent.kind === 251 /* SyntaxKind.ForOfStatement */) &&
316
+ return ((grandparent.kind === 251 /* SyntaxKind.ForInStatement */ || grandparent.kind === 252 /* SyntaxKind.ForOfStatement */) &&
317
317
  isSameScopeDescendentOf(usage, getExpression(grandparent), declContainer));
318
318
  }
319
319
  /** Whether `initial` is within `parent` without crossing `stopAt` or a function that isn't an IIFE. */
@@ -337,19 +337,19 @@ function isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, st
337
337
  return false;
338
338
  for (let node = usage; node !== undefined && node !== declaration; node = node.parent) {
339
339
  switch (node.kind) {
340
- case 220 /* SyntaxKind.ArrowFunction */:
340
+ case 221 /* SyntaxKind.ArrowFunction */:
341
341
  return false;
342
- case 173 /* SyntaxKind.PropertyDeclaration */:
342
+ case 174 /* SyntaxKind.PropertyDeclaration */:
343
343
  // Even when stopping at any property declaration, it must be in the same class.
344
344
  return (stopAtAnyPropertyDeclaration &&
345
- ((declaration.kind === 173 /* SyntaxKind.PropertyDeclaration */ && node.parent === declaration.parent) ||
345
+ ((declaration.kind === 174 /* SyntaxKind.PropertyDeclaration */ && node.parent === declaration.parent) ||
346
346
  (isParameterPropertyDeclaration(declaration, declaration.parent) &&
347
347
  node.parent === declaration.parent.parent)));
348
- case 242 /* SyntaxKind.Block */:
348
+ case 243 /* SyntaxKind.Block */:
349
349
  switch (node.parent.kind) {
350
- case 175 /* SyntaxKind.MethodDeclaration */:
351
- case 178 /* SyntaxKind.GetAccessor */:
352
- case 179 /* SyntaxKind.SetAccessor */:
350
+ case 176 /* SyntaxKind.MethodDeclaration */:
351
+ case 179 /* SyntaxKind.GetAccessor */:
352
+ case 180 /* SyntaxKind.SetAccessor */:
353
353
  return false;
354
354
  }
355
355
  }
@@ -5,6 +5,7 @@ export declare function checkVariableStatement(c: Checker, node: Node): void;
5
5
  export declare function checkVariableDeclarationList(c: Checker, node: Node): void;
6
6
  /** Checks a variable, parameter, property or binding element declaration. */
7
7
  export declare function checkVariableLikeDeclaration(c: Checker, node: Node): void;
8
+ export declare function isVariableLike(node: Node): boolean;
8
9
  export declare function checkFunctionDeclaration(c: Checker, node: Node): void;
9
10
  export declare function checkTypeParameter(c: Checker, node: Node): void;
10
11
  /** Variance annotations are only allowed on type aliases of object, function, constructor and mapped types. */