21283 Commits

Author SHA1 Message Date
Anders Hejlsberg
edffb12054 Cache 'any' instantiations for faster conditional type resolution 2018-01-27 10:07:24 -08:00
Anders Hejlsberg
fa6c4b79dd Check for definitely false condition first 2018-01-26 13:03:17 -08:00
Anders Hejlsberg
e4502121f0 Infer intersection types for multiple contravariant candidates 2018-01-26 10:56:03 -08:00
Anders Hejlsberg
60c9249ac4 Properly handle inferred type parameters in declaration emitter 2018-01-26 06:20:39 -08:00
Anders Hejlsberg
f59f3a2793 Check 'infer' declarations are in extends clause of conditional type 2018-01-25 13:02:35 -08:00
Anders Hejlsberg
ef0c3b7667 Change precedence of 'infer T' to match 'keyof T' 2018-01-25 12:43:07 -08:00
Anders Hejlsberg
4d62df4322 Accept new baselines 2018-01-25 12:26:05 -08:00
Anders Hejlsberg
490d6568f9 Remove pointless fourslash tests 2018-01-25 12:25:56 -08:00
Anders Hejlsberg
d608941480 Implement type inference in conditional types 2018-01-25 12:25:00 -08:00
Anders Hejlsberg
8e337b5121 Fix bug in resolveMappedTypeMembers 2018-01-24 13:51:37 -08:00
Anders Hejlsberg
b42c6b1db6 Only conditional types that check naked type parameter distribute over unions 2018-01-24 13:50:31 -08:00
Anders Hejlsberg
4c7ec3c51a Shared code path for getConditionalType and instantiateConditionalType 2018-01-21 12:45:02 -08:00
Anders Hejlsberg
b8692901f2 Remove unnecessary caching of substitution types 2018-01-21 08:03:30 -08:00
Anders Hejlsberg
f19959afd4 Cache substitution types and remove erasure that was too eager 2018-01-20 15:58:52 -08:00
Anders Hejlsberg
fc7d1c3948 Revise comments 2018-01-20 15:32:26 -08:00
Anders Hejlsberg
cdd50d4d96 Accept new baselines 2018-01-20 08:18:08 -08:00
Anders Hejlsberg
eb314d00fc Add tests 2018-01-20 08:17:59 -08:00
Anders Hejlsberg
5204fd5c5f Add T is related to { [P in xxx]: T[P] } type relationship 2018-01-19 17:06:09 -08:00
Anders Hejlsberg
0e73240ea4 Disallow conditional type following 'extends' 2018-01-19 14:44:48 -08:00
Anders Hejlsberg
c360c24b9b Fix parsing 2018-01-19 13:01:27 -08:00
Anders Hejlsberg
fd0dd6ed4c Separate code path for conditional type instantiation 2018-01-18 15:00:07 -08:00
Anders Hejlsberg
4ec6fdd96f Merge branch 'master' into conditionalTypes
# Conflicts:
#	src/compiler/checker.ts
#	src/compiler/types.ts
#	tests/baselines/reference/api/tsserverlibrary.d.ts
#	tests/baselines/reference/api/typescript.d.ts
2018-01-17 13:12:36 -08:00
Andy
b363f4f9cd
Log packageId in --traceResolution (#21233) 2018-01-17 11:41:23 -08:00
Andy
c549bb5737
Fix bug: getNonNullableType before getting signatures of method (#21212) 2018-01-17 11:27:21 -08:00
Ron Buckton
004f18ff0c
Merge pull request #21219 from Microsoft/fix19020
Fix destructuring assignment when assignment target is RHS
2018-01-17 11:22:30 -08:00
Andy
61fb845b87
Get packageId for relative import within a package (#21130)
* Get packageId for relative import within a package

* Code review

* Rename things and add comments

* Improve documentation

* Test for scoped packages
2018-01-17 11:14:03 -08:00
Ron Buckton
18a2fc82f7 Accept tsserverlibrary.d.ts and fix gulpfile 2018-01-17 11:06:09 -08:00
Daniel
2ca688a87d Remove the colon from the message in tsconfig.json (#21174)
* Add additional diagnostic message for tsconfig.json

* Add a way to override description for tsconfig.json

* Modify reference tsconfig.json in tests

* Don't have to differentiate cmdline and tsconfig.json description

This reverts commit efe57733cac305533c61c7bea3d51b302bbb4d19 and 94f9e67a247f2d73ddff6935083f76812efd2a21.

* Remove colon from diagnostic message code 6079

* Remove colon from localized messages code 6079

* Revert "Remove colon from localized messages code 6079"

Not changing files on src/loc because they are managed using automated tools.

This reverts commit e91f52348e17bf829db2418020c4281203d03e05.
2018-01-17 09:42:40 -08:00
Andy
be607bd28f
getStringLiteralCompletionEntries: switch on parent.type (#21169)
* getStringLiteralCompletionEntries: switch on parent.type

* Use a 'default' case and reduce findPrecedingToken calls

* fromType -> fromContextualType
2018-01-17 07:33:03 -08:00
Mohamed Hegazy
964565e069 Update authors for release 2.7 2018-01-16 23:31:46 -08:00
Ron Buckton
7a89c963b0
Merge pull request #21217 from Microsoft/fix20146
Symbol-named properties do not need to align with string indexer type
2018-01-16 17:01:27 -08:00
Ron Buckton
dcc5c32abf
Merge pull request #21216 from Microsoft/fix19103
Fix incorrect parenthesization logic for conditional expression branches
2018-01-16 17:00:55 -08:00
Ron Buckton
4aca0c8121 Fix destructuring assignment when assignment target is RHS 2018-01-16 16:58:56 -08:00
Ron Buckton
cd525fb6de
Merge pull request #21206 from Microsoft/fix20744
Fix temp variable emit for names used in nested classes
2018-01-16 16:00:24 -08:00
Ron Buckton
6c9827725c Fix symbol-named properties incorrectly requiring alignment with string indexer type 2018-01-16 15:45:10 -08:00
Ron Buckton
16b13fe449 Fix incorrect parenthesization logic for conditional expression branches 2018-01-16 15:17:04 -08:00
Anders Hejlsberg
d52fa71f62 Optimize the sameMap function 2018-01-16 12:51:46 -08:00
Anders Hejlsberg
e96ec8c2c7 Erase substitution types in type references and type alias instantiations 2018-01-16 12:51:24 -08:00
Anders Hejlsberg
64b3086f5e
Merge pull request #21157 from Microsoft/fixEmptyArrayInference
Fix empty array inference
2018-01-16 12:42:26 -08:00
Wesley Wigham
154c6141f1
Allow functions to be printed structurally in declaration emit even when they have symbols (#21203)
* Allow functions to be printed structurally in declaration emit even when they have symbols

* Implement CR feedback and fix lint
2018-01-16 12:37:15 -08:00
Ron Buckton
1785d87fda Fix temp variable emit for names used in nested classes 2018-01-16 12:33:55 -08:00
Klaus Meinhardt
7c7651d617 Add overloads for forEach{Leading,Trailing}CommentRange (#21190)
Avoids runtime errors when passing callback with state parameter but not passing a state.
2018-01-16 12:11:05 -08:00
Wesley Wigham
639b2781d7
Accept corrected baseline (#21201) 2018-01-16 11:13:53 -08:00
Wesley Wigham
76d9524866
Fully deprecate the symbol display builder, reimplement in terms of node builder (#18860)
* Remove SymbolWriter, give methods to EmitTextWriter

* Unification of writers is done-ish

* Make node builder support more flags

* Write out mixins like we used to

* Accept prototype-free baselines

* Use instantiated constraint when building mapped type nodes

* Accept better mapped type baselines

* Report inaccessible this in node builder

* Turns out there was a bug in our codefix, too

* Symbol display builder usage falling

* Replace signatureToString with a nodeBuilder solution

* Replace the last internal usages of the symbol writer

* Accept semicolon additions

* Accept updated symbol baseline output

* Start using node builder for some LS operations

* Remove those pesky trailing semicolons on signatures

* Get signature printing much closer to old output

* Parameter lists should not be indented by default, especially when single-line

* Signatures up to snuff

* Type quickinfo emit is up to snuff

* Start of symbol writer replacement, needs a bit more for full compat

* Slightly mor accurate to old behavior

* Replicate qualified name type argument output correctly

* Bring back the old symbol baselines

* Mostly identical to old symbol emit now

* Perfectly matches old behavior thus far

* Replace another usage of the symbol builder

* Another usage removed

* Another usage removed

* Remove final uses of symbol display builder

* Remove implementation and types for unused symbol display builder

* Cleanup in the checker

* monomorphize new emitter code

* Replace emitWithSuffix

* Push space character to interface with writer

* List emit

* Fix lack of usage of emitExpression

* writeList, not printList

* Remove listy writes and replace with new printer calls

* Move ListFormat into types.ts

* Remove most new XToString functions in favor of node builder functions

* Accept API breaks

* Add getSymbolDisplayBuilder polyfill

* Accept updated API baseline

* Move definition to make diff easier to read

* Reinternalize some things

* Remove trailign whitespace

* Reorder for zero diff

* Remove newline

* Make shim mor eperfectly imitate old behavior

* Style feedback

* Rename reset to clear to maintain backcompat with SymbolWriter

* Fix quickfix

* Keep EmitTextWriter internal

* Remove EmitTextWriter from public API

* Mimic default name declaration emit fix

* Fix tests broken by merge

* use isFunctionLike

* Cleanup, sync TypeFormat and NodeBuilder flags

* Reorder Node initialization so pos and end are first, so a TextRange hidden class is made first to reduce future polymorphism

* Use variable instead of ternary

* Write helper for emitNodeWithWriter

* Emitter cleanup

* Cleanup whitespace, comment

* Reuse printer

* Raise error if display parts writer uses rawWrite

* Hide writer parameter through different function instead of overload, rename function in emitter

* Make less printer

* fix lint
2018-01-16 09:53:42 -08:00
Alan Agius
bcb9fd7825 fix: formatting for chaining methods (#21027)
Closes: #20996
2018-01-16 08:53:43 -08:00
Anders Hejlsberg
9598acd477 Properly handle 'any' and 'never' as conditional check type 2018-01-15 15:31:43 -08:00
Anders Hejlsberg
15baf0ead5 Accept new baselines 2018-01-15 11:06:40 -08:00
Anders Hejlsberg
e8d1740da8 Introduce substitution types to use for constrained type parameters 2018-01-15 11:06:18 -08:00
Anders Hejlsberg
925da86496 Accept new baselines 2018-01-15 08:15:32 -08:00
Anders Hejlsberg
5094f7677c Remove 'T extends U' type constructor 2018-01-15 08:11:05 -08:00