25278 Commits

Author SHA1 Message Date
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
Ryan Cavanaugh
9103191527
Merge pull request #27205 from Microsoft/master
Merge `master` into `release-3.1`
2018-09-18 16:04:09 -07:00
Nathan Shively-Sanders
90d3f8b573
Only report expando use-before-def for identical control flow containers (#27199) 2018-09-18 15:28:16 -07:00
Sheetal Nandi
089b86af96
Merge pull request #27195 from Microsoft/projectReferenceInputDetection
Detect the input file of referenced project with fileNames from parsed command line
2018-09-18 14:53:35 -07:00
Sheetal Nandi
3c6c32bdfc Merge branch 'master' into projectReferenceInputDetection 2018-09-18 14:34:24 -07:00
Sheetal Nandi
865b3e7862
Merge pull request #27172 from Microsoft/moduleResolutionWithOutDir
Use originalFileName (fileName of input project reference file) to resolve module/typereferences/reference paths in it instead of output decl file path
2018-09-18 14:33:33 -07:00
Sheetal Nandi
86f8ab127e
Merge pull request #27196 from Microsoft/declarationAndComposite
Ensure all the usages of compilerOptions.declaration take into account compilerOptions.composite if needed
2018-09-18 14:33:13 -07:00
Sheetal Nandi
4c047254e6 Ensure all the usages of compilerOptions.declaration take into account compilerOptions.composite if needed. 2018-09-18 13:53:16 -07:00
Andy
c57ff087d6
Add codefix to generate types for untyped module (#26588) 2018-09-18 11:47:29 -07:00
Sheetal Nandi
0d5aeeef22 Detect the input file of referenced project with fileNames from parsed command
Fixes #25864 and #26054
2018-09-18 11:44:16 -07:00
Sheetal Nandi
7852cf7ed3
Merge pull request #27175 from a-tarasyuk/bug/error-using-declaration-dir-with-composite
#26862: allow using declarationDir with composite option
2018-09-18 10:53:38 -07:00
Benjamin Lichtman
cd28af0260
Merge pull request #27188 from uniqueiniquity/miscAsyncFixes
Miscellaneous async code fix fixes
2018-09-18 10:53:26 -07:00
Sheetal Nandi
4009d1654b
Merge pull request #27176 from a-tarasyuk/bug/26786-no-error-when-using-allowjs-with-composite
#26786: deny using allowJs option with composite
2018-09-18 10:53:10 -07:00