22176 Commits

Author SHA1 Message Date
Anders Hejlsberg
b2d702e423 Accept new baselines 2018-03-28 12:05:17 -07:00
Anders Hejlsberg
61f3a829eb Add regression test 2018-03-28 12:05:11 -07:00
Anders Hejlsberg
fc37c8b89c Obtain constraint from destructured property when applicable 2018-03-28 12:05:06 -07:00
Matt Bierner
8dcbf6961e Fix completions and brace in empty file (#22620)
Fixes #22618
2018-03-28 12:04:03 -07:00
Matt Bierner
dc4001f41d Fix await code action crashes when await is not in a function (#22623)
Fixes #22614
2018-03-28 12:03:27 -07:00
Andy
9ff67f636b inferFromUsage: Handle being at an unexpected location (#22569)
* inferFromUsage: Handle being at an unexpected location

* add comment
2018-03-28 12:02:53 -07:00
Mohamed Hegazy
f7e2bb0b09
Merge pull request #22804 from Microsoft/release-2.8_organizeImports_renamed
organizeImports: Fix bug in reference-testing for renamed import (#22797)
2018-03-28 11:20:11 -07:00
Wesley Wigham
52f826a46e
Revert assertion addition (#22622) (#22920) 2018-03-27 17:49:05 -07:00
Andy
77e8a69ab2
importFixes: Distinguish when we need to import JSX constructor or JSX namespace (#22828) (#22901) 2018-03-27 17:05:55 -07:00
Andy
c63b206d4f
Don't add external module completions in a pure commonjs file (#22583) (#22880) 2018-03-26 16:30:29 -07:00
Wesley Wigham
0a1d427f63
Alternate but more general token comment emit fix + organizeImports fix (#22836) (#22840)
@amcasey: Preserve leading trivia when organizing imports

When organizing imports, we used to move the leading and trailing trivia
of each individual import with that import as it was repositioned or
deleted.  This had the unfortunate effect of repositioning or deleting
the header comment of the file.

Our new approach is to leave the leading trivia of the first import
ahead of the resulting block of imports (i.e. it no longer follows the
first import as it is repositioned or deleted).  Trailing trivia on the
first import and trivia on subsequent imports are treated as before.
2018-03-26 13:56:58 -07:00
Mohamed Hegazy
b28e3b09dc Update LKG v2.8.1 2018-03-23 15:09:55 -07:00
Ryan Cavanaugh
4476649adf
Merge pull request #22843 from RyanCavanaugh/port22744
Always include parent folder failed lookup locations
2018-03-23 15:03:33 -07:00
Ryan Cavanaugh
a507246ea9 Always include parent folder failed lookup locations 2018-03-23 14:59:22 -07:00
Mohamed Hegazy
51edf13b3b Update LKG 2018-03-23 11:55:59 -07:00
Sheetal Nandi
2451fff8ad
Merge pull request #22820 from Microsoft/moduleResolutionEvents
[release-2.8] Invalidate resolutions from typeRoots watch event as a fallback mechanism
2018-03-23 10:46:10 -07:00
Sheetal Nandi
477ee3daf5 Invalidate resolutions from typeRoots watch event as a fallback mechanism
There are times when the directory watcher for failed lookup locations isnt invoked and is not very determinitstic
So as a fallback, when we receive typeRoots watch event, handle failed lookup locations as well
2018-03-22 20:42:54 -07:00
Andy
cc67601b60
convertFunctionToEs6Class: Copy comments from constructor to class (#22738) (#22802) 2018-03-22 15:15:21 -07:00
Andy
a9fccb2f89 organizeImports: Fix bug in reference-testing for renamed import (#22797) 2018-03-22 13:09:40 -07:00
Daniel Rosenwasser
bb89abd7fd Update LKG. 2018-03-22 12:59:18 -07:00
Andy
c67fa9d6bd Fixes for new mocha types (#22799)
* Fixes for new mocha types

* fix lint
2018-03-22 12:47:19 -07:00
Wesley Wigham
459df020dc Improve assertion violation message (#22522) 2018-03-22 12:43:49 -07:00
Mohamed Hegazy
a807336462 Update LKG 2018-03-22 10:16:35 -07:00
Sheetal Nandi
3ad21c7494
Merge pull request #22793 from Microsoft/renameNodeModulesContainingAtTypes
[release-2.8] Fix when program module resolution in watch mode when node_modules folder itself gets the rename event
2018-03-22 10:03:09 -07:00
Mohamed Hegazy
5d58dd6925 Update version 2018-03-22 09:48:56 -07:00
Sheetal Nandi
4075018079 Fix when program module resolution in watch mode when node_modules folder itself gets the rename event
Fixes #22712
2018-03-22 09:43:19 -07:00
Nathan Shively-Sanders
f190842d13 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-22 08:53:21 -07:00
Daniel Rosenwasser
e5f0385816
Merge pull request #22780 from Microsoft/fixInferDeclarationFiles-release-2.8
[release-2.8] Fix infer declaration files
2018-03-21 17:16:44 -07:00
Daniel Rosenwasser
92c3b2651a
Merge pull request #22778 from Microsoft/fixIndexedAccessInConditionalType-release-2.8
[release 2.8] Fix indexed access in conditional type
2018-03-21 17:16:26 -07:00
Daniel Rosenwasser
1a2eb323a5 Accept new baselines 2018-03-21 16:23:30 -07:00
Daniel Rosenwasser
b5b2f4c1dd Accept new baselines 2018-03-21 16:00:33 -07:00
Anders Hejlsberg
cf6f39f79d Add regression test 2018-03-21 15:53:30 -07:00
Anders Hejlsberg
150f437372 Revise binder logic to correctly find 'infer T' containers 2018-03-21 15:53:29 -07:00
Anders Hejlsberg
12460d5b03 Revert strict containment check in checkInferType 2018-03-21 15:53:29 -07:00
Anders Hejlsberg
02a3a74e3b Add regression test 2018-03-21 15:53:29 -07:00
Anders Hejlsberg
03c4809d5a Add test to verify errors on nested 'infer T' declarations 2018-03-21 15:53:28 -07:00
Anders Hejlsberg
8efe711151 Properly generate 'infer T' declarations in typeToTypeNode 2018-03-21 15:53:28 -07:00
Anders Hejlsberg
1358091a30 Add test 2018-03-21 15:48:04 -07:00
Anders Hejlsberg
394cf8dfe6 Implicit constraints in non-distributive '[T] extends [U] ? X : Y' types 2018-03-21 15:48:03 -07:00
Anders Hejlsberg
10a611371a Add tests 2018-03-21 15:48:02 -07:00
Anders Hejlsberg
59252f3e66 Add constraints to indexed access types in conditional types 2018-03-21 15:48:01 -07:00
Nathan Shively-Sanders
c2e22dc469 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:14:19 -07:00
Daniel Rosenwasser
0f024f5e32
Merge pull request #22708 from Microsoft/combineKeyofInferenceRelease-2.8
[release-2.8] Combine keyof T inferences (#22525)
2018-03-19 18:20:35 -07:00
Wesley Wigham
044cdbc85f 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 17:59:06 -07:00
Daniel Rosenwasser
a11e54856a
Merge pull request #22697 from Microsoft/projectUpdates
[release-2.8] Port of #22520
2018-03-19 16:17:00 -07:00
Sheetal Nandi
fa66afc2d4 Do not close the file watches just to create new ones in the type installer
Fixes #22581
2018-03-19 11:41:59 -07:00
Sheetal Nandi
cdf5b419f8 Do not send first missing file event as well. 2018-03-19 11:41:49 -07:00
Nathan Shively-Sanders
0f5166535e Improve unmatched jsdoc param error (#22577)
* Improve unmatched jsdoc parameter error message

* Remove extraneous carriage return
2018-03-14 12:37:57 -07:00
Nathan Shively-Sanders
ee8adaeac2 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 11:06:25 -07:00
Nathan Shively-Sanders
bd94170b7f 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:57:55 -07:00