@typespec/compiler 1.15.0-dev.8 → 1.15.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 (463) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/ast/index.js +1 -1
  3. package/dist/src/ast/index.js.map +1 -1
  4. package/dist/src/config/config-interpolation.d.ts +2 -2
  5. package/dist/src/config/config-interpolation.d.ts.map +1 -1
  6. package/dist/src/config/config-interpolation.js.map +1 -1
  7. package/dist/src/config/config-loader.d.ts +2 -2
  8. package/dist/src/config/config-loader.d.ts.map +1 -1
  9. package/dist/src/config/config-loader.js.map +1 -1
  10. package/dist/src/config/config-schema.d.ts +1 -1
  11. package/dist/src/config/config-schema.d.ts.map +1 -1
  12. package/dist/src/config/config-to-options.d.ts +3 -3
  13. package/dist/src/config/config-to-options.d.ts.map +1 -1
  14. package/dist/src/config/config-to-options.js.map +1 -1
  15. package/dist/src/config/index.d.ts +3 -2
  16. package/dist/src/config/index.d.ts.map +1 -1
  17. package/dist/src/config/index.js +0 -1
  18. package/dist/src/config/index.js.map +1 -1
  19. package/dist/src/core/binder.d.ts +2 -1
  20. package/dist/src/core/binder.d.ts.map +1 -1
  21. package/dist/src/core/binder.js +57 -53
  22. package/dist/src/core/binder.js.map +1 -1
  23. package/dist/src/core/charcode.js +145 -26
  24. package/dist/src/core/charcode.js.map +1 -1
  25. package/dist/src/core/checker.d.ts +2 -2
  26. package/dist/src/core/checker.d.ts.map +1 -1
  27. package/dist/src/core/checker.js +106 -83
  28. package/dist/src/core/checker.js.map +1 -1
  29. package/dist/src/core/cli/actions/compile/args.d.ts +2 -2
  30. package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
  31. package/dist/src/core/cli/actions/compile/args.js.map +1 -1
  32. package/dist/src/core/cli/actions/compile/compile.d.ts +2 -2
  33. package/dist/src/core/cli/actions/compile/compile.d.ts.map +1 -1
  34. package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
  35. package/dist/src/core/cli/actions/compile/watch.d.ts +3 -3
  36. package/dist/src/core/cli/actions/compile/watch.d.ts.map +1 -1
  37. package/dist/src/core/cli/actions/compile/watch.js.map +1 -1
  38. package/dist/src/core/cli/actions/format.d.ts +1 -1
  39. package/dist/src/core/cli/actions/format.d.ts.map +1 -1
  40. package/dist/src/core/cli/actions/info/emitter-options.d.ts +1 -1
  41. package/dist/src/core/cli/actions/info/emitter-options.d.ts.map +1 -1
  42. package/dist/src/core/cli/actions/info/emitter-options.js.map +1 -1
  43. package/dist/src/core/cli/actions/info.d.ts +1 -1
  44. package/dist/src/core/cli/actions/info.d.ts.map +1 -1
  45. package/dist/src/core/cli/actions/init.d.ts +4 -2
  46. package/dist/src/core/cli/actions/init.d.ts.map +1 -1
  47. package/dist/src/core/cli/actions/init.js.map +1 -1
  48. package/dist/src/core/cli/actions/vs.d.ts +2 -2
  49. package/dist/src/core/cli/actions/vs.d.ts.map +1 -1
  50. package/dist/src/core/cli/actions/vs.js.map +1 -1
  51. package/dist/src/core/cli/actions/vscode.d.ts +2 -2
  52. package/dist/src/core/cli/actions/vscode.d.ts.map +1 -1
  53. package/dist/src/core/cli/actions/vscode.js.map +1 -1
  54. package/dist/src/core/cli/cli.d.ts +15 -1
  55. package/dist/src/core/cli/cli.d.ts.map +1 -1
  56. package/dist/src/core/cli/cli.js +39 -13
  57. package/dist/src/core/cli/cli.js.map +1 -1
  58. package/dist/src/core/cli/download-vsix.d.ts +2 -2
  59. package/dist/src/core/cli/download-vsix.d.ts.map +1 -1
  60. package/dist/src/core/cli/download-vsix.js.map +1 -1
  61. package/dist/src/core/cli/utils.d.ts +6 -6
  62. package/dist/src/core/cli/utils.d.ts.map +1 -1
  63. package/dist/src/core/cli/utils.js +6 -6
  64. package/dist/src/core/cli/utils.js.map +1 -1
  65. package/dist/src/core/compiler-code-fixes/create-add-decorator/create-add-decorator.codefix.d.ts +1 -1
  66. package/dist/src/core/compiler-code-fixes/create-add-decorator/create-add-decorator.codefix.d.ts.map +1 -1
  67. package/dist/src/core/compiler-code-fixes/remove-unused-code.codefix.d.ts +1 -1
  68. package/dist/src/core/compiler-code-fixes/remove-unused-code.codefix.d.ts.map +1 -1
  69. package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.d.ts +1 -1
  70. package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.d.ts.map +1 -1
  71. package/dist/src/core/compiler-code-fixes/suppress.codefix.d.ts +2 -1
  72. package/dist/src/core/compiler-code-fixes/suppress.codefix.d.ts.map +1 -1
  73. package/dist/src/core/compiler-code-fixes/suppress.codefix.js.map +1 -1
  74. package/dist/src/core/compiler-code-fixes/utils.d.ts +1 -1
  75. package/dist/src/core/compiler-code-fixes/utils.d.ts.map +1 -1
  76. package/dist/src/core/decorator-utils.d.ts +1 -1
  77. package/dist/src/core/decorator-utils.d.ts.map +1 -1
  78. package/dist/src/core/decorator-utils.js +1 -1
  79. package/dist/src/core/decorator-utils.js.map +1 -1
  80. package/dist/src/core/deprecation.d.ts +1 -1
  81. package/dist/src/core/deprecation.d.ts.map +1 -1
  82. package/dist/src/core/deprecation.js.map +1 -1
  83. package/dist/src/core/diagnostic-code.d.ts +59 -0
  84. package/dist/src/core/diagnostic-code.d.ts.map +1 -0
  85. package/dist/src/core/diagnostic-code.js +133 -0
  86. package/dist/src/core/diagnostic-code.js.map +1 -0
  87. package/dist/src/core/diagnostics.d.ts +2 -1
  88. package/dist/src/core/diagnostics.d.ts.map +1 -1
  89. package/dist/src/core/diagnostics.js +3 -3
  90. package/dist/src/core/diagnostics.js.map +1 -1
  91. package/dist/src/core/entrypoint-resolution.d.ts +2 -2
  92. package/dist/src/core/entrypoint-resolution.d.ts.map +1 -1
  93. package/dist/src/core/entrypoint-resolution.js +28 -2
  94. package/dist/src/core/entrypoint-resolution.js.map +1 -1
  95. package/dist/src/core/external-error.d.ts +1 -1
  96. package/dist/src/core/external-error.d.ts.map +1 -1
  97. package/dist/src/core/formatter-fs.d.ts +1 -1
  98. package/dist/src/core/formatter-fs.d.ts.map +1 -1
  99. package/dist/src/core/formatter-fs.js.map +1 -1
  100. package/dist/src/core/helpers/discriminator-utils.d.ts +3 -3
  101. package/dist/src/core/helpers/discriminator-utils.d.ts.map +1 -1
  102. package/dist/src/core/helpers/discriminator-utils.js +1 -1
  103. package/dist/src/core/helpers/discriminator-utils.js.map +1 -1
  104. package/dist/src/core/helpers/index.d.ts +4 -2
  105. package/dist/src/core/helpers/index.d.ts.map +1 -1
  106. package/dist/src/core/helpers/index.js.map +1 -1
  107. package/dist/src/core/helpers/operation-utils.d.ts +1 -1
  108. package/dist/src/core/helpers/operation-utils.d.ts.map +1 -1
  109. package/dist/src/core/helpers/raw-text-cache.d.ts +1 -1
  110. package/dist/src/core/helpers/raw-text-cache.d.ts.map +1 -1
  111. package/dist/src/core/helpers/raw-text-cache.js.map +1 -1
  112. package/dist/src/core/helpers/syntax-utils.d.ts +1 -1
  113. package/dist/src/core/helpers/syntax-utils.d.ts.map +1 -1
  114. package/dist/src/core/helpers/syntax-utils.js +4 -4
  115. package/dist/src/core/helpers/syntax-utils.js.map +1 -1
  116. package/dist/src/core/helpers/usage-resolver.d.ts +1 -1
  117. package/dist/src/core/helpers/usage-resolver.d.ts.map +1 -1
  118. package/dist/src/core/inspector/symbol.d.ts.map +1 -1
  119. package/dist/src/core/inspector/symbol.js +18 -18
  120. package/dist/src/core/inspector/symbol.js.map +1 -1
  121. package/dist/src/core/intrinsic-type-state.d.ts +1 -1
  122. package/dist/src/core/intrinsic-type-state.d.ts.map +1 -1
  123. package/dist/src/core/js-marshaller.d.ts +1 -1
  124. package/dist/src/core/js-marshaller.d.ts.map +1 -1
  125. package/dist/src/core/library.d.ts +1 -1
  126. package/dist/src/core/library.d.ts.map +1 -1
  127. package/dist/src/core/library.js +2 -0
  128. package/dist/src/core/library.js.map +1 -1
  129. package/dist/src/core/linter-rules/unused-using.rule.d.ts.map +1 -1
  130. package/dist/src/core/linter-rules/unused-using.rule.js.map +1 -1
  131. package/dist/src/core/linter.d.ts +4 -3
  132. package/dist/src/core/linter.d.ts.map +1 -1
  133. package/dist/src/core/linter.js +37 -5
  134. package/dist/src/core/linter.js.map +1 -1
  135. package/dist/src/core/logger/console-sink.d.ts +1 -1
  136. package/dist/src/core/logger/console-sink.d.ts.map +1 -1
  137. package/dist/src/core/logger/dynamic-task.d.ts +1 -1
  138. package/dist/src/core/logger/dynamic-task.d.ts.map +1 -1
  139. package/dist/src/core/logger/tracer.d.ts +1 -1
  140. package/dist/src/core/logger/tracer.d.ts.map +1 -1
  141. package/dist/src/core/messages.d.ts +38 -2
  142. package/dist/src/core/messages.d.ts.map +1 -1
  143. package/dist/src/core/messages.js +12 -0
  144. package/dist/src/core/messages.js.map +1 -1
  145. package/dist/src/core/modifiers.d.ts +3 -2
  146. package/dist/src/core/modifiers.d.ts.map +1 -1
  147. package/dist/src/core/modifiers.js +17 -17
  148. package/dist/src/core/modifiers.js.map +1 -1
  149. package/dist/src/core/name-resolver.d.ts +9 -3
  150. package/dist/src/core/name-resolver.d.ts.map +1 -1
  151. package/dist/src/core/name-resolver.js +46 -41
  152. package/dist/src/core/name-resolver.js.map +1 -1
  153. package/dist/src/core/node-host.d.ts +1 -1
  154. package/dist/src/core/node-host.d.ts.map +1 -1
  155. package/dist/src/core/node-system-host.d.ts +1 -1
  156. package/dist/src/core/node-system-host.d.ts.map +1 -1
  157. package/dist/src/core/options.d.ts +2 -2
  158. package/dist/src/core/options.d.ts.map +1 -1
  159. package/dist/src/core/parser.d.ts +1 -1
  160. package/dist/src/core/parser.d.ts.map +1 -1
  161. package/dist/src/core/parser.js +22 -17
  162. package/dist/src/core/parser.js.map +1 -1
  163. package/dist/src/core/path-utils.js +140 -11
  164. package/dist/src/core/path-utils.js.map +1 -1
  165. package/dist/src/core/program.d.ts +3 -3
  166. package/dist/src/core/program.d.ts.map +1 -1
  167. package/dist/src/core/program.js +52 -10
  168. package/dist/src/core/program.js.map +1 -1
  169. package/dist/src/core/scanner.d.ts +2 -2
  170. package/dist/src/core/scanner.d.ts.map +1 -1
  171. package/dist/src/core/scanner.js +134 -128
  172. package/dist/src/core/scanner.js.map +1 -1
  173. package/dist/src/core/schema-validator.d.ts +1 -1
  174. package/dist/src/core/schema-validator.d.ts.map +1 -1
  175. package/dist/src/core/schema-validator.js +1 -1
  176. package/dist/src/core/schema-validator.js.map +1 -1
  177. package/dist/src/core/semantic-walker.d.ts +1 -1
  178. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  179. package/dist/src/core/semantic-walker.js +1 -1
  180. package/dist/src/core/semantic-walker.js.map +1 -1
  181. package/dist/src/core/source-file.js +4 -3
  182. package/dist/src/core/source-file.js.map +1 -1
  183. package/dist/src/core/source-loader.d.ts +3 -2
  184. package/dist/src/core/source-loader.d.ts.map +1 -1
  185. package/dist/src/core/source-loader.js +5 -5
  186. package/dist/src/core/source-loader.js.map +1 -1
  187. package/dist/src/core/suppression-tracking.d.ts +17 -5
  188. package/dist/src/core/suppression-tracking.d.ts.map +1 -1
  189. package/dist/src/core/suppression-tracking.js +42 -7
  190. package/dist/src/core/suppression-tracking.js.map +1 -1
  191. package/dist/src/core/type-relation-checker.d.ts +3 -3
  192. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  193. package/dist/src/core/type-relation-checker.js +1 -1
  194. package/dist/src/core/type-relation-checker.js.map +1 -1
  195. package/dist/src/core/type-utils.d.ts +1 -1
  196. package/dist/src/core/type-utils.d.ts.map +1 -1
  197. package/dist/src/core/type-utils.js +3 -3
  198. package/dist/src/core/type-utils.js.map +1 -1
  199. package/dist/src/core/types.d.ts +16 -0
  200. package/dist/src/core/types.d.ts.map +1 -1
  201. package/dist/src/core/types.js +81 -0
  202. package/dist/src/core/types.js.map +1 -1
  203. package/dist/src/core/visibility/core.d.ts +1 -1
  204. package/dist/src/core/visibility/core.d.ts.map +1 -1
  205. package/dist/src/experimental/index.d.ts +2 -1
  206. package/dist/src/experimental/index.d.ts.map +1 -1
  207. package/dist/src/experimental/index.js.map +1 -1
  208. package/dist/src/experimental/mutators.d.ts +2 -2
  209. package/dist/src/experimental/mutators.d.ts.map +1 -1
  210. package/dist/src/experimental/realm.d.ts +2 -2
  211. package/dist/src/experimental/realm.d.ts.map +1 -1
  212. package/dist/src/experimental/typekit/index.d.ts +1 -1
  213. package/dist/src/experimental/typekit/index.d.ts.map +1 -1
  214. package/dist/src/formatter/index.d.ts +1 -1
  215. package/dist/src/formatter/index.d.ts.map +1 -1
  216. package/dist/src/formatter/parser.d.ts +1 -1
  217. package/dist/src/formatter/parser.d.ts.map +1 -1
  218. package/dist/src/formatter/parser.js.map +1 -1
  219. package/dist/src/formatter/print/comment-handler.d.ts +1 -1
  220. package/dist/src/formatter/print/comment-handler.d.ts.map +1 -1
  221. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  222. package/dist/src/formatter/print/index.d.ts +1 -1
  223. package/dist/src/formatter/print/index.d.ts.map +1 -1
  224. package/dist/src/formatter/print/index.js +0 -1
  225. package/dist/src/formatter/print/index.js.map +1 -1
  226. package/dist/src/formatter/print/needs-parens.d.ts +2 -2
  227. package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
  228. package/dist/src/formatter/print/needs-parens.js.map +1 -1
  229. package/dist/src/formatter/print/printer.d.ts +3 -3
  230. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  231. package/dist/src/formatter/print/printer.js +2 -2
  232. package/dist/src/formatter/print/printer.js.map +1 -1
  233. package/dist/src/formatter/print/types.d.ts +1 -1
  234. package/dist/src/formatter/print/types.d.ts.map +1 -1
  235. package/dist/src/formatter/types.d.ts +1 -1
  236. package/dist/src/formatter/types.d.ts.map +1 -1
  237. package/dist/src/index.d.ts +10 -5
  238. package/dist/src/index.d.ts.map +1 -1
  239. package/dist/src/index.js +2 -4
  240. package/dist/src/index.js.map +1 -1
  241. package/dist/src/init/init-template-validate.d.ts +1 -1
  242. package/dist/src/init/init-template-validate.d.ts.map +1 -1
  243. package/dist/src/init/init-template.d.ts +1 -1
  244. package/dist/src/init/init-template.d.ts.map +1 -1
  245. package/dist/src/init/init.d.ts +2 -2
  246. package/dist/src/init/init.d.ts.map +1 -1
  247. package/dist/src/init/init.js +11 -3
  248. package/dist/src/init/init.js.map +1 -1
  249. package/dist/src/install/install.d.ts.map +1 -1
  250. package/dist/src/install/install.js +1 -1
  251. package/dist/src/install/install.js.map +1 -1
  252. package/dist/src/internals/index.d.ts +1 -1
  253. package/dist/src/internals/index.d.ts.map +1 -1
  254. package/dist/src/internals/standalone.d.ts +15 -0
  255. package/dist/src/internals/standalone.d.ts.map +1 -0
  256. package/dist/src/internals/standalone.js +14 -0
  257. package/dist/src/internals/standalone.js.map +1 -0
  258. package/dist/src/lib/decorators.d.ts +4 -4
  259. package/dist/src/lib/decorators.d.ts.map +1 -1
  260. package/dist/src/lib/decorators.js +1 -1
  261. package/dist/src/lib/decorators.js.map +1 -1
  262. package/dist/src/lib/examples.d.ts +1 -1
  263. package/dist/src/lib/examples.d.ts.map +1 -1
  264. package/dist/src/lib/intrinsic/decorators.d.ts.map +1 -1
  265. package/dist/src/lib/intrinsic/decorators.js.map +1 -1
  266. package/dist/src/lib/key.d.ts +2 -2
  267. package/dist/src/lib/key.d.ts.map +1 -1
  268. package/dist/src/lib/paging.d.ts +1 -1
  269. package/dist/src/lib/paging.d.ts.map +1 -1
  270. package/dist/src/lib/service.d.ts +1 -1
  271. package/dist/src/lib/service.d.ts.map +1 -1
  272. package/dist/src/lib/visibility.d.ts +1 -1
  273. package/dist/src/lib/visibility.d.ts.map +1 -1
  274. package/dist/src/lib/visibility.js +1 -1
  275. package/dist/src/lib/visibility.js.map +1 -1
  276. package/dist/src/module-resolver/esm/resolve-package-exports.d.ts +2 -2
  277. package/dist/src/module-resolver/esm/resolve-package-exports.d.ts.map +1 -1
  278. package/dist/src/module-resolver/esm/resolve-package-exports.js +1 -1
  279. package/dist/src/module-resolver/esm/resolve-package-exports.js.map +1 -1
  280. package/dist/src/module-resolver/esm/resolve-package-imports-exports.d.ts +2 -2
  281. package/dist/src/module-resolver/esm/resolve-package-imports-exports.d.ts.map +1 -1
  282. package/dist/src/module-resolver/esm/resolve-package-imports-exports.js.map +1 -1
  283. package/dist/src/module-resolver/esm/resolve-package-imports.d.ts +2 -2
  284. package/dist/src/module-resolver/esm/resolve-package-imports.d.ts.map +1 -1
  285. package/dist/src/module-resolver/esm/resolve-package-imports.js +1 -1
  286. package/dist/src/module-resolver/esm/resolve-package-imports.js.map +1 -1
  287. package/dist/src/module-resolver/esm/resolve-package-target.d.ts +2 -2
  288. package/dist/src/module-resolver/esm/resolve-package-target.d.ts.map +1 -1
  289. package/dist/src/module-resolver/esm/resolve-package-target.js +1 -1
  290. package/dist/src/module-resolver/esm/resolve-package-target.js.map +1 -1
  291. package/dist/src/module-resolver/module-resolver.d.ts +1 -1
  292. package/dist/src/module-resolver/module-resolver.d.ts.map +1 -1
  293. package/dist/src/module-resolver/module-resolver.js.map +1 -1
  294. package/dist/src/module-resolver/node-package-resolver.d.ts +1 -1
  295. package/dist/src/module-resolver/node-package-resolver.d.ts.map +1 -1
  296. package/dist/src/module-resolver/types.d.ts +1 -1
  297. package/dist/src/module-resolver/types.d.ts.map +1 -1
  298. package/dist/src/package-manger/npm-package-download.d.ts +1 -1
  299. package/dist/src/package-manger/npm-package-download.d.ts.map +1 -1
  300. package/dist/src/runner.d.ts.map +1 -1
  301. package/dist/src/runner.js.map +1 -1
  302. package/dist/src/server/classify.d.ts +2 -2
  303. package/dist/src/server/classify.d.ts.map +1 -1
  304. package/dist/src/server/classify.js +1 -1
  305. package/dist/src/server/classify.js.map +1 -1
  306. package/dist/src/server/client-config-provider.d.ts +1 -1
  307. package/dist/src/server/client-config-provider.d.ts.map +1 -1
  308. package/dist/src/server/compile-service.d.ts +9 -9
  309. package/dist/src/server/compile-service.d.ts.map +1 -1
  310. package/dist/src/server/compile-service.js +1 -1
  311. package/dist/src/server/compile-service.js.map +1 -1
  312. package/dist/src/server/completion.d.ts +3 -3
  313. package/dist/src/server/completion.d.ts.map +1 -1
  314. package/dist/src/server/completion.js +25 -9
  315. package/dist/src/server/completion.js.map +1 -1
  316. package/dist/src/server/constants.d.ts +1 -1
  317. package/dist/src/server/constants.d.ts.map +1 -1
  318. package/dist/src/server/diagnostics.d.ts +1 -1
  319. package/dist/src/server/diagnostics.d.ts.map +1 -1
  320. package/dist/src/server/diagnostics.js.map +1 -1
  321. package/dist/src/server/entrypoint-resolver.d.ts +3 -3
  322. package/dist/src/server/entrypoint-resolver.d.ts.map +1 -1
  323. package/dist/src/server/file-service.d.ts +3 -3
  324. package/dist/src/server/file-service.d.ts.map +1 -1
  325. package/dist/src/server/file-system-cache.d.ts +4 -4
  326. package/dist/src/server/file-system-cache.d.ts.map +1 -1
  327. package/dist/src/server/lib-provider.d.ts +1 -1
  328. package/dist/src/server/lib-provider.d.ts.map +1 -1
  329. package/dist/src/server/npm-package-provider.d.ts +3 -3
  330. package/dist/src/server/npm-package-provider.d.ts.map +1 -1
  331. package/dist/src/server/npm-package-provider.js.map +1 -1
  332. package/dist/src/server/rename-file.d.ts +1 -1
  333. package/dist/src/server/rename-file.d.ts.map +1 -1
  334. package/dist/src/server/server-compile-manager.d.ts +2 -2
  335. package/dist/src/server/server-compile-manager.d.ts.map +1 -1
  336. package/dist/src/server/server-compile-manager.js +1 -1
  337. package/dist/src/server/server-compile-manager.js.map +1 -1
  338. package/dist/src/server/server-track-action-task.d.ts +2 -2
  339. package/dist/src/server/server-track-action-task.d.ts.map +1 -1
  340. package/dist/src/server/server.js +1 -1
  341. package/dist/src/server/server.js.map +1 -1
  342. package/dist/src/server/serverlib.d.ts +2 -2
  343. package/dist/src/server/serverlib.d.ts.map +1 -1
  344. package/dist/src/server/serverlib.js +97 -21
  345. package/dist/src/server/serverlib.js.map +1 -1
  346. package/dist/src/server/symbol-structure.d.ts.map +1 -1
  347. package/dist/src/server/symbol-structure.js.map +1 -1
  348. package/dist/src/server/tspconfig/completion.d.ts +6 -5
  349. package/dist/src/server/tspconfig/completion.d.ts.map +1 -1
  350. package/dist/src/server/tspconfig/completion.js +1 -1
  351. package/dist/src/server/tspconfig/completion.js.map +1 -1
  352. package/dist/src/server/type-details.js.map +1 -1
  353. package/dist/src/server/type-signature.js +2 -2
  354. package/dist/src/server/type-signature.js.map +1 -1
  355. package/dist/src/server/types.d.ts +5 -5
  356. package/dist/src/server/types.d.ts.map +1 -1
  357. package/dist/src/server/types.js.map +1 -1
  358. package/dist/src/server/update-manager.d.ts +3 -3
  359. package/dist/src/server/update-manager.d.ts.map +1 -1
  360. package/dist/src/server/yaml-resolver.d.ts +3 -3
  361. package/dist/src/server/yaml-resolver.d.ts.map +1 -1
  362. package/dist/src/server/yaml-resolver.js +1 -1
  363. package/dist/src/server/yaml-resolver.js.map +1 -1
  364. package/dist/src/testing/fs.d.ts +1 -1
  365. package/dist/src/testing/fs.d.ts.map +1 -1
  366. package/dist/src/testing/fs.js.map +1 -1
  367. package/dist/src/testing/rule-tester.d.ts +4 -4
  368. package/dist/src/testing/rule-tester.d.ts.map +1 -1
  369. package/dist/src/testing/rule-tester.js.map +1 -1
  370. package/dist/src/testing/test-compiler-host.d.ts +2 -2
  371. package/dist/src/testing/test-compiler-host.d.ts.map +1 -1
  372. package/dist/src/testing/test-compiler-host.js.map +1 -1
  373. package/dist/src/testing/test-host.d.ts +1 -1
  374. package/dist/src/testing/test-host.d.ts.map +1 -1
  375. package/dist/src/testing/test-host.js.map +1 -1
  376. package/dist/src/testing/test-server-host.d.ts +5 -5
  377. package/dist/src/testing/test-server-host.d.ts.map +1 -1
  378. package/dist/src/testing/test-server-host.js.map +1 -1
  379. package/dist/src/testing/test-utils.d.ts +2 -2
  380. package/dist/src/testing/test-utils.d.ts.map +1 -1
  381. package/dist/src/testing/tester.d.ts +1 -1
  382. package/dist/src/testing/tester.d.ts.map +1 -1
  383. package/dist/src/testing/tester.js.map +1 -1
  384. package/dist/src/testing/types.d.ts +3 -3
  385. package/dist/src/testing/types.d.ts.map +1 -1
  386. package/dist/src/typekit/create-diagnosable.d.ts +2 -2
  387. package/dist/src/typekit/create-diagnosable.d.ts.map +1 -1
  388. package/dist/src/typekit/define-kit.d.ts +2 -2
  389. package/dist/src/typekit/define-kit.d.ts.map +1 -1
  390. package/dist/src/typekit/index.d.ts +5 -3
  391. package/dist/src/typekit/index.d.ts.map +1 -1
  392. package/dist/src/typekit/index.js +1 -1
  393. package/dist/src/typekit/index.js.map +1 -1
  394. package/dist/src/typekit/kits/array.d.ts +1 -1
  395. package/dist/src/typekit/kits/array.d.ts.map +1 -1
  396. package/dist/src/typekit/kits/entity.d.ts +1 -1
  397. package/dist/src/typekit/kits/entity.d.ts.map +1 -1
  398. package/dist/src/typekit/kits/entity.js.map +1 -1
  399. package/dist/src/typekit/kits/enum-member.d.ts +1 -1
  400. package/dist/src/typekit/kits/enum-member.d.ts.map +1 -1
  401. package/dist/src/typekit/kits/enum-member.js.map +1 -1
  402. package/dist/src/typekit/kits/enum.d.ts +1 -1
  403. package/dist/src/typekit/kits/enum.d.ts.map +1 -1
  404. package/dist/src/typekit/kits/enum.js.map +1 -1
  405. package/dist/src/typekit/kits/literal.d.ts +1 -1
  406. package/dist/src/typekit/kits/literal.d.ts.map +1 -1
  407. package/dist/src/typekit/kits/model-property.d.ts +1 -1
  408. package/dist/src/typekit/kits/model-property.d.ts.map +1 -1
  409. package/dist/src/typekit/kits/model-property.js.map +1 -1
  410. package/dist/src/typekit/kits/model.d.ts +3 -3
  411. package/dist/src/typekit/kits/model.d.ts.map +1 -1
  412. package/dist/src/typekit/kits/model.js +1 -1
  413. package/dist/src/typekit/kits/model.js.map +1 -1
  414. package/dist/src/typekit/kits/operation.d.ts +3 -3
  415. package/dist/src/typekit/kits/operation.d.ts.map +1 -1
  416. package/dist/src/typekit/kits/operation.js.map +1 -1
  417. package/dist/src/typekit/kits/record.d.ts +1 -1
  418. package/dist/src/typekit/kits/record.d.ts.map +1 -1
  419. package/dist/src/typekit/kits/tuple.d.ts +1 -1
  420. package/dist/src/typekit/kits/tuple.d.ts.map +1 -1
  421. package/dist/src/typekit/kits/type.d.ts +2 -2
  422. package/dist/src/typekit/kits/type.d.ts.map +1 -1
  423. package/dist/src/typekit/kits/type.js.map +1 -1
  424. package/dist/src/typekit/kits/union-variant.d.ts +1 -1
  425. package/dist/src/typekit/kits/union-variant.d.ts.map +1 -1
  426. package/dist/src/typekit/kits/union-variant.js.map +1 -1
  427. package/dist/src/typekit/kits/union.d.ts +3 -3
  428. package/dist/src/typekit/kits/union.d.ts.map +1 -1
  429. package/dist/src/typekit/kits/union.js +1 -1
  430. package/dist/src/typekit/kits/union.js.map +1 -1
  431. package/dist/src/typekit/kits/value.d.ts +1 -1
  432. package/dist/src/typekit/kits/value.d.ts.map +1 -1
  433. package/dist/src/typekit/kits/value.js.map +1 -1
  434. package/dist/src/typekit/utils/get-plausible-name.d.ts +1 -1
  435. package/dist/src/typekit/utils/get-plausible-name.d.ts.map +1 -1
  436. package/dist/src/typekit/utils.d.ts +1 -1
  437. package/dist/src/typekit/utils.d.ts.map +1 -1
  438. package/dist/src/utils/io.d.ts +3 -2
  439. package/dist/src/utils/io.d.ts.map +1 -1
  440. package/dist/src/utils/io.js +1 -1
  441. package/dist/src/utils/io.js.map +1 -1
  442. package/dist/src/utils/misc.d.ts +2 -3
  443. package/dist/src/utils/misc.d.ts.map +1 -1
  444. package/dist/src/utils/misc.js +2 -3
  445. package/dist/src/utils/misc.js.map +1 -1
  446. package/dist/src/yaml/diagnostics.d.ts +2 -2
  447. package/dist/src/yaml/diagnostics.d.ts.map +1 -1
  448. package/dist/src/yaml/diagnostics.js.map +1 -1
  449. package/dist/src/yaml/index.d.ts +1 -1
  450. package/dist/src/yaml/index.d.ts.map +1 -1
  451. package/dist/src/yaml/index.js +0 -1
  452. package/dist/src/yaml/index.js.map +1 -1
  453. package/dist/src/yaml/parser.d.ts +2 -2
  454. package/dist/src/yaml/parser.d.ts.map +1 -1
  455. package/dist/src/yaml/parser.js.map +1 -1
  456. package/dist/src/yaml/types.d.ts +1 -1
  457. package/dist/src/yaml/types.d.ts.map +1 -1
  458. package/entrypoints/cli.js +3 -1
  459. package/package.json +9 -5
  460. package/templates/__snapshots__/empty/main.tsp +0 -0
  461. package/templates/__snapshots__/empty/package.json +9 -0
  462. package/templates/__snapshots__/empty/tspconfig.yaml +18 -0
  463. package/templates/scaffolding.json +12 -3
