25072 Commits

Author SHA1 Message Date
Sheetal Nandi
5c11252b71 Add tests for package json edits 2022-12-09 14:49:30 -08:00
Sheetal Nandi
7de47805fe Use the hashes to verify the affecting location before using the resolution 2022-12-09 14:49:29 -08:00
Sheetal Nandi
e1ed9ea312 Store package json hash in buildinfo 2022-12-09 14:49:29 -08:00
Sheetal Nandi
6261b6cf67 Add tests where cache resoluition is incorrectly used because of not checking affected locations 2022-12-09 14:49:28 -08:00
Sheetal Nandi
2219b5dc95 Start using cache as perDirectory lookup 2022-12-09 14:49:27 -08:00
Sheetal Nandi
84cda33850 More tests for cache reuse directory structure 2022-12-09 14:49:27 -08:00
Sheetal Nandi
feb3220299 Tests for unresolved imports from multiple places 2022-12-09 14:49:26 -08:00
Sheetal Nandi
4d127faa25 Remove files that are not in program from cache of unresolved imports 2022-12-09 14:49:26 -08:00
Sheetal Nandi
71ebed9c00 Modify resolution cache to update on program creation completion 2022-12-09 14:49:26 -08:00
Sheetal Nandi
591960edb0 Set old program build info as a location to look for from module resolution caches 2022-12-09 14:49:25 -08:00
Sheetal Nandi
207226a9c8 Reusing resolutions in tsserver scenario 2022-12-09 14:49:24 -08:00
Sheetal Nandi
0446430aaa Add tests where module resolution caches should reuse the resolutions from buildInfo 2022-12-09 14:49:24 -08:00
Sheetal Nandi
959206d3e9 Do not store failed lookups with cacheResolution option if it is resolved to a file since they do not matter 2022-12-09 14:49:23 -08:00
Sheetal Nandi
ce07d0e961 Handle resolutions that would be same in ancestor directory and can be derived through ancestor map 2022-12-09 14:49:22 -08:00
Sheetal Nandi
d55ab98d59 Test for module resolutions from different directories 2022-12-09 14:49:22 -08:00
Sheetal Nandi
0132dc0b1d Handle project reference redirects for the module and type reference resolutions 2022-12-09 14:49:21 -08:00
Sheetal Nandi
23cfc79fdc Buildinfo resolutions actually reused 2022-12-09 14:49:21 -08:00
Sheetal Nandi
4bc74b98c2 Add reusing cache stub 2022-12-09 14:49:20 -08:00
Sheetal Nandi
76100d729f Read reusable module cache information from the buildinfo 2022-12-09 14:49:20 -08:00
Sheetal Nandi
1eeea260d6 Store resolved module and type reference resolution cache in buildinfo 2022-12-09 14:49:19 -08:00
Sheetal Nandi
666eece8cc Add tests 2022-12-09 14:49:19 -08:00
Sheetal Nandi
e1600ab800 Add baselining of modules and type refs 2022-12-09 14:49:18 -08:00
Sheetal Nandi
3172629f21 Add new option to cacheResolution (No actual functionality yet) 2022-12-09 14:49:18 -08:00
Sheetal Nandi
9d7df99414
Fix isExternalLibraryImport for classic resolution (#51840) 2022-12-09 14:44:35 -08:00
Ryan Cavanaugh
4978b3ebeb
Properly detect explicitly-set targets (#51834) 2022-12-09 10:31:51 -08:00
Oleksandr T
1f32fef5a2
fix(51077): skip insertText for jsx attribute with existing initializer (#51093) 2022-12-09 08:38:08 -08:00
Josh Goldberg
f3d55db45a
Fixed tuple types indexed by a type parameter (#51037)
* Fixed tuple types indexed by a type parameter

* If only there was a tool to add that missing semicolon for me

* Rename to baseConstraint

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2022-12-09 07:59:40 -08:00
George Manning
65bf850a20
Fix #51437 Duplicate "Duplicate identifier" errors (#51594)
* retroactive approach to remove duplicate diagnostics

* use code instead of messageText, update test

* use existing de-dupe function

* rename test and baselines

* add fourslash test for better assertion of fix

* review feedback: move deduplicate to getDiagnosticsHelper

* accept baseline with sorted diagnostics

* remove newline
2022-12-08 19:21:41 -08:00
Oleksandr T
e087992134
feat(47977): show completion in jsdoc extends/implements tags (#51028) 2022-12-08 17:10:00 -08:00
Oleksandr T
8f2ee38b52
fix(50888): Organize Imports may delete preceding comments when all members of all import statements are unused (#50983)
* fix(50888): preserve preceding comments of the deleted import

* update tests
2022-12-08 17:05:12 -08:00
swandir
f0f415b671
Add missing Intl.ListFormat.prototype.resolvedOptions() (#51024)
* Add missing Intl.ListFormat.prototype.resolvedOptions()

Fixes #51023

* lint
2022-12-08 16:45:17 -08:00
Ryan Cavanaugh
a3dbe7dc70
Update default target from ES3 to ES5 (#51731)
* Change the default emit target to ES5

* Add baseline update

* Remove tests with a hardcoded sourcemap in it

* Update hardcoded tests

* Merge with main

* Restore tests
2022-12-08 16:43:47 -08:00
Sheetal Nandi
3716ffe748
Make getSupportedCodeFixes on LS so it can be proxied by plugins (#51769)
Fixes #28966
2022-12-08 09:52:25 -08:00
Anders Hejlsberg
b9d0e17298
Ignore switch statement bypass control flows that produce never (#51703)
* Ignore switch statement bypass control flows that produce 'never'

* Add regression test
2022-12-07 16:19:09 -08:00
Anders Hejlsberg
d43112a75b
Use missingType in --noUncheckedIndexedAccess mode (#51653)
* Use missingType in noUncheckedIndexedAccess mode

* Accept new baselines

* Add tests

* Optimizing searching for undefinedType and missingType
2022-12-07 13:38:33 -08:00
Anders Hejlsberg
91f89b94e4
Visit child nodes in checkExpressionWithTypeArguments (#51804)
* Visit child nodes in checkExpressionWithTypeArguments

* Accept new baselines

* Add tests
2022-12-07 10:06:12 -08:00
Sheetal Nandi
a77a79fe4b
Remove some unnecessary createGetCanonicalFileName by exposing one from program (#51796) 2022-12-07 09:17:52 -08:00
Mateusz Burzyński
6684e3d527
Fixed substition types for non-generic indexed accesses (#51621) 2022-12-07 07:47:32 -08:00
Sheetal Nandi
832a6e45a7
Unify verifyTsc and verifyTscWithEdits and make them look like verifyTscWatch for easy copy paste (#51798)
* Make edits optional in verifyTscWatch

* Unify verifyTsc and verifyTscWithEdits and make them look like verifyTscWatch
2022-12-06 17:18:31 -08:00
Sheetal Nandi
e0293b5877
Instead of computing signatures during building, compute them afterwards for verification (#51718)
This helps with finding issues with d.ts emit because of caching.
2022-12-06 16:55:08 -08:00
Andrew Branch
dc3daa6644
Fix namespace import update bug, simplify, comment, and rename (#51797) 2022-12-06 16:38:33 -08:00
Gabriela Araujo Britto
a1536358f7
fix & test (#51792) 2022-12-06 16:18:01 -08:00
Sheetal Nandi
84e475c105
Make resolution cache use sets instead of arrays for easier checking (#51735) 2022-12-06 14:25:19 -08:00
Sheetal Nandi
38f33ade06
Use non relative name cache for type reference resolutions and API updates (#51732)
* Make the non relative name resolution cache generic

* Add cache for non relative type reference resolution

* Add getter only methods so we can use these in future for sharing resolutions across the projects

* Mark existing non relative module name cache getOrCreate as deprecated

* Prefer getters for getting directory results
2022-12-06 14:22:03 -08:00
Jake Bailey
703652cebf
Remove some files from the repo root (#51446) 2022-12-06 13:42:54 -08:00
Daniel Rosenwasser
3c99d50da5
Replace a few type assertions with annotations and satisfies. (#51685) 2022-12-06 11:52:17 -08:00
Eric Ferreira
af1d91d9d9
Fix missed errors in switch when using union of literal and non-literal types (#38686) (#51373)
* Fix missed errors in switch when using union of literal and non-literal types (#38686)

This commit makes it so we don’t use the base type of literals when checking comparability in switch. The comparability checks handle that case already, is my understanding, so we don’t need to clobber the type before actually doing the check, causing missed errors.

When comparing the types in switch, if a union with a literal and a non-literal was used, the compiler in `checker.ts` would automatically get the base type of all parts of the union, resulting in missed errors. For example, if the union of the non-literal `number` and literal `"hello"` was compared to the literal `"world"` in a switch case, the compiler would miss that they’re actually not comparable.

Maybe someone can tell me why we were getting the base type before checking comparability, rather than relying on the logic within the comparability checks to handle literal/base type comparability?

* Fix lint (whitespace) issue in checker.ts by running lint with fix flag.
2022-12-06 10:50:21 -08:00
Jake Bailey
bb42b5c1a6
Unconditionally use WeakMap in debug (#51785) 2022-12-06 10:41:39 -08:00
Isabel Duan
ae9c671d59
(fix #50725, #50710) add file extensions in import statements (#51702)
* fixes #50725

* fixed 50710

* fixed broken test

* clean up

* variable rename

* rename variable to newFileBaseName
2022-12-06 09:28:10 -08:00
Nathan Shively-Sanders
5bb204e321
Remove webServer (#51699)
* Remove webServer

First draft; I may move some things around to be more readable.

* Refactor moved code

1. Move StartSessionOptions to common next to where it's first used.
2. Inline single-use BaseLogger base class into its only child class,
Logger.
3. Start using direct imports, eg `import {} from './common'`. I hope
this is OK?!

* Fix lint

* move imports back to namespace import

* hereby tsserver: remove exportIsTsObject
2022-12-06 08:41:01 -08:00