25515 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
bf393ae1cd
Check EOF token to get errors for JSDoc (#28000)
* Check EOF token to get errors for JSDoc

* outputFile instead of noEmit for test
2018-10-19 16:23:34 -07:00
Wesley Wigham
69b1cb5bac
Add new special assignment kinds for recognizing Object.defineProperty calls (#27208)
* Add new special assignment kinds for recognizing Object.defineProperty calls

* Add support for prototype assignments, fix nits

* Fix code review comments

* Add test documenting behavior in a few more odd scenarios
2018-10-19 14:31:55 -07:00
Nathan Shively-Sanders
e379aeb151
Fix alias of module.exports->exports->IIFE (#27992)
In JS, when you assign `module.exports = exports` and the entire module is
wrapped in an IIFE, the resulting `export=` symbol, after following
aliases, is the module itself. This results in trying to merge the
file's exports with itself inside `getCommonJsExportEquals`, since it
thinks that it has found new exports, possibly in an object literal,
that need to be merged with the file's exports.

For example:

```js
(function() {
exports.a = 1
module.exports = exports
})()
```
2018-10-19 13:50:38 -07:00
Ryan Cavanaugh
b64d08a21b
Merge pull request #27522 from jack-williams/trailing-void-args-are-optional
Fix #4260 : Allow trailing arguments that accept void to be omitted
2018-10-19 10:16:56 -07:00
Nathan Shively-Sanders
8779d4ca88
Fix JS merge crashes from lovefield (#27989)
1. Merge enum with expando.
2. Merge enum member with property assignment.
3. Merge interface-declared method declaration with
prototype-property-assignment method declaration.

The reason that the enum merges crash is that getTypeOfSymbol assumes
that symbol flags are (basically) mutually exclusive. This assumption is
shredded, badly, for JS merges.

One fix is to drop the assumption of exclusivity and instead order cases
by least to most likely. This has the highest chance of working, but is
also slow, since you would prefer to order cases by most likely *first*,
not *last*.

The other fix, which is what I did here, is to add a last-chance
re-dispatch at the bottom of
`getTypeOfVariableOrParameterOrPropertyWorker`. This dispatch uses the
valueDeclaration instead of the symbol flags.
2018-10-19 09:23:05 -07:00
Andy
a3c22683ab
findAllRefs: Fix bug when symbol.declarations is undefined (#27977) 2018-10-18 14:27:21 -07:00
Sheetal Nandi
91bb32ade4
Merge pull request #27560 from Microsoft/transitiveReferences
Resolve modules, type reference directives in context of referenced file
2018-10-18 13:03:10 -07:00
Jack Williams
8500f7ce20 Merge branch 'master' into trailing-void-args-are-optional 2018-10-18 19:22:18 +01:00
Wesley Wigham
e58371e03a
Remove now unnessesary casts (#27954) 2018-10-17 15:17:21 -07:00
Sheetal Nandi
7b9ae4d9d0
Merge pull request #27952 from Microsoft/contextualSignature
When contextual type doesnt find property in unit type, use the index signature from unit type(fix the incorrectly used union type to get the signature)
2018-10-17 14:59:42 -07:00
Wesley Wigham
9554f09d09
Add ability to infer to the simplified form of a type variable (#27953)
* Add ability to infer to the simplified form of a type variable

* Add test
2018-10-17 14:44:39 -07:00
Sheetal Nandi
31f4053d3e When contextual type doesnt find property, use the index signature from unit type(fix the incorrectly used union type to get the signature)
Fixes #27949
2018-10-17 14:15:56 -07:00
Wesley Wigham
7b5ef64e76
Unify JSX And Normal Call Checking Codepaths (#27627)
* Unify JSX Call Checking Codepaths

* Add tests for fixed issues

* Fix lint, move all error checking into the only-run-once resolveSignature call

* Remove unused (unreachable?) code path

* Consolidate a little more duplicated logic into signature checking

* Fix #19775 a bit more

* Cosmetic changes from CR
2018-10-16 20:16:00 -04:00
Sheetal Nandi
bc72577ce3 Merge branch 'master' into transitiveReferences 2018-10-16 14:56:07 -07:00
Andy
eb2297df02
Fix compile errors in tsbuildWatchMode.ts (#27870)
* Fix compile errors in tsbuildWatchMode.ts

* Remove TODO comments

* new LKG

* Add tslint disables
2018-10-16 12:28:14 -07:00
Sheetal Nandi
b69622a114 Merge branch 'master' into transitiveReferences 2018-10-16 10:41:17 -07:00
Andy
0f4a615bcb
Fix isSourceFileFromExternalLibrary for file with redirect (#27917)
* Fix isSourceFileFromExternalLibrary for file with redirect

* Alternate fix

* Use currentNodeModulesDepth > 0
2018-10-16 09:01:25 -07:00
TypeScript Bot
1dadee88be Update user baselines (#27922) 2018-10-16 08:38:54 -07:00
Sheetal Nandi
cb954cbb0a
Merge pull request #27871 from Microsoft/formatting
Handle when advancing past , of call expression moves past endPos of formatting
2018-10-15 21:10:09 -07:00
Sheetal Nandi
3aa33aa4ed Simplify the test 2018-10-15 15:55:45 -07:00
Anders Hejlsberg
04fd365ec3
Merge pull request #27911 from Microsoft/fixCircularMappedType
Fix circular mapped type instantiations for arrays and tuples
2018-10-15 15:51:31 -07:00
Daniel Rosenwasser
b852f3a428
Merge pull request #27898 from nd-02110114/patch-1
Delete the link which doesn't work in CONTRIBUTING.md
2018-10-15 14:02:08 -07:00
Anders Hejlsberg
9767522ca0
Merge pull request #27695 from Microsoft/mixedDiscriminantTypes
Allow non-unit types in union discriminants
2018-10-15 13:10:27 -07:00
Nathan Shively-Sanders
c184184713
Add getEffectiveConstructSignatures (#27561)
* Add helpers that understand constructor functions

* getEffectiveConstructSignatures gets construct signatures from type, and
  call signatures from constructor functions if there are no construct
  signatures.
* getEffectiveConstructSignatureReturnType gets the "JS Class type" for
  constructor functions, and the return type of signatures for all other
  declarations.

This is a first step toward making constructor functions have construct
signatures instead of call signatures, which will also contribute to
fixing instantiation of generic constructor functions, which is basically
broken right now.

Note that the baselines *improve* but, because of the previously
mentioned generic problem, are still not correct. Construct signatures
for constructor functions and generic constructor functions turns out to
be an intertwined problem.

* Correct correct originalBaseType

And, for now, return anyType for generic constructor functions used as
base types. Don't give an incorrect error based on the function's return
type, which is usually void.

* Add error examples to tests

* Add construct signatures instead of getEffective* functions

* Fix typo in baseline

* Remove pesky newline

I thought I got rid of it!

* Test of constructor tag on object literal method

It doesn't work, and shouldn't in the future, because it's a runtime
error.
2018-10-15 12:47:57 -07:00
Anders Hejlsberg
3930525678 Accept new baselines 2018-10-15 10:24:10 -07:00
Anders Hejlsberg
0c3221c220 Add regression test 2018-10-15 10:24:00 -07:00
Anders Hejlsberg
709f5f2fc4 Handle circular mapped type instantiations for arrays and tuples 2018-10-15 10:18:54 -07:00
TypeScript Bot
bb275b999c Update user baselines (#27905) 2018-10-15 08:08:33 -07:00
Daiki Nishikawa
b94dfd9cea
delete link 2018-10-15 10:03:01 +09:00
Sheetal Nandi
e3bfec5217 Handle when advancing past , of call expression moves past endPos of formatting
Fixes #26513
2018-10-12 16:06:24 -07:00
Andy
54a5be1860
At '.' in object literal, don't close the object (#27850)
* At '.' in object literal, don't close the object

* Include diagnostics test
2018-10-12 08:49:04 -07:00
Sheetal Nandi
12cd3ea6ac
Merge pull request #27849 from Microsoft/unionWithIndexedLiteral
Use string/number signature to get contextual type
2018-10-11 17:50:16 -07:00
Nathan Shively-Sanders
ec0e8cbe2b
noImplicitAny as suggestion (#27693)
* noImplicitAny as suggestion

Note that not all noImplicitAny errors turn into suggestions. In
particular,

1. reportErrorsFromWidening does not, because it doesn't log an error
that infer-from-usage fixes, and fixing it would require
otherwise-unnecessary code.
2. auto types do not have implicit any suggestions, because that would
require running control flow in noImplicitAny mode.

* Rename reportImplicitAny+forbid it for non-checkJS

In JS, you only get implicit any errors/suggestions with checkJS or
ts-check turned on.

* Update baselines

* Use isCheckJsEnabledForFile

* Remove noImplicitAny parameter since it's in scope already
2018-10-11 16:15:38 -07:00
Sheetal Nandi
99b271853a
Merge pull request #27844 from Microsoft/includeJson
Allow files to be included by `*.json` pattern in include of tsconfig
2018-10-11 15:48:44 -07:00
Sheetal Nandi
9cda8d61fa
Merge pull request #27714 from Microsoft/okToSkipJsonOverrite
Skip writing json file if it is going to overwrite same location
2018-10-11 15:48:28 -07:00
Matt McCutchen
d19fb98ec6 When instantiating a mapped type, clone the type parameter. (#27597)
This gives the type parameter returned by getTypeParameterFromMappedType
an accurate constraint.

Fixes #27596.
2018-10-11 15:45:51 -07:00
Sheetal Nandi
c0729a22fd Use string/number signature to get contextual type
Fixes #26587
2018-10-11 15:12:13 -07:00
Sheetal Nandi
92f3f1cde0 Allow files to be included by *.json pattern in include of tsconfig
Fixes #25636
2018-10-11 14:45:27 -07:00
Nathan Shively-Sanders
4d504f9b30
assertNever special-cases nodes with SyntaxKind (#27712)
* assertNever special-cases nodes with SyntaxKind

* Fix single-quote lint

* Use stringify when not a node
2018-10-11 12:33:29 -07:00
Sheetal Nandi
578f8db7d9 Add test cases for transitive reference with different module resolution 2018-10-11 12:26:19 -07:00
Anders Hejlsberg
5a126e2b27
Merge pull request #27587 from Microsoft/fixUnionOfTupleIndexing
Fix indexing and destructuring of unions of tuple types
2018-10-11 12:01:24 -07:00
Sheetal Nandi
ae1bd8bc33 Merge branch 'master' into transitiveReferences 2018-10-11 11:33:23 -07:00
Sheetal Nandi
2787a2793a Skip writing json file if it is going to overwrite same location
Fixes #24715
2018-10-11 11:12:44 -07:00
Sheetal Nandi
6365eb05f4
Merge pull request #27715 from Microsoft/handleEmitDeclarationOnly
Do not generate jsFile path if its emitOnlyDeclarations is set
2018-10-11 11:08:40 -07:00
Sheetal Nandi
0d91838593 Do not generate jsFile path if its emitOnlyDeclarations is set
Fixes #27009
2018-10-11 10:14:59 -07:00
Anders Hejlsberg
b040ea66d1 One more CR fix 2018-10-11 10:13:36 -07:00
TypeScript Bot
d493c47aac Update user baselines (#27710) 2018-10-11 09:58:25 -07:00
Anders Hejlsberg
dd6365615d Address CR feedback 2018-10-11 08:45:47 -07:00
Sheetal Nandi
b2bae85cce
Merge pull request #27609 from Microsoft/betterStaticError
Report the errors for static incompatibility only if instance types are assignable
2018-10-10 15:42:46 -07:00
Sheetal Nandi
3e91652640
Merge pull request #27688 from Microsoft/fixTsBuildIncrementalNoErrorScenario
Remove any existing errors in case of successful build in tsbuild watch mode
2018-10-10 15:42:31 -07:00