@@ -22,7 +22,7 @@ import { Numeric } from "./numeric.js";
22
22
  import { exprIsBareIdentifier, getFirstAncestor, getIdentifierContext, hasParseError, visitChildren, } from "./parser.js";
23
23
  import { createTypeRelationChecker } from "./type-relation-checker.js";
24
24
  import { getFullyQualifiedSymbolName, getParentTemplateNode, isArrayModelType, isErrorType, isNullType, isTemplateInstance, isType, isValue, } from "./type-utils.js";
25
- import { IdentifierKind, ResolutionResultFlags, SyntaxKind, } from "./types.js";
25
+ import { IdentifierKind, ModifierFlags, ResolutionResultFlags, SymbolFlags, SyntaxKind, } from "./types.js";
26
26
  var CheckFlags;
27
27
  (function (CheckFlags) {
28
28
  /** No flags set. */
@@ -229,7 +229,7 @@ export function createChecker(program, resolver) {
229
229
  function initializeTypeSpecIntrinsics() {
230
230
  // a utility function to log strings or numbers
231
231
  mutate(typespecNamespaceBinding.exports).set("log", {
232
- flags: 2048 /* SymbolFlags.Function */,
232
+ flags: SymbolFlags.Function,
233
233
  name: "log",
234
234
  value(p, ...strs) {
235
235
  program.trace("log", strs.join(" "));
@@ -245,7 +245,7 @@ export function createChecker(program, resolver) {
245
245
  ];
246
246
  for (const decorator of internalDecorators) {
247
247
  if (decorator) {
248
- mutate(decorator).flags |= 8388608 /* SymbolFlags.Internal */;
248
+ mutate(decorator).flags |= SymbolFlags.Internal;
249
249
  }
250
250
  }
251
251
  // Until we have an `unit` type for `null`
@@ -259,7 +259,7 @@ export function createChecker(program, resolver) {
259
259
  }
260
260
  const sym = typespecNamespaceBinding?.exports?.get(name);
261
261
  compilerAssert(sym, `Unexpected missing symbol to std type "${name}"`);
262
- if (sym.flags & 2 /* SymbolFlags.Model */) {
262
+ if (sym.flags & SymbolFlags.Model) {
263
263
  checkModelStatement(CheckContext.DEFAULT, sym.declarations[0]);
264
264
  }
265
265
  else {
@@ -1013,27 +1013,27 @@ export function createChecker(program, resolver) {
1013
1013
  return entity;
1014
1014
  }
1015
1015
  function checkTypeOrValueReferenceSymbolWorker(ctx, sym, node, instantiateTemplates = true) {
1016
- if (sym.flags & 131072 /* SymbolFlags.Const */) {
1016
+ if (sym.flags & SymbolFlags.Const) {
1017
1017
  return getValueForNode(sym.declarations[0], ctx.mapper);
1018
1018
  }
1019
- if (sym.flags & 512 /* SymbolFlags.Decorator */) {
1019
+ if (sym.flags & SymbolFlags.Decorator) {
1020
1020
  reportCheckerDiagnostic(createDiagnostic({ code: "invalid-type-ref", messageId: "decorator", target: sym }));
1021
1021
  return errorType;
1022
1022
  }
1023
- if (sym.flags & 2048 /* SymbolFlags.Function */) {
1023
+ if (sym.flags & SymbolFlags.Function) {
1024
1024
  return getValueForNode(sym.declarations[0], ctx);
1025
1025
  }
1026
1026
  const argumentNodes = node.kind === SyntaxKind.TypeReference ? node.arguments : [];
1027
1027
  const symbolLinks = getSymbolLinks(sym);
1028
1028
  let baseType;
1029
- if (sym.flags & 1048576 /* SymbolFlags.Declaration */ &&
1029
+ if (sym.flags & SymbolFlags.Declaration &&
1030
1030
  sym.flags &
1031
- (2 /* SymbolFlags.Model */ |
1032
- 4 /* SymbolFlags.Scalar */ |
1033
- 128 /* SymbolFlags.Alias */ |
1034
- 32 /* SymbolFlags.Interface */ |
1035
- 8 /* SymbolFlags.Operation */ |
1036
- 64 /* SymbolFlags.Union */)) {
1031
+ (SymbolFlags.Model |
1032
+ SymbolFlags.Scalar |
1033
+ SymbolFlags.Alias |
1034
+ SymbolFlags.Interface |
1035
+ SymbolFlags.Operation |
1036
+ SymbolFlags.Union)) {
1037
1037
  const decl = sym.declarations[0];
1038
1038
  if (!isTemplatedNode(decl)) {
1039
1039
  // Not a templated node, and we are moving through a typeref to a new declaration.
@@ -1049,14 +1049,14 @@ export function createChecker(program, resolver) {
1049
1049
  target: node,
1050
1050
  }));
1051
1051
  }
1052
- if (sym.flags & 4194304 /* SymbolFlags.LateBound */) {
1052
+ if (sym.flags & SymbolFlags.LateBound) {
1053
1053
  compilerAssert(sym.type, "Expected late bound symbol to have type");
1054
1054
  return sym.type;
1055
1055
  }
1056
1056
  else if (symbolLinks.declaredType) {
1057
1057
  baseType = symbolLinks.declaredType;
1058
1058
  }
1059
- else if (sym.flags & 65536 /* SymbolFlags.Member */) {
1059
+ else if (sym.flags & SymbolFlags.Member) {
1060
1060
  baseType = checkMemberSym(innerCtx, sym);
1061
1061
  }
1062
1062
  else {
@@ -1089,11 +1089,11 @@ export function createChecker(program, resolver) {
1089
1089
  target: node,
1090
1090
  }));
1091
1091
  }
1092
- if (sym.flags & 4194304 /* SymbolFlags.LateBound */) {
1092
+ if (sym.flags & SymbolFlags.LateBound) {
1093
1093
  compilerAssert(sym.type, `Expected late bound symbol to have type`);
1094
1094
  return sym.type;
1095
1095
  }
1096
- else if (sym.flags & 1024 /* SymbolFlags.TemplateParameter */) {
1096
+ else if (sym.flags & SymbolFlags.TemplateParameter) {
1097
1097
  const mapped = checkTemplateParameterDeclaration(ctx, symNode);
1098
1098
  baseType = mapped;
1099
1099
  }
@@ -1105,7 +1105,7 @@ export function createChecker(program, resolver) {
1105
1105
  baseType = symbolLinks.declaredType;
1106
1106
  }
1107
1107
  else {
1108
- if (sym.flags & 65536 /* SymbolFlags.Member */) {
1108
+ if (sym.flags & SymbolFlags.Member) {
1109
1109
  baseType = checkMemberSym(ctx, sym);
1110
1110
  }
1111
1111
  else {
@@ -1143,11 +1143,11 @@ export function createChecker(program, resolver) {
1143
1143
  if (symbolLinks.declaredType) {
1144
1144
  return symbolLinks.declaredType;
1145
1145
  }
1146
- if (sym.flags & 4194304 /* SymbolFlags.LateBound */) {
1146
+ if (sym.flags & SymbolFlags.LateBound) {
1147
1147
  compilerAssert(sym.type, "Expected late bound symbol to have type");
1148
1148
  return sym.type;
1149
1149
  }
1150
- if (sym.flags & 65536 /* SymbolFlags.Member */) {
1150
+ if (sym.flags & SymbolFlags.Member) {
1151
1151
  return checkMemberSym(ctx, sym);
1152
1152
  }
1153
1153
  else {
@@ -1162,15 +1162,15 @@ export function createChecker(program, resolver) {
1162
1162
  * @returns The declared type for the given node.
1163
1163
  */
1164
1164
  function checkDeclaredTypeOrIndeterminate(ctx, sym, node) {
1165
- const type = sym.flags & 2 /* SymbolFlags.Model */
1165
+ const type = sym.flags & SymbolFlags.Model
1166
1166
  ? checkModelStatement(ctx, node)
1167
- : sym.flags & 4 /* SymbolFlags.Scalar */
1167
+ : sym.flags & SymbolFlags.Scalar
1168
1168
  ? checkScalar(ctx, node)
1169
- : sym.flags & 128 /* SymbolFlags.Alias */
1169
+ : sym.flags & SymbolFlags.Alias
1170
1170
  ? checkAlias(ctx, node)
1171
- : sym.flags & 32 /* SymbolFlags.Interface */
1171
+ : sym.flags & SymbolFlags.Interface
1172
1172
  ? checkInterface(ctx, node)
1173
- : sym.flags & 8 /* SymbolFlags.Operation */
1173
+ : sym.flags & SymbolFlags.Operation
1174
1174
  ? checkOperation(ctx, node)
1175
1175
  : checkUnion(ctx, node);
1176
1176
  return type;
@@ -1372,7 +1372,7 @@ export function createChecker(program, resolver) {
1372
1372
  const namespace = getParentNamespaceType(node);
1373
1373
  compilerAssert(namespace, `Decorator ${node.id.sv} should have resolved a namespace or found the global namespace.`);
1374
1374
  const name = node.id.sv;
1375
- const isAuto = (node.modifierFlags & 8 /* ModifierFlags.Auto */) !== 0;
1375
+ const isAuto = (node.modifierFlags & ModifierFlags.Auto) !== 0;
1376
1376
  if (isAuto && !isCompilerFeatureEnabled(program, "auto-decorators", node)) {
1377
1377
  reportCheckerDiagnostic(createDiagnostic({
1378
1378
  code: "auto-decorator-disabled",
@@ -1733,12 +1733,21 @@ export function createChecker(program, resolver) {
1733
1733
  if (ctx.mapper === undefined && inInterface) {
1734
1734
  compilerAssert(parentInterface, "Operation in interface should already have been checked.", node.parent);
1735
1735
  }
1736
+ // Enter the template declaration scope before checking the template declaration itself.
1737
+ // `checkTemplateDeclaration` resolves template parameter defaults (e.g.
1738
+ // `Properties extends {} = TagsUpdateModel<Resource>`), which can instantiate types and run
1739
+ // their decorators. Those instantiations still reference the enclosing template parameters, so
1740
+ // they must be treated as being in a template declaration (skipDecorators) to avoid running
1741
+ // decorators with unresolved template parameters. This mirrors what `checkModelStatement` does.
1742
+ if (ctx.mapper === undefined && node.templateParameters.length > 0) {
1743
+ ctx = ctx.withFlags(CheckFlags.InTemplateDeclaration);
1744
+ }
1736
1745
  checkTemplateDeclaration(ctx, node);
1737
1746
  // If we are instantating operation inside of interface
1738
1747
  if (isTemplatedNode(node) && ctx.mapper !== undefined && parentInterface) {
1739
1748
  ctx = ctx.withMapper({ ...ctx.mapper, partial: true });
1740
1749
  }
1741
- if ((ctx.mapper === undefined || ctx.mapper.partial) && node.templateParameters.length > 0) {
1750
+ if (ctx.mapper?.partial && node.templateParameters.length > 0) {
1742
1751
  ctx = ctx.withFlags(CheckFlags.InTemplateDeclaration);
1743
1752
  }
1744
1753
  const namespace = getParentNamespaceType(node);
@@ -1927,7 +1936,7 @@ export function createChecker(program, resolver) {
1927
1936
  if (sym) {
1928
1937
  const relatedSource = getRelatedSymbolSource(sym);
1929
1938
  if (relatedSource) {
1930
- return sym.flags & 4194304 /* SymbolFlags.LateBound */ ? [sym, relatedSource] : [relatedSource];
1939
+ return sym.flags & SymbolFlags.LateBound ? [sym, relatedSource] : [relatedSource];
1931
1940
  }
1932
1941
  return [sym];
1933
1942
  }
@@ -2227,13 +2236,13 @@ export function createChecker(program, resolver) {
2227
2236
  const memberExpression = identifier.parent;
2228
2237
  let baseType = getCompletionBaseType(memberExpression.base);
2229
2238
  let base = resolver.getNodeLinks(memberExpression.base).resolvedSymbol;
2230
- if (base && base.flags & 128 /* SymbolFlags.Alias */) {
2239
+ if (base && base.flags & SymbolFlags.Alias) {
2231
2240
  base = getAliasedSymbol(CheckContext.DEFAULT, base);
2232
2241
  }
2233
2242
  if (!baseType && base) {
2234
2243
  baseType = getCompletionBaseTypeFromSymbol(base);
2235
2244
  }
2236
- if (baseType && (!base || !!(base.flags & 1024 /* SymbolFlags.TemplateParameter */))) {
2245
+ if (baseType && (!base || !!(base.flags & SymbolFlags.TemplateParameter))) {
2237
2246
  if (memberExpression.selector === "::") {
2238
2247
  addMetaCompletionsForType(baseType);
2239
2248
  }
@@ -2289,10 +2298,13 @@ export function createChecker(program, resolver) {
2289
2298
  scope = scope.parent;
2290
2299
  }
2291
2300
  if (scope && scope.kind === SyntaxKind.TypeSpecScript) {
2292
- // check any blockless namespace decls
2293
- for (const ns of scope.inScopeNamespaces) {
2294
- const mergedSymbol = getMergedSymbol(ns.symbol);
2295
- addCompletions(mergedSymbol.exports);
2301
+ // The name of a `using` declared before the file namespace resolves from the global namespace only.
2302
+ if (!isUsingBeforeFileNamespace(identifier)) {
2303
+ // check any blockless namespace decls
2304
+ for (const ns of scope.inScopeNamespaces) {
2305
+ const mergedSymbol = getMergedSymbol(ns.symbol);
2306
+ addCompletions(mergedSymbol.exports);
2307
+ }
2296
2308
  }
2297
2309
  // check "global scope" declarations
2298
2310
  addCompletions(resolver.symbols.global.exports);
@@ -2321,13 +2333,13 @@ export function createChecker(program, resolver) {
2321
2333
  }
2322
2334
  /** Resolve a completion base type from a symbol when node-based typing is unavailable. */
2323
2335
  function getCompletionBaseTypeFromSymbol(base) {
2324
- if (base.flags & 4194304 /* SymbolFlags.LateBound */) {
2336
+ if (base.flags & SymbolFlags.LateBound) {
2325
2337
  const lateBoundType = base.type;
2326
2338
  return lateBoundType && isType(lateBoundType)
2327
2339
  ? resolveCompletionType(lateBoundType)
2328
2340
  : undefined;
2329
2341
  }
2330
- if (base.flags & 1024 /* SymbolFlags.TemplateParameter */) {
2342
+ if (base.flags & SymbolFlags.TemplateParameter) {
2331
2343
  const mapped = checkTemplateParameterDeclaration(CheckContext.DEFAULT, getSymNode(base));
2332
2344
  return isType(mapped) ? resolveCompletionType(mapped) : undefined;
2333
2345
  }
@@ -2402,10 +2414,10 @@ export function createChecker(program, resolver) {
2402
2414
  }
2403
2415
  table = resolver.getAugmentedSymbolTable(table);
2404
2416
  for (const [key, sym] of table) {
2405
- if (sym.flags & 16384 /* SymbolFlags.DuplicateUsing */) {
2417
+ if (sym.flags & SymbolFlags.DuplicateUsing) {
2406
2418
  const duplicates = table.duplicates.get(sym);
2407
2419
  for (const duplicate of duplicates) {
2408
- if (duplicate.flags & 8192 /* SymbolFlags.Using */) {
2420
+ if (duplicate.flags & SymbolFlags.Using) {
2409
2421
  const fqn = getFullyQualifiedSymbolName(duplicate.symbolSource);
2410
2422
  addCompletion(fqn, duplicate);
2411
2423
  }
@@ -2417,7 +2429,7 @@ export function createChecker(program, resolver) {
2417
2429
  }
2418
2430
  }
2419
2431
  function addCompletion(key, sym, options = {}) {
2420
- if (sym.symbolSource && !(sym.flags & 4194304 /* SymbolFlags.LateBound */)) {
2432
+ if (sym.symbolSource && !(sym.flags & SymbolFlags.LateBound)) {
2421
2433
  sym = sym.symbolSource;
2422
2434
  }
2423
2435
  if (!shouldAddCompletion(sym)) {
@@ -2435,21 +2447,21 @@ export function createChecker(program, resolver) {
2435
2447
  case IdentifierKind.ModelExpressionProperty:
2436
2448
  case IdentifierKind.ModelStatementProperty:
2437
2449
  case IdentifierKind.ObjectLiteralProperty:
2438
- return !!(sym.flags & 65536 /* SymbolFlags.Member */);
2450
+ return !!(sym.flags & SymbolFlags.Member);
2439
2451
  case IdentifierKind.Decorator:
2440
2452
  // Only return decorators and namespaces when completing decorator
2441
- return !!(sym.flags & (512 /* SymbolFlags.Decorator */ | 256 /* SymbolFlags.Namespace */));
2453
+ return !!(sym.flags & (SymbolFlags.Decorator | SymbolFlags.Namespace));
2442
2454
  case IdentifierKind.Function:
2443
2455
  // Only return functions and namespaces when completing function calls
2444
- return !!(sym.flags & (2048 /* SymbolFlags.Function */ | 256 /* SymbolFlags.Namespace */));
2456
+ return !!(sym.flags & (SymbolFlags.Function | SymbolFlags.Namespace));
2445
2457
  case IdentifierKind.Using:
2446
2458
  // Only return namespaces when completing using
2447
- return !!(sym.flags & 256 /* SymbolFlags.Namespace */);
2459
+ return !!(sym.flags & SymbolFlags.Namespace);
2448
2460
  case IdentifierKind.TypeReference:
2449
2461
  // Do not return decorators when completing types
2450
- return !(sym.flags & 512 /* SymbolFlags.Decorator */);
2462
+ return !(sym.flags & SymbolFlags.Decorator);
2451
2463
  case IdentifierKind.TemplateArgument:
2452
- return !!(sym.flags & 1024 /* SymbolFlags.TemplateParameter */);
2464
+ return !!(sym.flags & SymbolFlags.TemplateParameter);
2453
2465
  default:
2454
2466
  compilerAssert(false, "We should have bailed up-front on other kinds.");
2455
2467
  }
@@ -2522,7 +2534,7 @@ export function createChecker(program, resolver) {
2522
2534
  return directTemplateAccessSym;
2523
2535
  }
2524
2536
  // when resolving a type reference based on an alias, unwrap the alias.
2525
- if (base.flags & 128 /* SymbolFlags.Alias */) {
2537
+ if (base.flags & SymbolFlags.Alias) {
2526
2538
  if (!options.resolveDeclarationOfTemplate && isTemplatedNode(getSymNode(base))) {
2527
2539
  // This is a bare identifier reference to a templated alias, so we need to actually check this type.
2528
2540
  const ty = checkTypeReferenceSymbol(ctx.withMapper(undefined), base, node.base,
@@ -2620,7 +2632,7 @@ export function createChecker(program, resolver) {
2620
2632
  * @returns A concrete or late-bound symbol for the mapped access, or `undefined`.
2621
2633
  */
2622
2634
  function tryResolveMappedTemplateAccessSymbol(ctx, node, baseSym) {
2623
- if (!ctx.mapper || !(baseSym.flags & 1024 /* SymbolFlags.TemplateParameter */)) {
2635
+ if (!ctx.mapper || !(baseSym.flags & SymbolFlags.TemplateParameter)) {
2624
2636
  return undefined;
2625
2637
  }
2626
2638
  const declared = checkTemplateParameterDeclaration(CheckContext.DEFAULT, getSymNode(baseSym));
@@ -2696,14 +2708,14 @@ export function createChecker(program, resolver) {
2696
2708
  * Resolve the template entity (parameter or access) that acts as the base for a member expression.
2697
2709
  */
2698
2710
  function getTemplateAccessBaseEntity(_ctx, baseNode, baseSym) {
2699
- if (baseSym.flags & 4194304 /* SymbolFlags.LateBound */) {
2711
+ if (baseSym.flags & SymbolFlags.LateBound) {
2700
2712
  const lateBoundType = baseSym.type;
2701
2713
  if (lateBoundType && lateBoundType.kind === "TemplateParameterAccess") {
2702
2714
  return lateBoundType;
2703
2715
  }
2704
2716
  return undefined;
2705
2717
  }
2706
- if (baseSym.flags & 1024 /* SymbolFlags.TemplateParameter */) {
2718
+ if (baseSym.flags & SymbolFlags.TemplateParameter) {
2707
2719
  const baseSymbolNode = getSymNode(baseSym);
2708
2720
  const mapped = checkTemplateParameterDeclaration(CheckContext.DEFAULT, baseSymbolNode);
2709
2721
  return isType(mapped) && isTemplateAccessType(mapped) ? mapped : undefined;
@@ -2899,7 +2911,7 @@ export function createChecker(program, resolver) {
2899
2911
  return undefined;
2900
2912
  }
2901
2913
  let memberSymbol = getMemberSymbol(containerSymbol, memberName);
2902
- if (!memberSymbol?.type && containerSymbol.flags & 4194304 /* SymbolFlags.LateBound */) {
2914
+ if (!memberSymbol?.type && containerSymbol.flags & SymbolFlags.LateBound) {
2903
2915
  lateBindMembers(containerType);
2904
2916
  memberSymbol = getMemberSymbol(containerSymbol, memberName);
2905
2917
  }
@@ -3021,7 +3033,7 @@ export function createChecker(program, resolver) {
3021
3033
  constraint,
3022
3034
  });
3023
3035
  templateAccessCacheKeys.set(type, cacheKey);
3024
- const symbol = createSymbol(node, node.id.sv, 4194304 /* SymbolFlags.LateBound */);
3036
+ const symbol = createSymbol(node, node.id.sv, SymbolFlags.LateBound);
3025
3037
  mutate(symbol).type = type;
3026
3038
  if (useCache) {
3027
3039
  templateAccessSymbolCache.set(cacheKey, symbol);
@@ -3062,8 +3074,8 @@ export function createChecker(program, resolver) {
3062
3074
  function checkSymbolAccess(sourceLocation, node, symbol) {
3063
3075
  if (!symbol)
3064
3076
  return;
3065
- const isInternalDeclaration = (symbol.flags & (8388608 /* SymbolFlags.Internal */ | 1048576 /* SymbolFlags.Declaration */)) ===
3066
- (8388608 /* SymbolFlags.Internal */ | 1048576 /* SymbolFlags.Declaration */);
3077
+ const isInternalDeclaration = (symbol.flags & (SymbolFlags.Internal | SymbolFlags.Declaration)) ===
3078
+ (SymbolFlags.Internal | SymbolFlags.Declaration);
3067
3079
  if (isInternalDeclaration) {
3068
3080
  // The source location can access internal declaration symbols if:
3069
3081
  // 1. The source location is synthetic.
@@ -3115,13 +3127,13 @@ export function createChecker(program, resolver) {
3115
3127
  // When the member wasn't found but the container has unknown members (e.g. from
3116
3128
  // template spreads or `is`), force-check the container type so that late-bound
3117
3129
  // members become available, then retry the lookup.
3118
- if (node.selector === "." && base.flags & 118 /* SymbolFlags.MemberContainer */) {
3130
+ if (node.selector === "." && base.flags & SymbolFlags.MemberContainer) {
3119
3131
  const resolvedMember = tryForceResolveLateBoundMember(ctx, base, node);
3120
3132
  if (resolvedMember) {
3121
3133
  return resolvedMember;
3122
3134
  }
3123
3135
  }
3124
- if (base.flags & 256 /* SymbolFlags.Namespace */) {
3136
+ if (base.flags & SymbolFlags.Namespace) {
3125
3137
  reportCheckerDiagnostic(createDiagnostic({
3126
3138
  code: "invalid-ref",
3127
3139
  messageId: "underNamespace",
@@ -3132,7 +3144,7 @@ export function createChecker(program, resolver) {
3132
3144
  target: node,
3133
3145
  }));
3134
3146
  }
3135
- else if (base.flags & 512 /* SymbolFlags.Decorator */) {
3147
+ else if (base.flags & SymbolFlags.Decorator) {
3136
3148
  reportCheckerDiagnostic(createDiagnostic({
3137
3149
  code: "invalid-ref",
3138
3150
  messageId: "inDecorator",
@@ -3140,7 +3152,7 @@ export function createChecker(program, resolver) {
3140
3152
  target: node,
3141
3153
  }));
3142
3154
  }
3143
- else if (base.flags & 2048 /* SymbolFlags.Function */) {
3155
+ else if (base.flags & SymbolFlags.Function) {
3144
3156
  reportCheckerDiagnostic(createDiagnostic({
3145
3157
  code: "invalid-ref",
3146
3158
  messageId: "node",
@@ -3148,7 +3160,7 @@ export function createChecker(program, resolver) {
3148
3160
  target: node,
3149
3161
  }));
3150
3162
  }
3151
- else if (base.flags & 118 /* SymbolFlags.MemberContainer */) {
3163
+ else if (base.flags & SymbolFlags.MemberContainer) {
3152
3164
  reportCheckerDiagnostic(createDiagnostic({
3153
3165
  code: "invalid-ref",
3154
3166
  messageId: node.selector === "." ? "member" : "metaProperty",
@@ -3275,17 +3287,17 @@ export function createChecker(program, resolver) {
3275
3287
  }
3276
3288
  /** Resolve the effective type used for member lookup on a base symbol. */
3277
3289
  function getMemberResolutionType(_ctx, base) {
3278
- if (base.flags & 4194304 /* SymbolFlags.LateBound */) {
3290
+ if (base.flags & SymbolFlags.LateBound) {
3279
3291
  return base.type && isType(base.type) ? base.type : undefined;
3280
3292
  }
3281
- if (base.flags & 65536 /* SymbolFlags.Member */) {
3293
+ if (base.flags & SymbolFlags.Member) {
3282
3294
  return base.type && isType(base.type) ? base.type : undefined;
3283
3295
  }
3284
3296
  return undefined;
3285
3297
  }
3286
3298
  /** Create a late-bound symbol carrying a precomputed type for member resolution. */
3287
3299
  function createLateBoundTypeSymbol(node, type) {
3288
- const symbol = createSymbol(node, node.id.sv, 4194304 /* SymbolFlags.LateBound */);
3300
+ const symbol = createSymbol(node, node.id.sv, SymbolFlags.LateBound);
3289
3301
  mutate(symbol).type = type;
3290
3302
  const symbolSource = getTemplateAccessSymbolSource(type);
3291
3303
  if (symbolSource) {
@@ -3582,7 +3594,7 @@ export function createChecker(program, resolver) {
3582
3594
  if (!exports)
3583
3595
  return;
3584
3596
  for (const sym of exports.values()) {
3585
- if (sym.flags & 2048 /* SymbolFlags.Function */ && sym.flags & 2097152 /* SymbolFlags.Implementation */) {
3597
+ if (sym.flags & SymbolFlags.Function && sym.flags & SymbolFlags.Implementation) {
3586
3598
  const merged = getMergedSymbol(sym);
3587
3599
  const hasFunctionDeclaration = merged.declarations.some((d) => d.kind === SyntaxKind.FunctionDeclarationStatement);
3588
3600
  if (!hasFunctionDeclaration) {
@@ -3594,7 +3606,7 @@ export function createChecker(program, resolver) {
3594
3606
  }
3595
3607
  }
3596
3608
  // Recurse into namespace symbols
3597
- if (sym.flags & 256 /* SymbolFlags.Namespace */ && sym.exports) {
3609
+ if (sym.flags & SymbolFlags.Namespace && sym.exports) {
3598
3610
  checkSymbolTableForOrphanedFunctions(sym.exports, sourceFile);
3599
3611
  }
3600
3612
  }
@@ -4683,22 +4695,22 @@ export function createChecker(program, resolver) {
4683
4695
  function lateBindMemberContainer(type) {
4684
4696
  const existingSymbol = type.symbol;
4685
4697
  if (existingSymbol &&
4686
- !(isTemplateInstance(type) && !(existingSymbol.flags & 4194304 /* SymbolFlags.LateBound */))) {
4698
+ !(isTemplateInstance(type) && !(existingSymbol.flags & SymbolFlags.LateBound))) {
4687
4699
  return;
4688
4700
  }
4689
4701
  switch (type.kind) {
4690
4702
  case "Model":
4691
- type.symbol = createSymbol(type.node, type.name, 2 /* SymbolFlags.Model */ | 4194304 /* SymbolFlags.LateBound */);
4703
+ type.symbol = createSymbol(type.node, type.name, SymbolFlags.Model | SymbolFlags.LateBound);
4692
4704
  mutate(type.symbol).type = type;
4693
4705
  break;
4694
4706
  case "Interface":
4695
- type.symbol = createSymbol(type.node, type.name, 32 /* SymbolFlags.Interface */ | 4194304 /* SymbolFlags.LateBound */);
4707
+ type.symbol = createSymbol(type.node, type.name, SymbolFlags.Interface | SymbolFlags.LateBound);
4696
4708
  mutate(type.symbol).type = type;
4697
4709
  break;
4698
4710
  case "Union":
4699
4711
  if (!type.name)
4700
4712
  return; // don't make a symbol for anonymous unions
4701
- type.symbol = createSymbol(type.node, type.name, 64 /* SymbolFlags.Union */ | 4194304 /* SymbolFlags.LateBound */);
4713
+ type.symbol = createSymbol(type.node, type.name, SymbolFlags.Union | SymbolFlags.LateBound);
4702
4714
  mutate(type.symbol).type = type;
4703
4715
  break;
4704
4716
  }
@@ -4711,27 +4723,27 @@ export function createChecker(program, resolver) {
4711
4723
  switch (type.kind) {
4712
4724
  case "Model":
4713
4725
  for (const prop of walkPropertiesInherited(type)) {
4714
- lateBindMember(prop, 65536 /* SymbolFlags.Member */ | 1048576 /* SymbolFlags.Declaration */);
4726
+ lateBindMember(prop, SymbolFlags.Member | SymbolFlags.Declaration);
4715
4727
  }
4716
4728
  break;
4717
4729
  case "Scalar":
4718
4730
  for (const member of type.constructors.values()) {
4719
- lateBindMember(member, 65536 /* SymbolFlags.Member */ | 1048576 /* SymbolFlags.Declaration */);
4731
+ lateBindMember(member, SymbolFlags.Member | SymbolFlags.Declaration);
4720
4732
  }
4721
4733
  break;
4722
4734
  case "Enum":
4723
4735
  for (const member of type.members.values()) {
4724
- lateBindMember(member, 65536 /* SymbolFlags.Member */ | 1048576 /* SymbolFlags.Declaration */);
4736
+ lateBindMember(member, SymbolFlags.Member | SymbolFlags.Declaration);
4725
4737
  }
4726
4738
  break;
4727
4739
  case "Interface":
4728
4740
  for (const member of type.operations.values()) {
4729
- lateBindMember(member, 65536 /* SymbolFlags.Member */ | 8 /* SymbolFlags.Operation */ | 1048576 /* SymbolFlags.Declaration */);
4741
+ lateBindMember(member, SymbolFlags.Member | SymbolFlags.Operation | SymbolFlags.Declaration);
4730
4742
  }
4731
4743
  break;
4732
4744
  case "Union":
4733
4745
  for (const variant of type.variants.values()) {
4734
- lateBindMember(variant, 65536 /* SymbolFlags.Member */ | 1048576 /* SymbolFlags.Declaration */);
4746
+ lateBindMember(variant, SymbolFlags.Member | SymbolFlags.Declaration);
4735
4747
  }
4736
4748
  break;
4737
4749
  }
@@ -4740,7 +4752,7 @@ export function createChecker(program, resolver) {
4740
4752
  // don't bind anything for union expressions
4741
4753
  return;
4742
4754
  }
4743
- const sym = createSymbol(member.node, member.name, kind | 4194304 /* SymbolFlags.LateBound */, containerSym);
4755
+ const sym = createSymbol(member.node, member.name, kind | SymbolFlags.LateBound, containerSym);
4744
4756
  mutate(sym).type = member;
4745
4757
  const symbolSource = getTypeSymbol(member);
4746
4758
  if (symbolSource) {
@@ -5029,7 +5041,7 @@ export function createChecker(program, resolver) {
5029
5041
  const relatedSource = getRelatedSymbolSource(sym);
5030
5042
  return (docFromCommentForSym.get(sym) ??
5031
5043
  (relatedSource && docFromCommentForSym.get(relatedSource)) ??
5032
- (sym.flags & 4194304 /* SymbolFlags.LateBound */ && sym.type && isType(sym.type)
5044
+ (sym.flags & SymbolFlags.LateBound && sym.type && isType(sym.type)
5033
5045
  ? getDocCommentForType(sym.type)
5034
5046
  : undefined));
5035
5047
  }
@@ -5080,7 +5092,7 @@ export function createChecker(program, resolver) {
5080
5092
  // Error should already have been reported above
5081
5093
  return undefined;
5082
5094
  }
5083
- if (!(sym.flags & 512 /* SymbolFlags.Decorator */)) {
5095
+ if (!(sym.flags & SymbolFlags.Decorator)) {
5084
5096
  reportCheckerDiagnostic(createDiagnostic({
5085
5097
  code: "invalid-decorator",
5086
5098
  format: { id: sym.name },
@@ -5318,19 +5330,19 @@ export function createChecker(program, resolver) {
5318
5330
  }));
5319
5331
  }
5320
5332
  else if (links.finalSymbol?.flags &&
5321
- ~links.finalSymbol.flags & 1048576 /* SymbolFlags.Declaration */ &&
5322
- ~links.finalSymbol.flags & 65536 /* SymbolFlags.Member */) {
5333
+ ~links.finalSymbol.flags & SymbolFlags.Declaration &&
5334
+ ~links.finalSymbol.flags & SymbolFlags.Member) {
5323
5335
  program.reportDiagnostic(createDiagnostic({
5324
5336
  code: "augment-decorator-target",
5325
- messageId: links.finalSymbol.flags & 2 /* SymbolFlags.Model */
5337
+ messageId: links.finalSymbol.flags & SymbolFlags.Model
5326
5338
  ? "noModelExpression"
5327
- : links.finalSymbol.flags & 64 /* SymbolFlags.Union */
5339
+ : links.finalSymbol.flags & SymbolFlags.Union
5328
5340
  ? "noUnionExpression"
5329
5341
  : "default",
5330
5342
  target: node.targetType,
5331
5343
  }));
5332
5344
  }
5333
- else if (links.finalSymbol?.flags && links.finalSymbol.flags & 128 /* SymbolFlags.Alias */) {
5345
+ else if (links.finalSymbol?.flags && links.finalSymbol.flags & SymbolFlags.Alias) {
5334
5346
  const aliasNode = getSymNode(links.finalSymbol);
5335
5347
  program.reportDiagnostic(createDiagnostic({
5336
5348
  code: "augment-decorator-target",
@@ -5347,13 +5359,24 @@ export function createChecker(program, resolver) {
5347
5359
  function checkUsings(ctx, node) {
5348
5360
  const usedSym = resolveTypeReferenceSym(ctx.withMapper(undefined), node.name);
5349
5361
  if (usedSym) {
5350
- if (~usedSym.flags & 256 /* SymbolFlags.Namespace */) {
5362
+ if (~usedSym.flags & SymbolFlags.Namespace) {
5351
5363
  reportCheckerDiagnostic(createDiagnostic({ code: "using-invalid-ref", target: node.name }));
5352
5364
  }
5353
5365
  }
5354
5366
  // If this was used to get a type this is invalid, only used for validation.
5355
5367
  return errorType;
5356
5368
  }
5369
+ /**
5370
+ * Check whether the given identifier is part of the name of a `using` statement declared at the file level,
5371
+ * before the blockless namespace declaration.
5372
+ */
5373
+ function isUsingBeforeFileNamespace(identifier) {
5374
+ let node = identifier.parent;
5375
+ while (node?.kind === SyntaxKind.MemberExpression) {
5376
+ node = node.parent;
5377
+ }
5378
+ return node?.kind === SyntaxKind.UsingStatement && node.scopeNamespace === undefined;
5379
+ }
5357
5380
  function checkDecorators(ctx, targetType, node) {
5358
5381
  const sym = isMemberNode(node)
5359
5382
  ? (getSymbolForMember(node) ?? node.symbol)
@@ -5817,7 +5840,7 @@ export function createChecker(program, resolver) {
5817
5840
  });
5818
5841
  }
5819
5842
  function isMemberNode(node) {
5820
- return node.symbol && !!(node.symbol.flags & 65536 /* SymbolFlags.Member */);
5843
+ return node.symbol && !!(node.symbol.flags & SymbolFlags.Member);
5821
5844
  }
5822
5845
  function getMemberSymbol(parentSym, name) {
5823
5846
  return parentSym ? resolver.getAugmentedSymbolTable(parentSym.members).get(name) : undefined;