Commit graph

25024 commits

Author SHA1 Message Date
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 38e174bbfb Accept new baselines 2018-08-15 12:28:59 -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 aba82901ac Accepted baselines. 2018-08-15 09:00:37 -07:00
Daniel Rosenwasser dac00d97b7 Do it correctly. 2018-08-15 09:00:23 -07:00
Daniel Rosenwasser 31d8cbe895 Accepted baselines. 2018-08-14 23:04:54 -07:00
Daniel Rosenwasser dc1fbc24cd Updated test cases. 2018-08-14 23:02:08 -07:00
Daniel Rosenwasser c0531c74f4 Accepted baselines. 2018-08-14 22:55:48 -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 a32f62b310 Write tests to demonstrate how baseUrl + pathMapping to node_modules behaves 2018-08-14 16:26:41 -07:00
Sheetal Nandi af71d55a49 Do not include json file unless --resolveJsonModule is specified
Fixes #26402
2018-08-14 16:23:13 -07:00
Sheetal Nandi aa8f1e5b6a Test when module resolution because of path mapping takes to json file
Test for #26402
2018-08-14 16:23:07 -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
Klaus Meinhardt beed179f58 disallow abstract property access in property initializer
Fixes: #26407
2018-08-14 22:38:03 +02: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
TypeScript Bot ec1cc0ae57 Update user baselines (#26419) 2018-08-13 13:17:11 -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
Andrew Casey 8ef7ceda6d
Merge pull request #26289 from amcasey/LibSuggestions
Don't compute suggestion diagnostics for lib files
2018-08-10 15:59:40 -07:00
Klaus Meinhardt ad4403e43a moduleNameResolver: fix invalid assertion and avoid unnecessary work (#26319)
* moduleNameResolver: fix invalid assertion and avoid unnecessary work

Part of #18217

* assert nonRelativeModuleName
2018-08-10 15:59:08 -07:00
Nathan Shively-Sanders a6c5d50749
Allow type predicates in JSDoc (#26343)
* Allow type predicates

1. Parse type predicates. Note that they are parsed everywhere, and get
the appropriate error when used places besides a return type.
2. When creating a type predicate, correctly find the function's parameters
starting from the jsdoc return type.

* Fix type of TypePredicateNode.parent: add JSDocTypeExpression

* Update API baselines

* Handle JSDoc signature inside @type annotations

* Fix circularity when getting type predicates

Also move createTypePredicateFromTypePredicateNode closer to its use

* More cleanup based on review comments
2018-08-10 15:31:39 -07:00
Andy 46d3caab7c
Don't error on destructure of private property with computed property syntax (#26360) 2018-08-10 15:11:04 -07:00
Sheetal Nandi 796302294f Review feedback 2018-08-10 14:44:44 -07:00
Sheetal Nandi c8e10a9a66
Merge pull request #26296 from ajafff/modulenameresolver-cache
fix moduleNameResolver cache
2018-08-10 14:36:54 -07:00
Andy 4bb740218d
getDefaultExportInfo: Use getImmediateAliasedSymbol instead of getAliasedSymbol (#26364) 2018-08-10 14:35:18 -07:00
Sheetal Nandi 9ba224d3b0
Merge pull request #26305 from ajafff/common-prefix
moduleNameResolver: fix getCommonPrefix
2018-08-10 13:35:24 -07:00
Klaus Meinhardt 3469b62be6 review comments 2018-08-10 22:25:27 +02:00
Klaus Meinhardt 4db7c869e5 restore old algorithm 2018-08-10 22:11:16 +02:00
Wesley Wigham 19e04b2cdb
Dont use baseURL relative absolute paths in declaration emit, use absolute paths in bundle emit (#26341) 2018-08-10 12:54:45 -07:00