25290 Commits

Author SHA1 Message Date
Daniel Rosenwasser
ec320deacc
Merge pull request #28282 from ajafff/backport-perf-regression
Fix performance regression when reusing old state (#28028)
2018-11-01 13:48:36 -07:00
Klaus Meinhardt
da7f68d0da use Map instead of Array 2018-11-01 13:33:31 +01:00
Klaus Meinhardt
fd6565de65 Fix performance regression when reusing old state
Fixes: #28025
2018-11-01 13:33:14 +01:00
Daniel Rosenwasser
84d1de761b Update LKG. v3.1.5 2018-10-31 13:27:42 -07:00
Daniel Rosenwasser
0f5b74a55b Bump version to 3.1.5. 2018-10-31 13:22:59 -07:00
Wesley Wigham
7b5975382f
Use same condition in isReferencedAliasDeclaration as isAliasResolvedToValue (#28171) (#28219) 2018-10-30 11:19:05 -07:00
Daniel Rosenwasser
9733858944 Update LKG. v3.1.4 2018-10-29 14:48:37 -07:00
Daniel Rosenwasser
626303e6df Bump to 3.1.4. 2018-10-29 14:48:20 -07:00
Mine Starks
83c38f367a
Merge pull request #28106 from minestarks/configure-plugins
configurePlugins command for tsserver
2018-10-29 13:56:51 -07:00
Mine Starks
9bb87ecf2e Accept baselines 2018-10-29 12:44:14 -07:00
Mine Starks
db914d8739 Add test for configurePlugin 2018-10-26 17:53:05 -07:00
Mine Starks
4273fd7d55 configurePlugins command for tsserver
Implements #18604
2018-10-26 11:54:09 -07:00
Nathan Shively-Sanders
2cd9ebadcb Fix tests for node 11 (#28108)
1. Sort is now stable in node 11, which exposed a lack in the sorting of
nested ranges. Ranges now sort based on last ending if the start
positions are the same. This means nested ranges sort the
containing range first, even if a range contains another range that
starts at the same position.
2. Symbol has a new member description which can't be accessed through
the prototype. In addition, Array now has flat and flatMap, which I
excluded to keep baselines the same between Node 6-11.
2018-10-24 13:18:45 -07:00
Andy
ca6e2e7bb1
Fix bug: Ensure JSDoc type range is valid (#27343) (#28008)
* Fix bug: Ensure JSDoc type range is valid

* Have scanJsDocToken scan keywords (#27162)

* Have scanJsDocToken scan keywords

* Update API

* Add 'no-unnecessary-type-assertion' tslint disables
2018-10-24 11:05:56 -07:00
Daniel Rosenwasser
45387b875a Update LKG. v3.1.3 2018-10-11 16:17:08 -07:00
Daniel Rosenwasser
86d53d2483 Update version to 3.1.3. 2018-10-11 16:06:57 -07:00
Benjamin Lichtman
8f3561f7ec
Merge pull request #27671 from uniqueiniquity/portAsyncFixes
Port async fixes
2018-10-11 13:10:21 -07:00
Andy
cd1803fdf8
Make RenameInfo a union (#27382) (#27392) 2018-10-11 11:57:01 -07:00
Andy
1a78981d15
Use safe some function to handle undefined declarations (fixes #27338) (#27698) 2018-10-11 09:24:58 -07:00
Andy
22260d327d
importFixes: Skip alias when testing isTypeOnlySymbol (#27674) (#27696) 2018-10-10 16:48:09 -07:00
Andy
1998d6877e
Revert lodash.d.ts baseline (#27675) 2018-10-10 13:18:59 -07:00
Benjamin Lichtman
7c6a14e65d Insert async keyword as last modifier 2018-10-09 16:04:04 -07:00
Dhruv Rajvanshi
045c73a5a2 Issue #27301: Fixed crash when converting function to async (#27396) 2018-10-09 16:03:51 -07:00
Andy Hanson
59e556b5a4 convertToAsyncFunction: Use ReadonlyArray / ReadonlyMap where possible 2018-10-09 16:03:25 -07:00
Ryan Cavanaugh
ec0cfab76b Update LKG v3.1.2 2018-10-09 10:39:52 -07:00
Ryan Cavanaugh
8038e14a61 Update patch version to .2 2018-10-09 10:39:39 -07:00
Nathan Shively-Sanders
1d773a1e09
Fix class/constructor-function merge (#27366)
The check for prototype assignment on constructor functions assumes
that the prototype property, if present, comes from an assignment
declaration, such as:

```js
SomeClass.prototype = { /* methods go here */ }
```

In this case, however, when class SomeClass and var SomeClass merge
(because this is allowed), prototype is the synthetic property from
class SomeClass, which has no valueDeclaration.

The fix is to check that prototype has a valueDeclaration before
checking whether the valueDeclaration is in fact a prototype-assignment
declaration.
2018-10-08 12:56:03 -07:00
Nathan Shively-Sanders
1cfab760e1
Only functions can be constructor functions (#27369)
`@constructor` put on anything incorrectly makes it a JS constructor. This
is a problem for actual constructors, because getJSClassType doesn't
work on actual classes. The fix is to make isJSConstructor require that
its declaration is a function.
2018-10-08 10:01:04 -07:00
Nathan Shively-Sanders
95dc1f2574
Fix name resolution of exports in JS (#27394)
The ad-hoc name resolution rule for `exports` forgets to check the
requested meaning. When `getTypeReferenceType` calls`
resolveTypeReferenceName` with `Type` only in order to give an error
when the program uses a value like a type, it is incorrectly able to
resolve `exports` instead of producing an error. Then this incorrect
symbol gets treated like an alias, which it isn't, causing the assert.

The fix, for now, is to make resolution of `exports` check the requested
meaning so that it only resolves when `Value` is requested. This makes
the above code an error ("Cannot use the namespace 'exports' as a
type."), but I think this is fine for a bug fix. We can decide later if
`exports` should behave like other expandos and be a legal type
reference.

Note that the name actually does resolve correctly, so JS users will get
the desired completions. They'll just have an error to suppress if they
have checkJs on.
2018-10-08 08:53:21 -07:00
Nathan Shively-Sanders
36e212bca3
Report circular JSDoc type references (#27404)
JSDoc types references can often be to values, which can often be
circular in ways that types tied to declarations cannot. I decided to
create a separate property on SymbolLinks rather than reusing
declaredType, although I'm not sure that's strictly required.
2018-10-05 15:41:09 -07:00
Nathan Shively-Sanders
f23845aa9b
Fix parent points in unreachable code (#27400)
In the binder, unreachable code mistakenly skips the `bindJSDoc` call in
`bindChildrenWorker`, which sets parent pointers. The fix is to call
`bindJSDoc` in the case of unreachable code as well.
2018-09-27 16:11:46 -07:00
Nathan Shively-Sanders
b77cb2ac45
Fix commonjs export= merging (#27368)
I'm surprised we haven't seen more of this; I suspect it's because the
mixed `module.exports=` + `export.foo=` pattern isn't that common.
However, it'll happen any time that the exported symbol is unknown;
getCommonJsExportEquals blithely clones unknownSymbol and proceeds to
stick the `exports.foo=` properties onto it.

This causes problems later, because the compiler checks for
unknownSymbol with `===`. The fix is to not stick properties onto a
clone of unknownSymbol. This makes the correct errors appear and removes
the crash.
2018-09-26 10:54:26 -07:00
Daniel Rosenwasser
f4a643fdf0 Update LKG. v3.1.1 2018-09-26 13:48:19 -04:00
Nathan Shively-Sanders
53105b3aff
Fix crash in use-before-def checking of enum tag (#27350) 2018-09-25 16:06:23 -07:00
Daniel Rosenwasser
29dbbff5bf Update LKG. 2018-09-25 14:02:10 -04:00
Daniel Rosenwasser
005d202251 Bump version to 3.1.1 2018-09-25 13:54:24 -04:00
Ryan Cavanaugh
6d1bd9757d
Merge pull request #27324 from RyanCavanaugh/3.1-lkg-update
3.1 LKG update
2018-09-25 10:43:23 -07:00
Ryan Cavanaugh
c1fb0e18fc Merge remote-tracking branch 'upstream/release-3.1' into 3.1-lkg-update 2018-09-24 16:36:45 -07:00
Ryan Cavanaugh
feda0c7a52
Merge pull request #27330 from Microsoft/fixTypesVersionsFourslashTest
Fixes the completionForStringLiteralNonrelativeImport13 test
2018-09-24 16:36:19 -07:00
Ron Buckton
33b4900816 Fixes the completionForStringLiteralNonrelativeImport13 test 2018-09-24 16:15:30 -07:00
Ryan Cavanaugh
04374250cc 3.1 LKG update 2018-09-24 15:14:09 -07:00
Ryan Cavanaugh
0f176819e4
Merge pull request #27248 from Microsoft/release-3.1_fileToRename_tsserver
Ensure session passes along fileToRename
2018-09-24 14:02:31 -07:00
Wesley Wigham
fc1abbbabe
Fix non-selfclosing JSX tag contextual types (#27251) (#27314) 2018-09-24 13:51:07 -07:00
Wesley Wigham
dd9d5d1398
Limit the narrow-to-fresh rule added with boolean literals to only boolean literals (#27274) (#27319)
* Remove the narrow-to-fresh rule added with boolean literals

* Revert "Remove the narrow-to-fresh rule added with boolean literals"

This reverts commit 9f96fe5da33f9297157b326c37680a964b23d7eb.

* Only apply freshness to booleans for now

* Add largeish example from issue

* Should be AND not OR

* Add minor improvements suggested by @ahejelsberg

* Reorder conditional a bit
2018-09-24 13:51:00 -07:00
Ryan Cavanaugh
d715d835c6
Merge pull request #27254 from weswigham/port-distribution-fix
Distribute indexes of indexed access types first (#27243)
2018-09-21 13:25:40 -07:00
Ryan Cavanaugh
c48de89e0a
Merge pull request #27252 from weswigham/port-27246
Set parent pointers on manufactured reference for property initialization check (#27246)
2018-09-21 13:24:52 -07:00
Wesley Wigham
317b2c2a74
Distribute indexes of indexed access types first (#27243) 2018-09-20 17:13:35 -07:00
Wesley Wigham
aa2dd4d19a
Add release-3.1 to covered branches (#27253) 2018-09-20 16:57:16 -07:00
Wesley Wigham
93f6b73c8c
Set parent pointers on manufactured reference for property initialization check (#27246) 2018-09-20 16:54:46 -07:00
Andy Hanson
a5214614ba Ensure session passes along fileToRename 2018-09-20 16:44:40 -07:00