10496 Commits

Author SHA1 Message Date
IdeaHunter
9c3c2adfb0 Add initial support for 'in' typeguarding 2017-12-06 00:02:36 +03:00
Sheetal Nandi
7bb5fc22c2
Merge pull request #20427 from JoshuaKGoldberg/watch-immediate-clears
Added console clearing with a message to --watch starts
2017-12-05 10:54:54 -08:00
Andy
8153397e91
Lazily compute signature type predicates (#17600)
* Lazily compute signature type predicates

* Use an instance of IdentifierTypePredicate to represent an unresolved type predicate

* Simplify `getMaybeTypePredicate`

* Invert representation of `resolvedTypePredicate`

* Remove `__unresolvedTypePredicate` type and remember to use `noTypePredicate` instead of `undefined` when in all `createSignature` calls

* Fix style of getTypePredicateOfSignature

* Use in createGetSymbolWalker

* Fix bugs for unions of type predicates

* Code review

* Make noTypePredicate purely an implementation detail of getTypePredictateOfSignature

* Add test

* Add test for #19642

* Add test with reversed order
2017-12-05 08:32:34 -08:00
Josh Goldberg
cf9b8baa8c Merge branch 'master' into watch-immediate-clears
# Conflicts:
#	src/harness/unittests/tscWatchMode.ts
2017-12-04 23:22:00 -08:00
Josh Goldberg
a389ff5f39 Unit test failure; clearHostScreen function 2017-12-04 23:11:01 -08:00
Andy
37a40561ac
Support exponentiation operator in const enums (#20424) 2017-12-04 14:32:25 -08:00
Andy
d8142339f9
Use 'filter' array helper (#20452) 2017-12-04 13:36:01 -08:00
Josh Goldberg
a4f83b0835 Added console clearing with a message to --watch starts
I advocated against immediately clearing the console when starting --watch in #17756 because it was confusing to have the console suddenly become blank, wait a while, and _then_ give output. After using the feature for a little while, I think it's a little disorienting how the console will only start clearing after the first recompile. This change clears the console and immediately prints a new "Starting compilation in watch mode..." message.
2017-12-03 14:45:33 -08:00
Josh Goldberg
c9f044ef2d
Comment typo fix in es2015.ts: "propety" 2017-12-02 18:48:47 -08:00
benbraou
49a48ffd4d fix(es2018): add a target and an initial lib (#20385)
* run Jake LKG before es2018 addition

Fixes #20342

* fix(es2018): add a target and an initial lib

Fixes #20342
2017-12-02 11:16:59 -08:00
Josh Goldberg
08c6dc99c6 "tsc --watch should clear screen on new compilation" Two: Electric Boogaloo (#20389)
* tsc --watch should clear screen on new compilation

* added optional clearScreen method to System]
* implemented via `x1Bc`, reset screen
* fixes 13020

* Feedback on if statements; api .d.ts baseline additions

* Stopped clearing screen in tsc.js's reportWatchMode

* Added unit tests
2017-12-02 11:11:49 -08:00
Mohamed Hegazy
59e5bbc393
Make sure autoArrayType is unique, even if no lib is available (#20344)
* Make sure autoArrayType is unique, even if no lib is available

* fix typo
2017-12-01 19:51:14 -08:00
Wesley Wigham
1045d95a44
Always instantiate the extends clause, even in the presence of an error (#20232)
* Still instantiate the extends clause even when theres a noimplicitany error in js

* Only be permissive for JS

* In JS, instantiate classes even when they have too many type arguments, instead of returning unknownType
2017-12-01 21:09:06 -05:00
Anders Hejlsberg
f6b1a1de59
Merge pull request #20404 from Microsoft/fixUntypedFunctionCall
Fix untyped function call on constrained type variable
2017-12-01 17:19:32 -08:00
Anders Hejlsberg
5465a5aa72 Check apparent type instead of function type in isUntypedFunctionCall 2017-12-01 16:48:29 -08:00
Mohamed Hegazy
65af685b49
Remove periods from refactor/quickfix messages (#20237)
* Fix #19959 and #19958: Remove un-localizable messages

* Update message

* Reorder error messages

* Fix https://github.com/Microsoft/TypeScript/issues/15399: remove periods at the end of messages

* Accept baselines for error code changes

* accept baselines for removed periods

* Update diagnostic messages
2017-12-01 16:38:59 -08:00
Nathan Shively-Sanders
8d7c2a2a77
Merge pull request #20370 from Microsoft/cutoff-inference-for-recursive-mapped-types
Cut off inference for recursive mapped types
2017-12-01 15:10:06 -08:00
Nathan Shively-Sanders
84d747a89c Simplify mappedTypeStack cache key 2017-12-01 14:48:59 -08:00
Nathan Shively-Sanders
0e5b53579d mappedTypeStack uses a string based on symbols
Previously it was a pair of [Type, Symbol].
2017-12-01 14:43:20 -08:00
Anders Hejlsberg
bc628bfa29
Merge pull request #20380 from Microsoft/literalContexts
Fewer intermediate object literal and array literal types
2017-12-01 14:12:29 -08:00
Andy
fd4d8ab96e
Support a 'recommended' completion entry (#20020)
* Support a 'recommended' completion entry

* Code review

* Restore duplicate comments
2017-12-01 13:00:01 -08:00
Nathan Shively-Sanders
7208204877 Don't mutate symbol flags after creation 2017-11-30 12:33:34 -08:00
Anders Hejlsberg
7ccbbfc928 Preserve literal types only when contextual type has literals of same kind 2017-11-30 10:36:07 -08:00
Nathan Shively-Sanders
69bbfedd63 Merge branch 'master' into jsdoc-values-as-namespaces 2017-11-30 10:34:50 -08:00
Nathan Shively-Sanders
665c2ecf91 Add SymbolFlag for containers of JS special decls
And update some doc comments
2017-11-30 10:27:38 -08:00
Nathan Shively-Sanders
c7d53f8b70 Fix whitespace lint 2017-11-30 09:41:55 -08:00
Andy
43a35bad2e
Miscellaneous fixes to avoid duplicate completions (#20349)
* Miscellaneous fixes to avoid duplicate completions

* Move typeHasCallOrConstructSignatures to utility
2017-11-30 09:36:17 -08:00
Nathan Shively-Sanders
b1316e589e Cut off inference for recursive mapped types
Previously, when inferring to a self-referential (or otherwise recursive)
homomorphic mapped type from a source type that also has recursive
references, type inference would enter infinite recursion.

Now there is a more complex stack for mapped type inference. It mirrors
the existing symbolStack but (1) includes the source type and (2) is
passed through inferTypeForHomomorphicMappedType, which is actually
called outside of inferTypes, and so restarts the symbolStack cache
every time.
2017-11-30 09:33:05 -08:00
Andrew Casey
cdd3cd4f51
Merge pull request #20335 from amcasey/TS2713
Apply TS2713 to classes
2017-11-29 17:39:32 -08:00
Wesley Wigham
a1669bb431
handle multiline jsx strings correctly, emit escapes in jsx attributes correctly (#20309) 2017-11-29 17:08:51 -08:00
Wesley Wigham
a625dec58a
Elide import namespace from which only const enums are used (#20320) 2017-11-29 16:36:17 -08:00
Andrew Casey
31c4ca5235 Handle all non-namespace types 2017-11-29 15:49:58 -08:00
wenlu.wang
78250ec58f fix noImplicitReturns check when strictNullChecks is false (#20326) 2017-11-29 15:27:32 -08:00
Klaus Meinhardt
0b9e4987f4 Make AccessorDeclaration.body optional (#20329)
* Make AccessorDeclaration.body optional

* Accept baselines
2017-11-29 13:59:40 -08:00
Andy
b8f22f5144
Enable ban-types lint rule (#19586)
* Enable ban-types lint rule

* Improvements from code review

* More code review fixes

* Use just `void` in place of `{} | null | undefined | void`
2017-11-29 12:54:02 -08:00
Andrew Casey
3dcc064303 Apply TS2713 to classes
Formerly, they were excluded as values, but the error is just as
relevant for classes.

Note that it is not applied to enums since switching to an indexed
access expression will not help for an enum.
2017-11-29 11:32:45 -08:00
Andy
618b6702f0
Remove location of other declaration from "Subsequent x declarations must have same type" errors (#20206) 2017-11-29 10:54:13 -05:00
Wesley Wigham
d79a474e6d
Handle parentless nodes in nodeIsDecorated (#20314) 2017-11-28 17:01:19 -08:00
Nathan Shively-Sanders
098a05268a Remove temporary error-avoidance hack 2017-11-28 15:19:10 -08:00
Nathan Shively-Sanders
341e7029eb JS static prop assignments don't need same type
Don't issue a "multiple declarations must have the same type" error for
JS static property assignments, because these don't appear to have a
type in this case.
2017-11-28 15:11:08 -08:00
Charles Pierce
72da4b8f12 Error when LHS of instanceof is Union of Primitives #18519 (#19063)
* Error when LHS of instanceof is Union of Primitives #18519

* Refactor to allTypesAssignableToKind method and update test

* Use ternary expression instead of if / else blocks
2017-11-28 15:05:06 -08:00
Nathan Shively-Sanders
61fe04ba0d Merge branch 'master' into jsdoc-values-as-namespaces 2017-11-28 15:01:40 -08:00
Andy
94ea38859b
Disable import fix for method of 'export =' value (#20208)
* Disable import fix for method of 'export =' value

* Exclude primitives, but allow other interfaces

* Use type.flags

* Fix comment
2017-11-28 17:46:06 -05:00
Nathan Shively-Sanders
e441dd0005 Binder:clean up bindPropertyAssignment and friends 2017-11-28 14:29:39 -08:00
Nathan Shively-Sanders
74faa3d738 JS static properties:fix multi-file references+merging 2017-11-28 13:46:14 -08:00
Wesley Wigham
5ee640d2b6
Move utilities for getting type parameter constraints and defaults from public lazy members to services (#20162) 2017-11-28 13:37:42 -08:00
Andy
6df0575acd
Remove length limit on spelling suggestions; use levenshteinWithMax for performance (#19937)
* Remove length limit on spelling suggestions; use levenshteinWithMax for performance

* Remove suggestion exceptions

* Move to checker.ts

* Reintroduce candidateName max length
2017-11-28 12:37:30 -05:00
Wesley Wigham
835fae264f
Allow possibly undefined destructuring in ambient parameter declarations (#20230) 2017-11-27 23:16:21 -08:00
Nathan Shively-Sanders
4199038652 Fix type-annotation declaration in JS files
Declaring values didn't work before.
2017-11-27 15:19:07 -08:00
Nathan Shively-Sanders
9b8b750434 Always put assignments in locals.
This means that Javascript property assignments always create a
namespace, never statics on a class. The ES5->ES6 class refactoring
still needs to be updated.
2017-11-27 11:11:48 -08:00