25267 Commits

Author SHA1 Message Date
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
Benjamin Lichtman
b850b3b88f Update test name 2018-09-18 10:26:12 -07:00
Benjamin Lichtman
b484370dcc Clean up for type precision and clarity 2018-09-18 09:34:08 -07:00
Anders Hejlsberg
6adb9d194f
Merge pull request #27157 from Microsoft/fixEmptyObjectFalsiness
Fix empty object falsiness
2018-09-18 09:26:24 -07:00
Benjamin Lichtman
e40ce24f8f
Merge pull request #27156 from uniqueiniquity/promisesAndUnderscores
Async code fix issues concerning underscores and nested promises
2018-09-18 08:34:16 -07:00
Anders Hejlsberg
c0eb742cf3 Merge branch 'master' into fixEmptyObjectFalsiness 2018-09-18 06:28:27 -07:00
Alexander T
5b5af23b41 use getEmitDeclarations helper 2018-09-18 14:46:42 +03:00
Alexander T
d11117829d allow using declarationDir with composite option 2018-09-18 14:38:48 +03:00
Alexander T
c510df1a53 deny using allowJs option with composite 2018-09-18 12:41:30 +03:00
Sheetal Nandi
d51b8d940c Use originalFileName (fileName of input project reference file) to resolve module/typereferences/reference paths in it instead of output decl file path
This also ensures that originalFileName, resolvedPath are set correctly even when we are reusing program structure
Fixes #26036
2018-09-17 19:00:30 -07:00
Sheetal Nandi
b6d90841c9 Add traceResolution option to build options 2018-09-17 18:48:57 -07:00
Sheetal Nandi
83fe1ead04
Merge pull request #27170 from weswigham/fix-build-assert
Implement readDirectory on the watch mode CompilerHost
2018-09-17 18:47:14 -07:00