Commit Graph

26317 Commits

Author SHA1 Message Date
Daniel Rosenwasser 14f33d5c4b Fix for crash in navbar with double ambient modules (#47395)
* Add failing test.

* Guard against undefined module bodies in navbar/navtree.
2022-01-11 18:14:22 -08:00
Daniel Rosenwasser ed014db864 Add names for refactoring functions. (#47375)
* Add names for refactoring functions.

* Consistency in function names.
2022-01-11 12:20:17 -08:00
Martin Probst faee7b3621 Avoid printing comments on static fields twice. (#47363)
* Avoid printing comments on static fields twice.

In TS4.4, when a transformer adds a static field with a synthetic
comment to a decorated class, TS prints the synthetic comment twice:

  @Decorator
  class MyClass {
    /* comment */ staticField = 'x';  // field and comment added by transformer
  }

Becomes:

  var MyClass = class MyClass {}
  /*comment*/
  /*comment*/
  MyClass.newField = "x";
  __decorate(MyClass, Decorator, ...)

This is because the classFields transformer calls `setOriginalNode(n,
propertyDeclaration)` on both the expression statement , and the
assignment expression contained in it, leading to the synthetic comment
appearing twice.

This change avoids the problem by explicitly deleting any synthetic
comments from the assignment expression created for static fields when
creating the expression statement containing the assignment. This allows
us to retain the information of the original node without printing the
synthetic comment twice.

* Update src/testRunner/unittests/transform.ts

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
2022-01-11 12:19:36 -08:00
Andrew Branch 0f1496f354 Process package.json exports with auto-import provider (#47092)
* Have auto-import provider pull in `exports`

* Revert filtering of node_modules relative paths, to do in separate PR

* Do @types and JS prioritization correctly

* Cache entrypoints on PackageJsonInfo

* Add one more test

* Delete unused function

* Fix other tests - dependencies need package.json files

* Do two passes of exports resolution

* Fix missed refactor

* Apply suggestions from code review

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>

* Uncomment rest of test

* Handle array targets

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2022-01-11 11:10:35 -08:00
Anders Hejlsberg 4d6dd119d5 Add missing mapped type indexed access constraint (#47370)
* Type { [P in K]: E }[X] has constraint E with X substutited for P

* Add regression test

* Fix PragmaMap and ReadonlyPragmaMap declarations

* Explore additional constraint

* Revert previous change

* Add tests
2022-01-11 07:23:18 -08:00
Andrew Branch 852b1c2b73 Fix checker initialization crash with esModuleInterop and global merges resolving to ImportEquals aliases (#47348)
* Add minimal failing test

* Fix checker initialization crash with esModuleInterop global merges resolving to ImportEquals aliases
2022-01-10 16:04:12 -08:00
Kat Marchán 7f189b9701 fix ATA toplevel dep detection (#47164)
ATA tried to use the `_requiredBy` field to determine toplevel deps,
but this is not portable. Not only is it unavailable in npm@>=7, but
neither Yarn nor pnpm write this metadata to node_modules pkgjsons.

This also adds support for ATA acquiring types for scoped packages.

Fixes: https://github.com/microsoft/TypeScript/issues/44130
2022-01-07 13:48:31 -08:00
Orta Therox 8a8c71c147 Use relative paths for the end of compile report (#47344) 2022-01-07 19:55:55 +00:00
Oleksandr T 6fc0584dd5 fix(46402): create valid property keys/jsx attribute names (#46716) 2022-01-07 11:46:26 -08:00
Jake Bailey 484f1414d6 Prevent merged class/namespace from overlapping with Record<string, unknown> (#47088) 2022-01-07 11:02:48 -08:00
Anders Hejlsberg a3d23d36cc Fix conditional type constraint exploration + signature relations (#47341) 2022-01-07 07:44:57 -10:00
Kagami Sascha Rosylight 363e3a78f4 Add Error.prototype.cause (#47020)
* Add `Error.prototype.cause`

Fixes #47019

* Update test baselines
2022-01-07 14:58:58 +00:00
Matt Bierner 69662090a3 Use node ipc for TS Server (#46418)
* Use node ipc for TS Server

For #46417

This lets us use Node's built-in ipc for passing messages to/from the typescript server instead of using stdio

* Remove extra parse

* Add extra logging when using node IPC

* Split out to subclass

* Extract common writeMessage method

* Baseline accept
2022-01-05 16:39:45 -08:00
Gabriela Araujo Britto 404a7d602d Gabritto/semicolons (#46832)
* call formatter in completions

* fixes

* add test

* update api baselines

* fix createModifiersFromModifierFlag to not return empty array
2022-01-04 11:50:49 -08:00
Anders Hejlsberg f4e1efbc29 Control flow analysis for dependent parameters (#47190)
* Support control flow analysis for dependent parameters

* Add tests
2022-01-04 09:22:11 -10:00
gfyoung 9a75d2acc8 fix(46845): Add missing "locale" field to Intl.DisplayNamesOptions (#46849)
Closes https://github.com/microsoft/TypeScript/issues/46845
2022-01-03 20:10:20 +00:00
Zzzen a42379179b fix merging of function and derived class (#47170) 2021-12-16 17:29:07 -08:00
Kagami Sascha Rosylight 20e86dab5b Emit class fields as-is with target: es2022 (#47018)
* Emit class fields as-is with `target: es2022`

Closes #47017

* wave 2
2021-12-16 15:15:33 -08:00
Oleksandr T c282771d59 fix(47004): ignore arguments name in PropertyAssignment (#47054) 2021-12-16 13:05:48 -08:00
Oleksandr T 93bdfd2511 fix(47056): report errors for all properties with errors (#47057) 2021-12-16 12:58:15 -08:00
Andrew Nguyen 270b0d1c73 fix(46824): remove duplicate private identifier errors (#47116) 2021-12-16 12:07:12 -08:00
Tao Cumplido 2bbdb31b07 update es2020.intl DisplayNames#of (#47157)
fix return type of Intl.DisplayNames.prototype.of
was typed to return always string but can actually return undefined too
see spec https://tc39.es/ecma402/#sec-Intl.DisplayNames.prototype.of
2021-12-15 17:51:35 +00:00
Anders Hejlsberg 3d3825e783 Fix multiple issues with indexed access types applied to mapped types (#47109)
* Fix multiple issues with indexed access types applied to mapped types

* Add tests
2021-12-14 11:51:03 -08:00
LowR 7e0e8671fa fix(47134): show all meanings for type-only imports and exports (#47138) 2021-12-14 10:58:21 -08:00
Hiroshi Ogawa 8974fead2d fix(47062): support generic arrow function with default type parameter in tsx (#47112)
* fix(47062): support generic arrow function with default type parameter in tsx

* test: update test "completionListIsGlobalCompletion"
2021-12-14 09:02:36 -08:00
Armando Aguirre 67872a50d0 Fix enums and namespace merge (#47059)
* Fix enums and namespace merge

* Remove unused comment
2021-12-13 14:03:19 -08:00
Andrew Branch 430599722e Fix extract type crash (#47136) 2021-12-13 10:39:34 -08:00
Anders Hejlsberg 06746efbd9 Revert change to getFalsyFlags (#47125)
* Revert change to getFalsyFlags

* Add regression test
2021-12-13 09:05:55 -08:00
Oleksandr T df87a8c12d fix(44693): emit declaration of JSDoc overridden properties with different types (#46797) 2021-12-10 11:06:59 -08:00
Jake Bailey 0ed9247e17 Explicitly Omit unspreadable properties from rest type in the generic case (#47078) 2021-12-09 11:45:52 -08:00
Song Gao e2c89af335 use default type parameter rather than unknown when show quick help (#46792)
* use default type parameter rather than `unknown` when show quick help

* prefer default type parameter than constraint for quick info
2021-12-08 17:02:22 -08:00
David Sherret 921825585d fix: do not use ts.NodeArray in factory inputs (#46843) 2021-12-08 16:57:52 -08:00
Nathan Shively-Sanders a2c7fa2d05 Add 12 more grammar errors (#47075)
These are the last ones that I know of. They come from calls to
`grammarErrorOnFirstToken`.

Fixes part of #45349
Follow-up to #47067
2021-12-08 16:54:58 -08:00
Ron Buckton c8f1a874a3 Exempt tslib from indirect call transform (#47070) 2021-12-08 15:42:37 -08:00
Nathan Shively-Sanders a72bf5410c Plain JS grammar errors (#47067)
* Plain JS grammar errors

From the list in
https://github.com/microsoft/TypeScript/issues/45349#issuecomment-974561208,
excluding the JSX errors, decorator errors and unresolved #private
error. The latter re-uses "Cannot resolve name X" which naturally shows
up a *lot* in plain JS.

* Add grammarErrorAtPos errors

Also remove checkGrammarArguments; it's blocked entirely by the same
parser error.
2021-12-08 15:16:23 -08:00
Oleksandr T 022542548e fix(47043): as const cast wrong colour when using typescript 4.5.2 (#47066) 2021-12-08 10:15:58 -08:00
Oleksandr T 5f372d9d7e fix(46606): show completion in jsdoc property tag (#46657) 2021-12-07 15:28:41 -08:00
Ron Buckton 67f84ef771 Fix Awaited<T> for onfulfilled callbacks with more than one argument (#46951) 2021-12-07 15:21:11 -08:00
Ryan Bargholz 7a12909ae3 fix(45713) Improve error report summaries (#45742)
* Improve error report summaries (#45713)

* fixup! Improve error report summaries (#45713)

* fixup! fixup! Improve error report summaries (#45713)

* Adds support for handling localization renaming the 'files' header due to localization

* fixup! Adds support for handling localization renaming the 'files' header due to localization

 - Fixed baseline error
 - Fixed linter error

Co-authored-by: Orta <git@orta.io>
Co-authored-by: Orta Therox <ortam@microsoft.com>
2021-12-07 10:50:44 +00:00
Jake Bailey 4013271cd8 Unwrap parens when checking for JSDocFunctionType in conditional expression (#46962) 2021-12-06 16:44:37 -08:00
Oleksandr T 4761ba6285 fix(46998): Hover on as const shows type const = /*unresolved*/ any (#47000) 2021-12-06 14:41:46 -08:00
Jay Clark 1fe9bfdd0e Fix strict/es5+ octal literal 2x error #46810 (#46823)
* Fix strict/es5+ octal literal 2x error #46810

Signed-off-by: Jay Clark <jay@jayeclark.dev>

* Accept baseline test changes

Signed-off-by: Jay Clark <jay@jayeclark.dev>

* Add test case

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2021-12-06 12:46:08 -08:00
Anders Hejlsberg 2a7eb58589 Properly union inferred template literal string types (#46782)
* Template literals and string mappings have 'string' as base type

* Add regression test

* Add tests for generic template literals

* One more test
2021-12-06 10:51:50 -08:00
Zzzen 7a1687de26 fix(42678): detect access to uninitialized variable in IIFE (#42776)
* fix(42678): detect access to uninitialized variable in IIFE

* improve performance

* Add missing space to match coding guidelines

* simplify the implementation

Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
2021-12-06 10:42:20 -08:00
Yuki Osaki 1f275d705d "No repeated property names" error in object literals is duplicated in strict mode (#46929)
* "No repeated property names" error in object literals is duplicated in strict mode

* fix indent
2021-12-06 10:22:28 -08:00
Wesley Wigham 97a7901f26 Use features for selected module resolution rather than all features for type reference directives, since they can add restrictions to resolutions (#47007) 2021-12-04 04:24:28 -08:00
Anders Hejlsberg b2af6051ef Improve isValidSpreadType check (#47010)
* Fix getFalsyFlags for intersection types

* Fix and simplify isValidSpreadType

* Slight tweak

* Add tests
2021-12-03 16:11:01 -08:00
Andrew Branch 2ce05a8292 Completions sorting overhaul (#46703)
* Sort resolved auto-import completions by number of directory separators

* Sort completions in services layer

* Finish tests

* Fix more tests

* Respect SortText in completions

* Update tests to use `unsorted` assertion
2021-12-03 14:54:51 -08:00
Andrew Branch 240ba0acef Fix checker initialization crash (#46973)
* Fix checker initialization crash

* Move checks to a place that makes more sense
2021-12-03 14:30:03 -08:00
Oleksandr T 407edc95c0 fix(46563): show completions at this type (#46581) 2021-12-03 14:29:45 -08:00