Commit Graph

23471 Commits

Author SHA1 Message Date
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
Sheetal Nandi 7329eb1ab1 Make sure config file parsing errors are available through program
Fixes #22570, #21940
2018-03-15 14:58:50 -07:00
Sheetal Nandi 66c690d401 Better test to see when console clearing happens 2018-03-15 14:46:43 -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
王文璐 58b147e4c4 add spelling suggestion support for module 2018-03-15 10:40:01 +08: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
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 8d172aa353 LEGO: Merge pull request 22561
LEGO: Merge pull request 22561
2018-03-13 21:10:47 -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
Sheetal Nandi 60501c8b49 Merge pull request #22526 from Microsoft/testModifiedTime
Instead of using current time, use predefined time for modification to ensure we can detect changes correctly and arent timing dependent
2018-03-13 17:06:22 -07:00
Sheetal Nandi d8fe6ed01a Instead of using current time, use predefined time for modification to ensure we can detect changes correctly and arent timing dependent
Fixes #22455
2018-03-13 17:05:16 -07:00
Nathan Shively-Sanders 0fa838a3ef Brackets and postfix= in @param add undefined (#22514)
* Brackets and postfix= in `@param` add undefined

Previously they only added optionality.
Note that, unlike Typescript, when a parameter initializer is specified
in jsdoc, it does not remove undefined in the *body* of the function.
That's because TS will generate initialisation code, but JS won't, so
the author will have to manually write code to remove undefined from the
type.

```js
/** @param {number} [a=101] */
function f(a) {
  // a: number | undefined here
  if (!a) {
    a = 101
  }
  // a: number here
}
```

Note that we don't check that
1. the initializer value is actually assigned to the parameter.
2. the initializer's type matches the declared type of the parameter.

Pretty much we just parse it and leave it alone.

* Address PR comments
2018-03-13 15:56:38 -07:00
Andy 23a64fe804 Remove redundant call to checkNodeDeferred (#22516)
* Remove redundant call to `checkNodeDeferred`

* Use a set to speed up `contains` checks
2018-03-13 15:46:25 -07:00
csigs e41feab3bd LEGO: Merge pull request 22521
LEGO: Merge pull request 22521
2018-03-13 15:11:08 -07:00
csigs 472a7f4d5b LEGO: check in for master to temporary branch. 2018-03-13 22:10:47 +00:00
Sheetal Nandi 4046bb15ac Do not send first missing file event as well. 2018-03-13 15:09:13 -07:00
Andy 0c6ef348ce Simplify parseJsxChildren (#22511) 2018-03-13 12:28:21 -07:00
Mohamed Hegazy 85df31cde4 Merge pull request #22512 from Microsoft/fixUseOfProcess
Do not use unguarded process in tsc.ts
2018-03-13 11:24:31 -07:00
Sheetal Nandi 32018f66bb Merge pull request #22496 from Microsoft/suppressMultipleDelete
Do not send delete event every poll for missing folder
2018-03-13 11:11:51 -07:00
Mohamed Hegazy 708caf9a72 Do not use unguarded process in tsc.ts 2018-03-13 11:03:12 -07:00
Nathan Shively-Sanders 25f7e0b735 Fix crash after var = require('x') type resolution (#22452)
* Harden var x=require name resolution+update chrome baseline

Chrome-devtools crashed after the new `var = require('x')` resolution
because it forgot to check whether the declaration had an initializer.

* Update chrome-devtools-frontend baseline
2018-03-13 10:44:02 -07:00
EcoleKeine e7a3d4b192 Some Constructor's signature missing null type
according to ECMAScript® 2015 Language Specification - http://www.ecma-international.org/ecma-262/6.0

MapConstructor : 23.1.1.1 step6
WeakMapConstructor : 23.2.1.1 step6
SetConstructor : 23.3.1.1 step6
WeakSetConstructor : 23.4.1.1 step6
2018-03-14 00:11:43 +08:00
csigs 58bb30a64b LEGO: Merge pull request 22505
LEGO: Merge pull request 22505
2018-03-13 09:10:40 -07:00
csigs b01da6d65e LEGO: check in for master to temporary branch. 2018-03-13 16:10:20 +00:00
csigs 8e8e879fc2 LEGO: Merge pull request 22502
LEGO: Merge pull request 22502
2018-03-13 03:10:39 -07:00
csigs 6c85649fa4 LEGO: check in for master to temporary branch. 2018-03-13 10:10:20 +00:00
csigs 8d5aa2452e LEGO: Merge pull request 22501
LEGO: Merge pull request 22501
2018-03-12 21:10:41 -07:00