11418 Commits

Author SHA1 Message Date
Oleksandr T
e5ca3e4386
fix(48406): resolve JSDoc host of property signature (#48407) 2022-04-04 14:42:50 -07:00
Oleksandr T
7465f04666
fix(48542): omit parameter info of contextual union type (#48549) 2022-04-04 14:05:20 -07:00
Oleksandr T
e02998f70d
fix(48541): forbid function extraction to arrow function with expression body (#48548) 2022-04-04 12:27:49 -07:00
Andrew Casey
d5f5c6d61e
Convert many tests from verify.singleReferenceGroup to verify.baselineFindAllReferences (#48518)
* Convert referenceToClass to baselining

* Delete stray marker from findAllRefsInsideWithBlock

* Bulk convert tests that just call verify.singleReferenceGroup

* Update tests with duplicate names

* Bulk update verify.singleReferenceGroup tests with BOMs

* Semi-automatically convert FAR tests with explicit range code

* Convert findAllReferencesDynamicImport2 to baselines
2022-04-04 09:23:58 -07:00
magic-akari
99620117be
Fix crash when circular reference in variance annotations (#48539)
* Fix crash when circular reference in variance annotations

* chore: clean code
2022-04-04 08:33:47 -07:00
Oleksandr T
2db17fdda2
fix(48520): fix getting parameter type by index (#48521) 2022-04-03 21:42:37 -07:00
Andrew Casey
337d1326fb
Sync fourslash shims and shims-pp (#48507)
It appears that they were intended to be identical so, in each case, I updated the side that looked less correct.
2022-04-01 11:14:14 -07:00
Andrew Casey
8020072281
Respect @BaselineFile in fourslash tests and tidy up quickInfoDisplayPartsVarShims (#48506) 2022-04-01 09:24:14 -07:00
Oleksandr T
9cfa6e25af
fix(48405): emit dummy members from a mapped type (#48481) 2022-03-31 10:15:12 -07:00
Anders Hejlsberg
fd601ddf20
CFA for dependent parameters typed by generic constraints (#48411)
* Obtain apparent type in parameter destructuring check

* Add regression test
2022-03-30 16:33:01 -07:00
Anders Hejlsberg
3f483d87b4
No contextual typing from return types for boolean literals (#48380)
* No contextual typing from return types for boolean literals

* Accept new baselines

* Add regression tests
2022-03-30 16:32:24 -07:00
Oleksandr T
e62f960648
fix(47733): omit JSDoc comment template suggestion on node with existing JSDoc (#47748) 2022-03-30 15:36:47 -07:00
Jake Bailey
3c6c2799b6
Ensure that we copy empty NodeArrays during transform (#48490) 2022-03-30 15:33:51 -07:00
Adam Foxman
41aca7c337
Add a new compiler option moduleSuffixes to expand the node module resolver's search algorithm (#48189)
* Add moduleSuffixes compiler option and related tests. Update baselines for compiler options tests.

* Add a flag to the command-line parser which allows "list" params to preserve "falsy" values such as empty strings. Falsy values are normally stripped out.

* Add tests. Rework resolver logic to only run module-suffix code when needed.

* PR feedback

* Add test

* Remove unnecessary conditional.
2022-03-30 15:23:26 -07:00
Oleksandr T
c639d3afb9
feat(27615): Add missing member fix should work for type literals (#47212) 2022-03-30 12:55:18 -07:00
Gabriela Araujo Britto
f57bdaa097
Add label details to completion entry (#48429)
* add label details to completion entry

* Use label details for obj literal method completions

* add label details support flag

* add label details support to fourslash

* support both label details and non-label details in object literal method snippets

* CR fixes

* fixes after rebasing

* fix tsserver tests
2022-03-30 12:45:56 -07:00
Gabriela Araujo Britto
e25f04a30f
Enable method signature completion for object literals (#48168)
* skeleton of new feature

* working prototype

* refactor print and format code into its own function

* minor changes; don't support overloads

* have two completion entries

* get rid of accessor support

* add snippet support

* add formatting

* add trailing comma

* add sourcedisplay

* support auto-imports via completion details

* add user preference option and fix ordering of entries

* cleanup

* don't return code actions for no import fixes

* make sortText lower priority for snippets

* get rid of flag

* use optional member sort text

* update baselines

* don't collect method symbols if insert text is not supported

* remove comment

* return undefined if type is not function type

* only slice if needed

* use union reduction; more test cases

* WIP: modify sort text system

* Improve new sort text system

* add signature and union type check

* re-add flag

* fix tests

* rename sort text helper

* fix test and code for union case

* add new flag to protocol type

* fix spaces

* CR: minor fixes

* CR: more fixes

* CR: restructure main flow

* minor fix
2022-03-29 17:19:02 -07:00
Andrew Branch
7ec7d6d8e0
Fix string literal completions when a partially-typed string fixes inference to a type parameter (#48410)
* Add failing test

* Fix string literal completions when a partially-typed string fixes inference to a type parameter
2022-03-29 09:07:38 -07:00
Oleksandr T
bf7bfa1b3f
fix(48445): show errors on type-only import/export specifiers in JavaScript files (#48449) 2022-03-29 08:38:58 -07:00
Andrew Branch
d962091d94
Fix newline inserted in empty block at end of formatting range (#48463)
* Fix newline inserted in empty block at end of formatting range

* Clean up

* Fix refactoring mistake
2022-03-28 13:50:17 -07:00
Wesley Wigham
a5dae37943
Prevent looking up symbol for as const from triggering an error (#48464) 2022-03-28 12:53:36 -07:00
Anders Hejlsberg
df7ed82dd5
Revise accessor resolution logic and error reporting (#48459)
* Revise accessor resolution logic and error reporting

* Accept new baselines

* Update isTypeElement

* Add tests
2022-03-28 10:44:11 -07:00
Oleksandr T
c720ad6ffb
fix(48166): skip checking module.exports in a truthiness call expression (#48337) 2022-03-28 08:23:20 -07:00
Oleksandr T
f4d76e5b93
fix(48031): show circularity error for self referential get accessor annotations (#48050) 2022-03-25 15:36:22 -07:00
Andrew Casey
e7426251b0
Revert "Fix contextual discrimination for omitted members (#43937)" (#48426)
This reverts commit 751c11412618e8b2a504380135bc2f0b2505e18f, which caused check time for our MUI benchmark to increase by ~25%.
2022-03-25 13:09:19 -07:00
Oleksandr T
0cc3535cae
revert #44956 - remove hyphen separator (#48416) 2022-03-25 08:21:57 -07:00
Mateusz Burzyński
3ec1b04808
Add explicit tests for unconstrained type param not being assignable to {} and Record<string, any> (#48421) 2022-03-25 05:36:02 -07:00
Oleksandr T
49a12dcbbb
fix(47081): show completion list in parenthesized object literal arguments (#47104) 2022-03-24 15:30:26 -07:00
Wesley Wigham
8cd4b7a5da
Make the unconstrained type parameter and {} assignability rule not apply under strictNullChecks (#48366)
* Make the unconstrained type parameter and {} assignability rule not apply under strictNullChecks

* Fix lint, PR feedback
2022-03-23 16:22:40 -07:00
Wesley Wigham
b5a3a058f5
Merge diagnosticsProducing and nonDiagnosticsProducing checkers into a single checker supporting lazy diagnostics (#36747)
* Merge diagnosticsProducing and nonDiagnosticsProducing checkers into a single checker supporting lazy diagnostics

* Fix lint
2022-03-23 16:21:06 -07:00
Zzzen
20c01cdd3f
align ClassStaticBlockDeclaration with IIFE in CFA (#44969)
* align ClassStaticBlockDeclaration with IIFE in CFA

* isIIFELike => isImmediatelyInvoked

* fix unexpected used-before-assignment errors

* update baseline
2022-03-23 15:47:29 -07:00
Minh Quy
4ec16b2a6b
Fix#48281 - Indentation not respected when executing various refactorings (TypeScript/JavaScript) (#48340)
* fix(48281) - Preserve indentation when adding missing properties

* fix(48281) - Fix object literal indentation like block

* fix(48281) - Indentation for object literal started with curly brace similar to block
2022-03-23 10:40:50 -07:00
islandryu
bf0eef4353
fix(48034): Get a literal string of type intersection in a template literal type (#48044) 2022-03-22 13:38:24 -07:00
Anders Hejlsberg
6cb58d382f
Optional variance annotations (#48240)
* Simplify getVariancesWorker and associated logic

* Accept new API baselines

* Add 'in' and 'out' modififers / add modifiers to type parameters

* Check variance annotations

* Update test runner

* Accept new API baselines

* Allow variance annotations only on certain type parameters

* Add deprecated implementation of createTypeParameterDeclaration

* Accept new API baselines

* Report variance markers as 'sub-XXX' and 'super-XXX'

* Add tests

* Accept new baselines
2022-03-22 11:31:08 -07:00
Andrew Branch
5bc8179b73
Make AutoImportProvider look in ATA cache (#48329)
* Make AutoImportProvider consider ATA cache

* Delete unnecessary test
2022-03-21 17:02:44 -07:00
Oleksandr T
c1cf901997
fix(48291): omit jsdoc modifiers (#48304) 2022-03-17 13:44:42 -07:00
Andrew Branch
df1faa09b8
Add isolatedModules error for ambiguous imports referenced in decorator metadata (#42915)
* Add isolatedModules error for ambiguous imports referenced in decorator metadata

* Improve test and accept baselines

* Error only for es2015+

* Add namespace import to error message as workaround

* Add codefix

* Fix merge fallout
2022-03-17 12:00:23 -07:00
Minh Quy
b996287e00
fix(48191): Duplicates comments on "Add definite assignment assertion to property" (#48299)
* Suppress leading and trailing comments for adding missing definite assignment assertion action

* Suppress leading and trailing comments for adding missing initalizer action

* Test for initializer property action
2022-03-17 09:57:10 -07:00
Oleksandr T
546a87fa31
feat(48231): allow unique symbol for constant variables (#48270) 2022-03-16 17:00:27 -07:00
Gabriela Araujo Britto
cf8ed8fec1
Change sortText for class member completions (#48196)
* change sortText for class member completions

* update test

* create new sort text member for class snippets

* change values of sort text enum
2022-03-16 16:04:08 -07:00
Oleksandr T
f12922c8f7
fix(48277): show parameter type inlay hints after ? operator (#48283) 2022-03-16 11:38:40 -07:00
Wesley Wigham
7f652509b6
Handle JS synthetic rest args in contextual parameter assignment (#48263)
* Handle JS synthetic rest args in contextual parameter assignment

* Limit fixing to only unannotated js rest parameters

* Minimize test

* Add annotated version

* Remove explicit CheckFlags.RestParameter check since apparently not all rest parameters are CheckFlags.RestParameter
2022-03-16 11:04:07 -07:00
Wesley Wigham
92bc2ddc3c
Consistently avoid pulling on the source return type when the target return type is any (#47306) 2022-03-15 18:16:05 -07:00
Anders Hejlsberg
8e5a84a696
Exclude mapped types with optionality modifiers and 'as' clauses from constraint logic (#48273)
* Exclude mapped types with optionality modifiers and 'as' clauses

* Add regression tests
2022-03-15 17:37:46 -07:00
Jesse Trinity
111ca92646
Fix parser regression for bad related diagnostic on missing matching brackets (#44158)
* Revert "Revert #43460 and #40884 (#44175)"

This reverts commit 57704348914d046e6db8907f6e44e7937b3bcb5b.

* fix missing opening brace match error

* refactor parseExpectedMatchingBrackets

* use getNodePos

* accept baselines

* delete mistakenly added files

* Revert getNodePos addition

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2022-03-15 17:29:41 -07:00
Anders Hejlsberg
8c060eecaa
Exclude mapped types with 'as' clauses from certain checks (#47889)
* Exclude mapped types with 'as' clauses from certain checks

* Add tests
2022-03-15 17:01:33 -07:00
Wenlu Wang
5f017df609
Fix top level logical assignment leak (#40536)
* Fix leaking top level logical assignment

* Fix leaking top level logical assignment
2022-03-14 10:48:31 -07:00
Oleksandr T
4a58fbce17
fix(48081): omit error on importing variables defined with require() (#48115) 2022-03-14 09:55:12 -07:00
Mateusz Burzyński
ca65a1a05b
Add boolean to supported literals within Object.freeze (#48117) 2022-03-14 09:07:31 -07:00
Wesley Wigham
d1fa945261
Add moduleDetection compiler flag to allow for changing how modules are parsed (#47495)
* Add moduleDetection compiler flag to allow for changing how modules are parsed

The default setting is 'auto', where JSX containing files under react-jsx and react-jsxdev are
always parsed as modules, and esm-format files under module: node12+ are always parsed as modules,
in addition to the 'legacy' detection mode's conditions for other files. (Declaration files are exempt from
these new conditions)

The 'legacy' mode preserves TS's behavior prior to the introduction of this flag - a file is
parsed as a module if it contains an import, export, or import.meta expression.

In addition, there is a 'force' mode that forces all non-declaration files to be parsed as modules.
(Declaration files are still only modules if they contain a top-level import or export.)

This technically breaks the parser API, but it's kinda-sorta backwards compatible so long
as you don't need the functionality associated with more recent compiler flags.

* Fix post-merge lint

* Rename function

* Update default value documentation

* PR feedback

* Fix lint and typo
2022-03-11 10:36:00 -08:00