Commit Graph

18371 Commits

Author SHA1 Message Date
Anders Hejlsberg
a5dece30d9 Update declarations 2018-09-11 06:14:41 -07:00
Anders Hejlsberg
b687d906d8 Add CallableFunction/NewableFunction to virtual file system 2018-09-10 15:47:00 -07:00
Anders Hejlsberg
55b6513078 New CallableFunction and NewableFunction types in es5.d.ts 2018-09-10 15:12:42 -07:00
Anders Hejlsberg
22a384d786 New --strictBindCallApply flag in compiler 2018-09-10 15:12:16 -07:00
Anders Hejlsberg
46bd405e59 Better scheme for choosing between co- and contra-variant inferences 2018-09-10 11:25:30 -07:00
Daniel Rosenwasser
cf2f339a5c Merge pull request #26895 from Microsoft/callableErrors
Find first callable/constructable type in union when appropriate
2018-09-07 00:06:11 -07:00
Andy
d31973b905 findAllReferences: Consistently use 'this' parameter as definition site (#26950) 2018-09-06 17:06:50 -07:00
Andy
c401d63c5f findAllReferences: Fix declarationIsWriteAccess for PropertyAssignment in destructuring (#26949) 2018-09-06 15:24:07 -07:00
Andy
a0ebbfb8f0 Fix JSX completions after boolean property (#26943) 2018-09-06 14:15:12 -07:00
Sheetal Nandi
88d5b04c70 Lowercase type reference directives when determining to reuse program structure (just like when we create new program) 2018-09-06 13:26:44 -07:00
Ryan Cavanaugh
8f654f0f1e Merge pull request #21957 from jack-williams/typeof-in-switch
Fix #2214. Support narrowing with typeof in switch condition.
2018-09-06 10:46:13 -07:00
Andy
8c22770ea8 Improve 'isWriteAccess' for findAllReferences (#26889) 2018-09-06 10:44:32 -07:00
Sheetal Nandi
ddba6d8a70 Merge pull request #26825 from Microsoft/resolveJsonModuleEmit
Support json module emit when module emit is commonjs, amd, es2015 or esnext
2018-09-06 09:57:47 -07:00
Sheetal Nandi
8b30ff8393 Merge pull request #26817 from Microsoft/resolvingJsonModuleLikeJsExportsEqual
Use widened type and non fresh type when resolving json module
2018-09-06 09:49:53 -07:00
Mine Starks
7fe0f9da9b Merge pull request #26793 from minestarks/parentDirFix
Fix incorrect path computation of typesMap.json
2018-09-06 08:59:43 -07:00
Jack Williams
911c59f47f Merge branch 'master' into typeof-in-switch 2018-09-06 09:33:01 +01:00
Wesley Wigham
d8f736d319 Change typeof narrowing to narrow selected union members (#25243)
* For typeof narrow all union members prior to filtering

* Revise narrowTypeByTypeof to both narrow unions and applicable union members

* Add repros from issue
2018-09-06 00:41:09 -07:00
Ryan Cavanaugh
c62920ac81 Merge pull request #26392 from mattmccutchen/declare-module-advice
Fixes to the advice for untyped module imports from unknown packages.
2018-09-05 22:02:51 -07:00
Ryan Cavanaugh
cfc6d353b2 Merge pull request #26589 from Microsoft/deduplicate_overloads
Remove unused overloads of 'deduplicate' and 'deduplicateSorted'
2018-09-05 17:43:52 -07:00
Ryan Cavanaugh
54f7666017 Merge pull request #26453 from ajafff/abstract-property-in-initializer
disallow abstract property access in property initializer
2018-09-05 17:43:21 -07:00
Ryan Cavanaugh
270ea77815 Merge pull request #26308 from ajafff/checkresolvedmodule
unittests/moduleResolution: actually assert in checkResolvedModule
2018-09-05 17:42:33 -07:00
Ryan Cavanaugh
ed70d4887a Merge pull request #25633 from Kingwl/strictParameter
add use strict and simple parameter check
2018-09-05 17:15:52 -07:00
Wesley Wigham
0b1183a461 Allow isSymbolAccessible to paint object literal declarations as visible (#24668)
* Dont use resolveEntityName for computed property name symbol resolution - use checkExpression and resolvedSymbol instead

* Fix lint
2018-09-05 14:52:47 -07:00
Wesley Wigham
69c7e67c88 Check privateness when emittign readonly/const props (#26920) 2018-09-05 13:49:38 -07:00
Ryan Cavanaugh
1e2fb9f0ae Merge pull request #26465 from rnathanday/master
include leading non-ASCII horizontal whitespace
2018-09-05 12:38:09 -07:00
Anders Hejlsberg
695aae7be8 Merge pull request #26848 from Microsoft/deferUnionIntersectionReduction
Defer union and intersection type reduction
2018-09-05 12:33:54 -07:00
Ryan Cavanaugh
f79e64561f Merge pull request #26870 from ajafff/composite-files-check
better condition for file include exhaustiveness check
2018-09-05 12:32:56 -07:00
Ryan Cavanaugh
69f91b5ed8 Merge pull request #26837 from mattmccutchen/issue-26835
Argument arity error should only consider signatures with correct type argument arity.
2018-09-05 12:22:48 -07:00
Ryan Cavanaugh
4717ddb986 Merge pull request #26828 from Microsoft/narrowUnknownByObject
Narrowing unknown by typeof object to object | null
2018-09-05 12:16:24 -07:00
Ryan Cavanaugh
6465e9dcdd Merge pull request #26292 from Kingwl/tupleIndexAccessCheck
check index access for fixed length tuple
2018-09-05 12:10:46 -07:00
Ryan Cavanaugh
c188864394 Merge pull request #26112 from rhys-vdw/22685-array-flat-fix
Fix issue with Array#flatMap callback return type
2018-09-05 11:55:42 -07:00
Ryan Cavanaugh
d265fbf7f7 Merge pull request #26192 from ajafff/createprogram-nochecker
createProgram: don't use TypeChecker
2018-09-05 11:49:57 -07:00
Ryan Cavanaugh
5d65e86756 Merge pull request #23253 from Kingwl/definite-assignment-assertion-improve
improve parser and error message if definite assignment assertions in…
2018-09-05 11:49:13 -07:00
Ryan Cavanaugh
4975dc85b1 Merge pull request #25822 from Kingwl/rechabilityImprove
improve enum rechability check
2018-09-05 11:46:07 -07:00
Andy
1eb3082387 Support completions inside JSDoc before EndOfFileToken (#25568) 2018-09-05 11:34:27 -07:00
Wesley Wigham
62d8b85f1d Allow literal initializers of readonly properties in declaration files (#26313)
* Allow literal initializers of readonly properties in declaration files

* Move some conditions a bit
2018-09-05 11:30:05 -07:00
Andy
bcb815b3ac Remove duplicate function createTextRange (#23346)
* Remove duplicate function createTextRange

* Always allow end=-1

* Put noAssert back, pending #23370

* Use getRangeUnion helper

* Update API (#24966)
2018-09-05 11:19:56 -07:00
Andy
06774962ed Properly handle JS enum symbols (#26893) 2018-09-05 11:19:32 -07:00
Nathan Shively-Sanders
ff05082e45 Bind non-expando property assignments at top-level (#26908)
* Bind non-expando property assignments at toplevel

Previously, only property assignments with expando initialisers were
bound in top-level statements. Now, all property assignments are bound.

This requires a matching change in the checker to make sure that these
assignments remain context sensitive if their valueDeclaration is a
'real' declaration (ie a non assignment-declaration).

* Add baselines for new test
2018-09-05 10:53:43 -07:00
Daniel Rosenwasser
c5c594f1e7 Try finding the first type with a call/construct signature when relating to unions. 2018-09-04 19:25:46 -07:00
Wesley Wigham
4ac8976750 Always check index type validity for all types when an error node is present so we always issue an error (#26789)
* Always check index type validity for all types when an error node is present so we always issue an error

* Change type a bit
2018-09-04 16:00:28 -07:00
Wesley Wigham
ca662419e8 Dont consider export specifiers visible in their local scope (#26884) 2018-09-04 16:00:10 -07:00
Wesley Wigham
f1370ecd54 Allow special assignments to have a contextual type of their declared type if present (#26802)
* Allow special assignments to have a contextual type of their declared type if present

* Expand change to cover all js special assignments

* Remove extraneous line
2018-09-04 15:58:18 -07:00
Tim Schaub
262ea5b06e Skip asterisks after newline when parsing JSDoc types (#26528)
* Skip asterisks after newline when parsing JSDoc types

* Single boolean expression

* Test for parsing and printing multiline function signatures with *
2018-09-04 15:41:08 -07:00
Nathan Shively-Sanders
64ac5a53f4 Fixes for type parameter name resolution in JS (#26830)
* check for expando initializers in resolveEntityName

when resolving type parameters in a prototype property assignment
declaration. For example, this already works:

```js
/** @template T */
function f(x) { this.x = x }
/** @returns {T} */
f.protototype.m = function () { return this.x }
```

This now works too:

```js
/** @template T */
var f = function (x) { this.x = x }
/** @returns {T} */
f.prototype.m = function () { return this.x }
```

Fixes #26826

* Lookup type parameters on prototype-assignment methods

In the same way that they're looked up on prototype-property methods.

That is, this previously worked:

```js
/** @template T */
function f() { }
/** @param {T} p */
f.prototype.m = function () { }
```

And this now works too:

```js
/** @template T */
function f() { }
f.prototype = {
  /** @param {T} p */
  m() { }
}
```

Note that the baselines still have errors; I'll file a followup bug for
them.

* Look up types on property assignments too
2018-09-04 14:47:18 -07:00
Nathan Shively-Sanders
540e8b9eb0 Collect jsdoc tags for type parameters (#26824)
Before the template tag, there was no reason to do this, but now you can
add JSDoc for type parameters in Typescript.
2018-09-04 09:29:19 -07:00
Klaus Meinhardt
239a7b9a4f better condition for file include exhaustiveness check
As `files` always contains declaration files of external libraries, lib files and declaration files from typeRoots, the previous condition evaluated to false for probably all projects out there.
This changes the condition to compare array length after filtering out all declaration files.
That avoids unnecessary work of path normalization in the common case where everything is ok.
2018-09-04 13:35:57 +02:00
Anders Hejlsberg
059fcc9aa9 Defer reduction of identical function types in unions and intersections 2018-09-02 08:58:00 -07:00
Matt McCutchen
f2d26fd0bb Argument arity error should only consider signatures with correct type
argument arity.

Fixes #26835.
2018-09-01 19:48:47 -04:00
Sheetal Nandi
45101491c0 Merge pull request #26782 from Microsoft/reportFileChangeDetectedOnce
Report file change detected only once when save takes place multipletimes before timeout
2018-08-31 15:26:03 -07:00