Commit Graph

16244 Commits

Author SHA1 Message Date
falsandtru
4c4f0e8e65 Fix Promise interfaces 2018-03-22 06:02:18 +09:00
Nathan Shively-Sanders
c930895d80 Undo 'any' inference propagation (#22736)
* Undo 'any' inference propagation

Removing this only changes one test slightly, and fixes JQuery types,
which rely on the old method of inference.

* Add jquery regression test and update baselines

* Restore any inference propagation to wildcard only
2018-03-21 11:13:39 -07:00
csigs
cda4b13d3f LEGO: check in for master to temporary branch. 2018-03-21 04:10:22 +00:00
csigs
b1c9a8e9dd LEGO: check in for master to temporary branch. 2018-03-20 22:10:51 +00:00
Andy
cc3921323c Support services settings (#22236)
* Support services settings

* Code review

* More review

* Use different names for Options and GetCompletionsAtPositionOptions (todo: come up with better names)

* More renames

* More renaming

* Support quote style in importFixes

* Add `importModuleSpecifierPreference` option

* Support quote style for `throw new Error('Method not implemented.')` (#18169)

* options -> preferences
2018-03-20 13:07:59 -07:00
Andy
9ee5167030 Evaluate isPrototypePropertyAssignment lazily (#22728) 2018-03-20 12:33:30 -07:00
Nathan Shively-Sanders
1074819be3 Js constructor function fixes (#22721)
* Do not add undefined for this assignments in functions

* Test:constructor functions with --strict

* First draft -- works, but needs a stricter check added

* Update baselines

* Make undefined-skip stricter and more efficient

Symbol-based now instead of syntactic

* Exclude prototype function assignments

* Add explanatory comment
2018-03-20 11:24:09 -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
bc3d6a4b3c LEGO: check in for master to temporary branch. 2018-03-20 16:10:28 +00:00
csigs
d39d21ec1b LEGO: check in for master to temporary branch. 2018-03-20 10:10:29 +00: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
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
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
77e529bf7e LEGO: check in for master to temporary branch. 2018-03-14 22:10:37 +00: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
Andy
6ef2db5c48 inferFromUsage: Handle being at an unexpected location (#22569)
* inferFromUsage: Handle being at an unexpected location

* add comment
2018-03-14 10:57:38 -07:00
Nathan Shively-Sanders
677d860b44 No error on unmatchable @param tags (#22510)
* No errr on unmatchable `@param` tags

Such as when the initializer is not a function, or when the function
mentions `arguments` in its body.

* Do not require dummy param for JS uses of arguments

1. JS functions that use `arguments` do not require a dummy parameter in
order to get a type for the synthetic `args` parameter if there is an
`@param` with a `...` type.
2.JS functions that use `arguments` and have an `@param` must have a
type that is a `...` type.

* Check for array type instead of syntactic `...`

* Address PR comments

* Update baselines
2018-03-14 10:17:54 -07:00
Nathan Shively-Sanders
24fdb5201d Pass stack trace limit to parallel workers, and always convert to number (#22527)
* Pass stackTraceLimit to parallel workers

Specifying it breaks some output, both in parallel and normal runners.
I'll look at that in another commit, probably another PR, depending on
how simple the problem is.

* Always convert stackTraceLimit to a number

Sometimes it's not a number, even though the type claims it is.
2018-03-14 07:05:32 -07:00
csigs
e8ee4b02b4 LEGO: check in for master to temporary branch. 2018-03-14 04:10:27 +00:00
Andy
d1d69602ae getJSDocParameterTags: Always return defined result (#22523)
* getJSDocParameterTags: Always return defined result

* Make line shorter

* Simplify remaining use
2018-03-13 17:56:00 -07:00