Commit graph

18166 commits

Author SHA1 Message Date
Ron Buckton 015babb6f7 Initial support for 'typesVersions' 2018-08-20 16:57:18 -07:00
Wesley Wigham d433c6ed05
Track late bound names in binding patterns (#26336) 2018-08-17 16:30:01 -07:00
Wesley Wigham d58b1f664b
mark error type in baselines very not-aggressively (#26346) 2018-08-17 15:45:14 -07:00
Sheetal Nandi 8e2c422f2b Disable apis for tsc --build till we have the actual API figured out with tests 2018-08-17 14:38:29 -07:00
Andy 60b8f8c206
Remove unnecessary callback in runBaseline (#26500) 2018-08-17 12:51:30 -07:00
Sheetal Nandi 0f97620b9c
Merge pull request #25884 from Microsoft/optimizeOpenExternalProject
Delay load configured project referenced from external project when opening it
2018-08-17 12:26:14 -07:00
Anders Hejlsberg 3e201e7809
Merge pull request #26517 from Microsoft/fixMappedArrayTypeConstraint
Fix mapped array type constraint
2018-08-17 10:52:42 -07:00
Anders Hejlsberg b746da2a68
Merge pull request #26481 from Microsoft/simplifyResolveCall
Simplify call resolution logic
2018-08-17 10:51:12 -07:00
Anders Hejlsberg 9b6f06d83c Correct apparent type for homomorphic mapped types applied to array types 2018-08-17 09:45:09 -07:00
Andy ee25cdecbc
Update LKG and remove newly unnecessary non-null assertions (#26515) 2018-08-17 09:13:43 -07:00
Tim Schaub 6fd725f3ea Skip whitespace or asterisk in JSDoc param type and name (#26067) 2018-08-16 16:16:09 -07:00
Andy 746e39e9e9
Set "rootDir" for cancellationToken project (#26498) 2018-08-16 15:12:38 -07:00
Ryan Cavanaugh 7a658256a2
Merge pull request #26431 from mattmccutchen/issue-26430
Mapped types like Pick<T, K> should adopt property documentation from T.
2018-08-16 13:35:55 -07:00
Sheetal Nandi 0ca9a36610
Merge pull request #26420 from Microsoft/largeNonTsFiles
Check large file size only for non ts files
2018-08-16 10:28:24 -07:00
Nathan Shively-Sanders 56f82563ae Check SymbolFlags instead 2018-08-16 08:38:41 -07:00
Anders Hejlsberg 178f792f18
Merge pull request #26340 from Microsoft/neverIndexedAccess
T[K] should be 'never' when T is 'never'
2018-08-15 16:07:11 -07:00
Sheetal Nandi 969b46e44b
Merge pull request #26458 from Microsoft/pathMappingResultsToNodeModules
When path mapping results to file in node_modules, mark it as external library
2018-08-15 15:28:50 -07:00
Anders Hejlsberg bfe7f02068 Fix lint errors 2018-08-15 15:25:31 -07:00
Nathan Shively-Sanders cc67ce1141
Property assignments in Typescript (#26368)
* Allow special property assignments in TS

But only for functions and constant variable declarations initialised with
functions.

This specifically excludes class declarations and class expressions,
which differs from Javascript. That's because Typescript supports
`static` properties, which are equivalent to property assignments to a
class.

* Improve contextual typing predicate

Don't think it's right yet, but probably closer?

* More fixes.

The code is still fantastically ugly, but everything works the way it
should.

Also update baselines, even where it is ill-advised.

* Cleanup

* Remove extra whitespace

* Some kind of fix to isAnyDeclarationName

It's not done yet.

Specifically, in TS:
Special property assignments are supposed to be declaration sites (but not all
top-level assignments), and I think I
got them to be. (But not sure).

In JS:
Special property assignments are supposed to be declaration sites (but not all
top-level assignments), and I'm pretty sure ALL top-level assignments
have been declaration sites for some time. This is incorrect, and
probably means the predicate needs to be the same for both dialects.

* Add fourslash and improve isAnyDeclarationName

Now JS behaves the same as TS.

* Cleanup from PR comments
2018-08-15 15:25:25 -07:00
Nathan Shively-Sanders 08eb99d8ec
For a this-property assignment with an empty object initializer, use type annotation if present (#26428)
* This-property w/empty object init: use type annotation

* JS initializer type doesn't apply to this-property assignments

* Move getJSExpandoType into getWidenedType* functions

Plus some cleanup.

* Improved style from PR comments

* Parameters are not expando
2018-08-15 14:53:30 -07:00
Daniel Rosenwasser dfef227b18
Merge pull request #26473 from Microsoft/doGlobalImplicitThisRight
Fix bad message for captured global 'this'.
2018-08-15 13:08:38 -07:00
Anders Hejlsberg b96c4cb7b2 Use synthetic arguments instead of GetEffectiveArgumentXXX functions 2018-08-15 12:23:13 -07:00
Sheetal Nandi fea1667002 Use string contains and nodeModulesPathPart const for "/node_modules/" 2018-08-15 11:47:16 -07:00
Sheetal Nandi b983da55fd
Merge pull request #26457 from Microsoft/baseUrlPathMappingResolveJsonModule
Do not include json file unless --resolveJsonModule is specified
2018-08-15 11:43:01 -07:00
Andy fd948ac6d2
Fix invalid cast (#26462) 2018-08-15 10:17:18 -07:00
Nathan Shively-Sanders 2bfd919b6a
Narrow on element access of literal (#26424)
* Narrow literal element accesses

This means that, for example, the tuple `[number, string?]` allows its
second element to be narrowed with element access:

```ts
export function f(pair: [number, string?]): string {
  return pair[1] ? pair[1] : 'nope';
}
```

* Update baselines

* Cleanup

* More cleanup

* Test dashes in property names

* More cleanup

* Delete undead code
2018-08-15 09:58:39 -07:00
Daniel Rosenwasser dac00d97b7 Do it correctly. 2018-08-15 09:00:23 -07:00
Daniel Rosenwasser d8c82a84e5 Make it better. 2018-08-14 22:55:06 -07:00
Sheetal Nandi b9bd0d9a3f
Merge pull request #26451 from Microsoft/nonRecursiveOnHostsWithoutRecursiveSupport
Return the nonrecursive directory watcher correctly on platforms that  dont support recrusive directory watching
2018-08-14 17:12:48 -07:00
Sheetal Nandi 1dd3cd288e Make file as externalLibrary import if path contains node_modules 2018-08-14 16:27:18 -07:00
Sheetal Nandi af71d55a49 Do not include json file unless --resolveJsonModule is specified
Fixes #26402
2018-08-14 16:23:13 -07:00
Nathan Shively-Sanders 29ca93ba48
Classes can extend Javascript constructor functions (#26452)
* Classes can extend JS constructor functions

Now ES6 classes can extend ES5 constructor functions, although only
those written in a JS file.

Note that the static side assignability is checked. I need to write
tests to make sure that instance side assignability is checked too.
I haven't tested generic constructor functions yet either.

* Test static+instance assignability errors+generics

Note that generics do not work.

* Cleanup from PR comments

* Even more cleanup

* Update case of function name
2018-08-14 14:43:04 -07:00
Andy 62e6e6ae27
Remove special handling for JSDocPropertyLikeTag in getJSSpecialType (#26432)
* Remove special handling for JSDocPropertyLikeTag in getJSSpecialType

* Reduce nesting
2018-08-14 13:48:17 -07:00
James Keane a1089893bd Fixes #26128 - signature comp for jsdoc @class. (#26160)
* Fixes #26128 - signature comp for  jsdoc @class.

Another issue caused by js functions tagged with jsdoc
`@constructor` not having construct signatures.

A jsdoc function type that constructs a type (`function(new: Ex)`),
has a construct signature and return value inferred as the
constructed type where as a jsdoc `@constructor` has no construct
signatures, and it's call signature has a void return type
(or undefined).

i.e:
```javascript
/** @constructor **/ function E() {};

// typeof E -> call signature: () => void

/** @param {function(new: E)} d */ function c(d) {}

// typeof d -> construct: () => E
```

--

This commit fixes this (in an inelegant way) by considering `@class` function signatures as construct signatures and synthesizing it's return value _only for signature comparison_.

There might be a slight performance hit, since the synthesized return value is not cached; but changing the `@class` function's return type in `getReturnTypeOfSignature` causes other issues.

* Update jsdoc function test to fix mistake.
2018-08-14 13:35:51 -07:00
Sheetal Nandi 512a49be81 Return the nonrecursive directory watcher correctly on platforms that dont support recrusive directory watching
Fixes #26288
2018-08-14 12:14:22 -07:00
Anders Hejlsberg 4323fd7481 Simplify chooseOverload function 2018-08-14 10:23:35 -07:00
Matt McCutchen d7b802577c Mapped types like Pick<T, K> should adopt property documentation from T.
Fixes #26430.
2018-08-13 19:56:20 -04:00
Andy cea4838972
Set rootDir in tsconfig-base.json (#26415) 2018-08-13 15:19:27 -07:00
Andy e8b72aa7d9
Error on accessing private property through destructuring assignment, and mark property used (#26381)
* Error on accessing private property through destructuring assignment, and mark property used

* Factor out getTypeOfObjectLiteralDestructuringProperty
2018-08-13 14:08:00 -07:00
Anders Hejlsberg b53491cbe4 Include all excluded arguments in one go instead of one by one 2018-08-13 13:47:55 -07:00
Sheetal Nandi 7e117f2707 Check large file size only for non ts files 2018-08-13 13:30:31 -07:00
Andy ad63468ed5
noUnusedLocals: f(x = 1) does not use x (#26366) 2018-08-13 11:14:52 -07:00
Sheetal Nandi f2011ce755
Merge pull request #26197 from Microsoft/largeFileEvent
Send event on referencing large file
2018-08-13 11:14:22 -07:00
Sheetal Nandi 2b83b67aa3
Merge pull request #26140 from Kingwl/completionUnionType
improve completions for union type in type arguments
2018-08-13 10:36:19 -07:00
Sheetal Nandi fe387cc7f0
Merge pull request #26377 from Microsoft/moduleResolutionWithSymLinks
Use original path from resolved module cache when available.
2018-08-10 22:27:38 -07:00
Sheetal Nandi 8e05f4ec64 Add documentation for originalPath 2018-08-10 17:08:53 -07:00
Sheetal Nandi c5b74db78b
Merge pull request #26200 from Microsoft/watchWithStrict
Refresh semantic diagnostics when compiler options affecting semantic diagnostics generation changes
2018-08-10 16:15:37 -07:00
Elizabeth Dinella 421730a68d
Refactoring promises returning functions to use async and await (#26373) 2018-08-10 16:11:45 -07:00
Sheetal Nandi 82d4cccf53 Use original path from resolved module cache when available.
Fixes #26273
Thanks to @ajafff, for partial fix  and test (#26310)
2018-08-10 16:11:38 -07:00
Andy 08f5edbd03
Treat NoSubstitutionTemplateLiteral like StringLiteral in more places (#26330)
* Treat NoSubstitutionTemplateLiteral like StringLiteral in more places

* Move isStringOrNumericLiteral closer to its only use
2018-08-10 16:00:08 -07:00