* Write a test and a huge comment
* Finish fixing everything
* Clean up comment
* Remove obsolete comment
* Fix comment trailing off
* Optimize to hit the file system much less
* Account for type parameters in missing function codefix
* Apply suggestions from code review
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* WIP
* Synthesize new type parameters instead of deep unions and intersections
* Pass along type parameter constraints
* E.T. phone home
* Clean up comments just a bit
* Only widen the instance type sometimes
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* 🐛 Avoid grouping JSDoc nodes of propery signatures with others in smart selection
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* ⚗️ Add test case for JSDoc smart selection (#39618)
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* ⚗️ Add test baseline for JSDoc smart selection (#39618)
Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
* 🐛 Fix skipping SyntaxList first child's JSDoc in smart selection
Signed-off-by: GitHub <noreply@github.com>
* ⚗️ Add tests to ensure not skipping first SyntaxList child's JSDoc
Signed-off-by: GitHub <noreply@github.com>
* 🔨 Exclude JSDoc token from tokens pivoting property signature
Signed-off-by: GitHub <noreply@github.com>
* ⚗️ Update test case to also include modifier
Signed-off-by: GitHub <noreply@github.com>
* ⚗️ Update test case reference baseline
Signed-off-by: GitHub <noreply@github.com>
* Support path completions for exports wildcards
* Break up results by directory
* Share code between typesVersions and exports processing
* Revert completion kind change
* Add kinds to tests
* Update existing test
* Support nested conditions, improve recursive globbing
* Demote priority of JS completions
Fixes#48498
Unchecked JS files gather identifier-based completions. Currently, this search
happens instead of `getCompletionEntriesFromSymbols` for TS/checked JS
files. However, identifier-based completions are much lower quality and
can be ignored by some editors.
Identifier-based completions should be gathered last, after gathering
other completions. That's what this PR does.
* Invert isUncheckedFile to avoid double negative
* dedupe calls to getCompletionEntriesFromSymbols
* Stop re-creating list of entry names
* more deduping + fix lint
* add bug repro test
* add test and start fix implementation
* adjust for useAlias preference
* fix existing renaming test
* refactor to get rid of options
* fix named bindings & other imports cases
* fix eslint error
* address cr comments
* hopefully actually fix eslint
* clean up stale baseline
* make API change non-breaking
* add/fix comments
* Allow instantiation expression to be followed by let or interface on new line
* Add tests
* Update src/compiler/parser.ts
* Instantiation expressions followed by line breaks or binary operators
* Add more tests
* Accept new baselines
* Fix lint error
* Update fourslash test
Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
* Improve reduction of intersection types
* Accept new baselines
* Improve CFA for truthy, equality, and typeof checks
* Accept new baselines
* Remove special case for Function type
* Don't reduce intersections of form {...} & object
* Accept new baselines
* Anything is assignable to unknown-like union
* Accept new baselines
* Tweak subtype check
* Recombine unknown type from unknown-like union in more cases
* Display union origin only if it is shorter than union itself
* Accept new baselines
* Add tests
* Only attach origin type when it is shorter than union itself
* Specially preserve string & {}, number & {}, bigint & {}
* Accept new baselines
* Add additional tests
* Fix getNormalizedType and getNarrowableTypeForReference for intersections
* Switch NonNullable<T> to use T & {}
* Accept new baselines
* Use NonNullable<T> in place of anonymous T & {}
* Accept new baselines
* Add fourslash test
* More fourslash tests
* Fix getFalsyFlags handling of intersections
* Accept new baselines
* Add constraint to compareProperties type parameter
* Unconstrained type parameter not assignable to {} with strictNullChecks
* Accept new baselines
* Port #48978 forward to the revised FAR code
The old regression test didn't catch the corresponding bug in the new code because it hit the fast path where there's only a single project.
* Drop spurious non-null assertion
* Handle the case where the FAR results map is empty
Searching exactly one project does not imply the presence of exactly one references list.
Fixes#49217
* Use emptyArray
Co-authored-by: Sheetal Nandi <shkamat@microsoft.com>
Co-authored-by: Sheetal Nandi <shkamat@microsoft.com>
* fix(47562): Add option to suppress type hint if variable name matches type
* Remove the unnecessary debug code
* Re-run gulp runtests
* Use equateStringsCaseInsensitive to compare strings