Commit Graph

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 9f96fe5da3.

* 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