If these are regular comments, then they won't appear in our d.ts files.
But, now we are relying on an external d.ts bundler to produce our final
merged, so they need to be present in the "input" d.ts files, meaning
they have to be JSDoc comments.
These comments only work today because all of our builds load their TS
files from scratch, so they see the actual source files and their
non-JSDoc comments.
The comments also need to be attached to a declaration, not floating,
otherwise they won't be used by api-extractor, so move them if needed.
Now that we are modules, there's no reason to ban multiple namespaces
per file; each file is its own scope and declaring a namespace won't
merge it into any other files.
This step converts as many explicit accesses as possible in favor of direct imports from the modules in which things were declared. This restores the code (as much as possible) back to how it looked originally before the explicitify step, e.g. instead of "ts.Node" and "ts.Symbol", we have just "Node" and "Symbol".
This step converts each file into an exported module by hoisting the namespace bodies into the global scope and transferring internal markers down onto declarations as needed.
The namespaces are reconstructed as "barrel"-style modules, which are identical to the old namespace objects in structure. These reconstructed namespaces are then imported in the newly module-ified files, making existing expressions like "ts." valid.
* Test showing wrong resolution is returned because of incorrect mode calculation
Test for #48229
* Pass in information for the module name resolution when resolutions from file are partially used
Fixes#48229
* Make the resolution info complete
* fix(51301): keep the line break after removing the unused identifier
* preserve line breaks in import specifiers
* preserve line breaks in parameters and destructuring elements
* remove preserveLineBreak option
* added test case to try to retrieve duplicate refactor as in #50416. 'verify.refactorAvailable' correctly retrieves nonduplicate refactors...
* optional arguments in refactorAvailable return `true` even if there is no single refactor that satisfies both
* it still passes :C
* Delete fixExtractToInnerFunctionDuplicaton.ts
* deleted extra test code
* fix 'verify.refactorAvailable' so that tests correctly check for multiple arguments
* fixes#50416
* refactor
* feat(37440): add QF to handle missing exports
* change diagnostic message
* add type modifier only if isolatedModules is set or if the export declaration already uses type modifiers
* Add test case to check for the propogation of @deprecation tag to multiple overloads
* Implement filter to only include @deprecated tag in first signature after JSDoc comment
* Fix crash in goto-def on `@override`
When the base type is not defined, getDefinitionFromOverriddenMember
will have its type as errorType, which has no symbol. The error handling
previously only handled the case of no baseType at all -- which I'm not
sure ever actually happens.
* Improve checking
1. getTypeAtLocation never returns undefined, only errorType, so check for that.
2. Return directly after missing baseTypeNode instead of continuing to return later.
* Experiment with making goto-def on `override` more consistent
* Unify static/instance node->symbol->type path
* Make getSymbolAtLocation support class expressions
and parenthesized expressions
* Revert "Make getSymbolAtLocation support class expressions"
This reverts commit 4c1b031355.
* fix semicolon lint
* feat(7481): add explicit type compatibility check with 'satisfies' expression
* Add failing test for lack of intersectioned contextual type
* Implement the behavior
* Add test corresponding to the 'if'
* Add test based on defined scenarios
* remove isExpression in favor of using type casting
* move tests from compiler to conformance folder
* update baseline
* add missing contextFlags argument
* use asserted type
* accept baseline
Co-authored-by: Ryan Cavanaugh <ryanca@microsoft.com>