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
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
Andy
ad63468ed5
noUnusedLocals: f(x = 1) does not use x ( #26366 )
2018-08-13 11:14:52 -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
Sheetal Nandi
9ba224d3b0
Merge pull request #26305 from ajafff/common-prefix
...
moduleNameResolver: fix getCommonPrefix
2018-08-10 13:35:24 -07: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
Andy
a73161e9d5
Don't store @template constraint in a TypeParameterDeclaration node ( #26283 )
...
* Don't store @template constraint in a TypeParameterDeclaration node
* Code review
* Update API
2018-08-09 17:39:15 -07:00
Andy
639fdcc916
Don't include class getter in spread type ( #26287 )
...
* Don't include class getter in spread type
* Code review
2018-08-09 15:34:29 -07:00
Andy
55a620c433
Don't crash on computed property in destructure ( #26334 )
2018-08-09 15:29:45 -07:00
Wesley Wigham
fce3d9f34d
Check the ambientness of a symbol name before attempting to trim it ( #26312 )
...
* Check the ambientness of a symbol name before attempting to trim it
* Use find instead of forEach, remember to also exclude global augmentations
2018-08-09 13:20:37 -07:00
Wesley Wigham
f6af618ab9
Still generate signatures in SkipContextSensitive mode just to match on return types ( #25937 )
...
* Still generate signatures in SkipContextSensitive mode just to match on return types
* Add cache for context-free type of a signature node
* Accept post-merge baseline
2018-08-09 10:17:50 -07:00
Anders Hejlsberg
01f6093a9c
Merge pull request #26143 from mattmccutchen/issue-26130
...
Have getAssignmentReducedType use the comparable relation instead of typeMaybeAssignableTo.
2018-08-09 07:43:46 -07:00
Anders Hejlsberg
20ebe1eb2b
Merge pull request #26244 from Microsoft/fixThisAndContextualTypes
...
Revise logic that computes the contextual type for a parameter
2018-08-09 06:07:11 -07:00
Klaus Meinhardt
d2dc17d765
fix handling if there is no commonPrefix
2018-08-09 11:50:00 +02:00
Klaus Meinhardt
20442fe363
handle failed lookups
2018-08-08 20:45:31 +02:00
Klaus Meinhardt
95082e4743
make it work for root directory
2018-08-08 20:29:59 +02:00
Ryan Cavanaugh
6210b7db54
Merge pull request #26245 from Kingwl/fix-compiler-crash
...
fix compiler crash (#26209 )
2018-08-08 11:12:16 -07:00
Klaus Meinhardt
95494efe50
fix commonPrefix handling
2018-08-08 16:58:35 +02:00
Klaus Meinhardt
bed93b48f5
fix moduleNameResolver cache
...
Fixes : #26271
2018-08-08 11:12:48 +02:00
Andrew Casey
daccc978a8
Don't compute suggestion diagnostics for lib files
...
The check applied to semantic diagnostics (and `checkSourceFile`) should
also apply to suggestion diagnostics. Fixes assert.
2018-08-07 17:58:35 -07:00
Andy
eaf0d59d35
Fix bug: symbol.valueDeclaration not guaranteed to be defined ( #26267 )
2018-08-07 12:13:45 -07:00
Ryan Cavanaugh
3fde17e85c
Merge pull request #26234 from RyanCavanaugh/noVoidTest
...
Disallow expressions of type `void` to be used in truthiness checks
2018-08-07 08:37:42 -07:00
王文璐
639190d607
fix compiler crash ( #26209 )
2018-08-07 10:09:26 +08:00
Andy
937afab4b0
Support signature help for contextual parameter type ( #26022 )
2018-08-06 16:46:30 -07:00
Anders Hejlsberg
eeb19c1e22
Merge pull request #26236 from Microsoft/fixCircularReturnType
...
Fix circular return type issue
2018-08-06 16:38:31 -07:00
Ryan Cavanaugh
ca10b7a6fa
Add checks for remaining truthiness positions
2018-08-06 16:11:43 -07:00
Anders Hejlsberg
bf19d214f3
Revise logic that computes the contextual type for a parameter
2018-08-06 16:10:10 -07:00
Sheetal Nandi
4475d81b9c
Add flags on commandLineOption to indicate strictFlag or option affecting semanticDiagnostics
2018-08-06 14:54:57 -07:00
Ryan Cavanaugh
bad002cfb7
Merge pull request #26150 from Kingwl/CheckReturnUnknow
...
add check for function return unknow type
2018-08-06 13:52:14 -07:00
Klaus Meinhardt
7299bceafb
infer number index signature in JS object literals ( #26221 )
...
Fixes : #26208
2018-08-06 11:52:51 -07:00
Anders Hejlsberg
cfa29ae2fa
Merge branch 'master' into fixCircularReturnType
...
# Conflicts:
# src/compiler/diagnosticMessages.json
2018-08-06 10:53:20 -07:00
Anders Hejlsberg
6a17f4d162
Merge branch 'master' into fixCircularReturnType
...
# Conflicts:
# tests/baselines/reference/recursiveResolveDeclaredMembers.types
# tests/baselines/reference/typeGuardsWithInstanceOfByConstructorSignature.types
2018-08-06 10:42:35 -07:00
Alexander T
37b9a6bca4
25840 - Add a more meaningful error message to the case when calling a public static method on an instance ( #25922 )
...
* add a more meaningful error message to the case when calling a public static method on an instance
* Fix tests
2018-08-06 10:24:48 -07:00
Ryan Cavanaugh
14d3c69c72
Disallow exprs of type void to be used in truthiness checks
2018-08-06 09:40:22 -07:00
Anders Hejlsberg
dc34c5e719
Use getReturnTypeFromAnnotation instead of ad hoc checks
2018-08-06 06:51:45 -07:00