22203 Commits

Author SHA1 Message Date
Ryan Cavanaugh
1e66f071fd Always include parent folder failed lookup locations 2018-03-23 14:42:16 -07:00
Nathan Shively-Sanders
ab8233c5d3
Two JSdoc parsing fixes (#22705)
* Correctly parse JSDoc type *=

* Allow `markdown` quoted param names in JSDoc

* Add tests and update baselines

* Get correct span for the type '*'

* Fix whitespace lint

* Add unbracketed type test
2018-03-20 09:23:08 -07:00
csigs
d3b55f40e5
LEGO: Merge pull request 22719
LEGO: Merge pull request 22719
2018-03-20 09:10:48 -07:00
csigs
bc3d6a4b3c LEGO: check in for master to temporary branch. 2018-03-20 16:10:28 +00:00
csigs
8b9d6dff52
LEGO: Merge pull request 22714
LEGO: Merge pull request 22714
2018-03-20 03:10:51 -07:00
csigs
d39d21ec1b LEGO: check in for master to temporary branch. 2018-03-20 10:10:29 +00:00
csigs
6aa0afb87d
LEGO: Merge pull request 22711
LEGO: Merge pull request 22711
2018-03-19 21:10:41 -07:00
csigs
7141522368 LEGO: check in for master to temporary branch. 2018-03-20 04:10:21 +00:00
Wesley Wigham
eaabf920eb
Combine keyof T inferences (#22525)
* Combine keyof T inferences

* Extract covariant inference derivation into function

* Test:keyof inference lower priority than return inference

for #22376

* Update 'expected' comment in keyofInferenceLowerPriorityThanReturn

* Update comment in test too, not just baselines

* Fix typo

* Move tests
2018-03-19 16:56:51 -07:00
Nathan Shively-Sanders
b56093f3ac
Fix type when annotated with a JSDoc function type (#22692)
* Fix type when annotated with a JSDoc function type

Previously,
1. A variable annotated with a JSDoc function type would not require all
its parameters to be provided. This should only apply to functions
without a type annotation.
2. A parameter in a function with a JSDoc function type annotation would
still have the type 'any'.
3. Two `var` declarations in a Typescript and Javascript file,
respectively, would error even when they had identical function types.

* Update baselines and add constructor test

* Handle ConstructorType too

* Add test:method sig inside literal type

* Contextually type parameters by parent sig's JSDoc

Instead of a syntactic check in getJSDocTag

* Remove redundant check:isUntypedSignatureInJSFile

* Positive check for value signatures

Instead of excluding type signatures piecemeal.
2018-03-19 16:00:45 -07:00
csigs
d88041fc0a
LEGO: Merge pull request 22703
LEGO: Merge pull request 22703
2018-03-19 15:12:07 -07:00
csigs
995c7db8cd LEGO: check in for master to temporary branch. 2018-03-19 22:11:42 +00:00
Andy
737859e3c1
Put simpler condition in front of more complex one (#22696) 2018-03-19 13:35:19 -07:00
Andy
096b2b0712
Use isFunctionLike instead of switch (#22698) 2018-03-19 13:35:01 -07:00
Andy
0df92a1ba1
Simplify isImplementation (#22660) 2018-03-19 11:59:22 -07:00
Andy
c7215a181c
findAllRefs: give entry for union its own definition (#22694) 2018-03-19 11:58:20 -07:00
AdityaDaflapurkar
76fefddcaa Remove type assertion in sum function (#22670) 2018-03-19 08:19:24 -07:00
Anders Hejlsberg
c48662c891
Merge pull request #22675 from Microsoft/fixWideningInDestructuring
Fix widening in destructuring
2018-03-17 15:21:16 -07:00
Anders Hejlsberg
b7047e852b Accept new baselines 2018-03-17 12:23:54 -07:00
Anders Hejlsberg
979bda484c Add regression test 2018-03-17 12:23:45 -07:00
Anders Hejlsberg
eab5b9f20c Accept new baselines 2018-03-17 12:23:05 -07:00
Anders Hejlsberg
20c008ecab Mark implied object destructuring patterns as object literal types 2018-03-17 12:02:19 -07:00
Nathan Shively-Sanders
bb23e9601f
Parse JSDoc ...T and T= only at top-level JSDoc (#22661)
* Parse JSDoc ...T and T= only at top-level JSDoc

...T and T= should only be legal at the top level of a type, and only in
JSDoc, since at least T= is ambiguous elsewhere. This PR changes parsing
to make that happen. The resulting parse tree is now simpler, allowing
me to get rid of some code I had to add in the checker.

* Extract JSDoc type parsing into its own function

* PR comments:return from parseJSDocType
2018-03-16 16:08:42 -07:00
Andy
5fd3ed2c10
Fix indent (#22662) 2018-03-16 15:54:52 -07:00
Andy
42c7aa85ce
Clean up isNameOfExternalModuleImportOrDeclaration (#22659) 2018-03-16 14:54:41 -07:00
Andy
92ec1149ac
getAllJSDocTagsOfKind always returns a defined result (#22652) 2018-03-16 14:01:28 -07:00
Andy
28ff6b6ef3
Store import nodes in SourceFile.imports instead of StringLiteral nodes (#22495)
* Store import nodes in SourceFile.imports instead of StringLiteral nodes

* Change SourceFile#imports storage back

* Code review

* StringLiteral -> StringLiteralLike
2018-03-16 14:01:00 -07:00
Andy
adf3635a1f
For import fix, for "foo/index" module, use "foo" as default export name, not "index" (#22651) 2018-03-16 14:00:33 -07:00
Nathan Shively-Sanders
3b6ae8536f
JSDoc ?Type adds optionality to parameters (#22646)
* jsdoc ?Type adds optionality to parameters

Chrome devtools expects that parameters with type `?T` (or `T?`) add
null to `T` and optionality to the parameter. Previously it only added
null to the type.

Currently the PR does *not* add undefined to the type of
`T`, which is expected by chrome-devtools-frontend, but is inconsistent
with typescript's rules. The implementation achieves this inconsistency by
exploiting the fact that checking the signature adds optionality and
checking the parameter adds `undefined`.

* Update chrome-devtools-frontend baseline

* Add optionality only for jsdoc postfix=

* Skip jsdoc prefix types in isJSDocOptionalParameter

Previously isJSDocOptionalParameter was incorrect for types like
`?number=`, which are optional but have JSDocNullableType as their root
type node.
2018-03-16 13:28:24 -07:00
Andy
99d5058568
Add 'isPrototypeAccess' helper (#22648)
* Add 'isPrototypeAccess' helper

* Fix type error
2018-03-16 13:27:47 -07:00
Wesley Wigham
2d01d76ee5
Change es2015 transform to retain comments on for of loop bodies (#22396) 2018-03-16 12:57:38 -07:00
Matt Bierner
9774cd5eb5 Fix await code action crashes when await is not in a function (#22623)
Fixes #22614
2018-03-16 11:53:17 -07:00
Andy
b9f60566d0
For f.prototype.m = function() { this.x = 0; } make x a member of f, not of the function expression (#22643) 2018-03-16 11:35:51 -07:00
Sheetal Nandi
d4788f5d41
Merge pull request #22520 from Microsoft/betterDelete
Do not send first missing file event as well, Do not close typing installers watches just to recreate them
2018-03-16 11:17:23 -07:00
Matt Bierner
984aaa3ee9 Fix completions and brace in empty file (#22620)
Fixes #22618
2018-03-16 11:05:33 -07:00
Wesley Wigham
bfe755c6ce
Revert assertion addition (#22622) 2018-03-16 09:04:55 -07:00
Wesley Wigham
19ec83fcdf
Refactor declaration emitter into declaration transformer (#21930)
* Refactor declaration emitter into declaration transformer

* Slight cleanup from code review feedback

* Incorporate fix for new test

* Swaths of PR feedback

* Merge public methods

* Per-file output

* Preserve input import ordering more often

* Unify jsdoc comment start detection under more lenient rule

* Move to per-file transformations to reduce the memory that msut be retained

* Fix typo
2018-03-15 22:23:10 -07:00
Andy
162a273e43
Simplify some code in parseTestData (#22587) 2018-03-15 13:05:01 -07:00
Andy
eb4dba7ad4
Disable assertion for deferredUnusedIdentifierNodes (#22604) 2018-03-15 10:49:39 -07:00
Sheetal Nandi
e48ed3f9c2 Do not close the file watches just to create new ones in the type installer
Fixes #22581
2018-03-15 10:45:09 -07:00
Andy
85e9cce3c7
Don't add external module completions in a pure commonjs file (#22583) 2018-03-15 08:13:16 -07:00
csigs
0666b281b0
LEGO: Merge pull request 22586
LEGO: Merge pull request 22586
2018-03-14 15:10:57 -07:00
csigs
77e529bf7e LEGO: check in for master to temporary branch. 2018-03-14 22:10:37 +00:00
Nathan Shively-Sanders
0d684b5681
Update user tests for new jsdoc fixes (#22582)
From #22510 and #22514, which remove lots of bogus `@param` errors and
add lots of `Object is possibly undefined` errors, respectively.

There are quite a few effects of the correct addition of undefined to
types based on postfix= in jsdoc, actually.
2018-03-14 14:40:35 -07:00
Klaus Meinhardt
7715b5139b Signature#declaration can be undefined (#22515) 2018-03-14 13:24:41 -07:00
Andy
1736741e54
Simplify implementation of firstOrUndefined and lastOrUndefined (#22572) 2018-03-14 12:40:48 -07:00
Andy
5f1668e53d
Use type predicate for getFirstJSDocTag (#22573)
* Use type predicate for getFirstJSDocTag

* Restore API
2018-03-14 12:40:30 -07:00
Nathan Shively-Sanders
3728ec353a
Improve unmatched jsdoc param error (#22577)
* Improve unmatched jsdoc parameter error message

* Remove extraneous carriage return
2018-03-14 12:36:01 -07:00
Andy
e7ce3f9457
useNonAdjustedEndPosition when replacing import node (#22517)
* useNonAdjustedEndPosition when replacing import node

* Never adjust positions, and add trivia test
2018-03-14 11:46:45 -07:00
Wesley Wigham
6efc679b9e
Update circle config to build all branches
And move submodule update into run, since in checkout it doesn't seem to run
2018-03-14 11:23:03 -07:00