10660 Commits

Author SHA1 Message Date
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
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
16b13fe449 Fix incorrect parenthesization logic for conditional expression branches 2018-01-16 15:17:04 -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
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
Wesley Wigham
2e1738bffa
Enable substitution for object literal shorthand property assignments in the system transform (#21106) 2018-01-12 18:24:41 -08:00
Wesley Wigham
64305edbce
Skip outer expressions when checking for super keyword in binder (#20164)
* Skip outter expressions when checking for super keyword in binder

* use TransformFlags to optimize and correct super call transforms

* Lint
2018-01-12 18:24:02 -08:00
Nathan Shively-Sanders
6f28b0ac25
Merge pull request #21156 from Microsoft/fix-diff-omit
Fix Diff and Omit
2018-01-12 16:10:37 -08:00
Nathan Shively-Sanders
fd1bb9bde2 Group intersection code in getSimplifiedIndexedAccessType 2018-01-12 15:07:46 -08:00
Nathan Shively-Sanders
f1622f0dc6 Use filter instead of unnecessary laziness 2018-01-12 14:56:50 -08:00
Nathan Shively-Sanders
d74820d519 Remove mapped types to never from intersections
when transforming an indexed access type in order to get its constraint.
2018-01-12 14:43:31 -08:00
Nathan Shively-Sanders
12b80f3183 Keep string index from intersections in base constraint of index type 2018-01-11 16:26:38 -08:00
Sheetal Nandi
b529d5ba1f
Merge pull request #21149 from Microsoft/tweakRecompileConditions
Do not trigger resolution cache invalidation if watch is triggered by program file emit
2018-01-11 16:17:09 -08:00
Anders Hejlsberg
1ae0b461f8 Use contra-variant inferences when co-variant inferences yield 'never' 2018-01-11 16:14:19 -08:00
Sheetal Nandi
69bb5ea8f0 Do not trigger the failed lookup location invalidation for creation of program emit files
Handles #20934
2018-01-11 12:34:58 -08:00
Sheetal Nandi
c5ed8646e1 Add test where emit of the file results in invalidating resolution and hence invoking recompile 2018-01-11 12:33:38 -08:00
Andrew Casey
e3da8fb526
Merge pull request #21131 from amcasey/GH15533
Unmangle scoped package names in import completions
2018-01-11 11:03:34 -08:00
Andy
a77c6014b3
Parse comment on @property tag and use as documentation comment (#21119)
* Parse comment on @property tag and use as documentation comment

* Fix comment parsing bug -- back up after seeing `@` character

* Add test for indent

* Don't default comment to ""
2018-01-11 10:49:39 -08:00
Nathan Shively-Sanders
16a8003011 push/popTypeResolution for circular base constraints
Instead of a custom cache `typeStack`.
2018-01-11 10:07:59 -08:00
Nathan Shively-Sanders
7f8ec15edd Merge branch 'master' into fix-recursive-mapped-type-infinite-recursion 2018-01-10 15:44:42 -08:00
Nathan Shively-Sanders
f0ef9a08d8 getConstraintOfTypeParameter:check circularity in base constraint 2018-01-10 15:40:25 -08:00
Andrew Casey
9a4fe8eb7e Rename getPackageNameFromAtTypesDirectoryWithoutPrefix to getUnmangledNameForScopedPackage 2018-01-10 15:17:27 -08:00
Nathan Shively-Sanders
40b896a73c
Merge pull request #17912 from Microsoft/fix2-getConstraintOfIndexedAccess
Fix2 get constraint of indexed access
2018-01-10 15:17:02 -08:00
Nathan Shively-Sanders
8f45373e44 Rename simplifyIndexedAccessType->getSimplifiedIndexedAccessType 2018-01-10 14:43:55 -08:00
Nathan Shively-Sanders
0b23811a56 Handle indexed mapped types in transformIndexedAccessType
Also rename transformIndexedAccessType to simplifyIndexedAccessType
2018-01-10 14:00:52 -08:00
Andy
7a1deae6aa
AsteriskToken should always have length 1 (#21126) 2018-01-10 12:52:35 -08:00
Nathan Shively-Sanders
7dbea0e82d Merge branch 'master' into fix2-getConstraintOfIndexedAccess 2018-01-10 12:40:35 -08:00
Wesley Wigham
ee87cf409b
Print the correct type in the top level chain as the message indicates (#21127) 2018-01-10 11:41:14 -08:00
Andy
102368332e
Use 'append' helper more (#21125) 2018-01-10 11:31:13 -08:00
Andy
ddd8e759c1
Use 'append' helper (#21101) 2018-01-10 11:13:47 -08:00
Wesley Wigham
c9ef52b9d8
Do not always instantiate jsx signatures (#21108) 2018-01-09 17:22:19 -08:00
Sharon Rolel
c0bdd12c4c add fixAwaitInSyncFunction code fix (#21069)
* add fixAwaitInSyncFunction code fix

* Just insert the keyword

* only one codefix

* remove comment

* Change explicit return type T to Promise<T>

* Review changes

* Change codefix message
2018-01-09 17:15:08 -08:00
Stanislav Iliev
03fd77657d Issue implicit any errors for mapped types without annotations (#21104)
* Fixed #21011

* Updated code of merged message

* Reversed message code change and moved error to it's appropriate position

* Applied suggested improvements

* Fixed wrong diagnostics message in checker

* Reverted diagnostic message change
2018-01-09 17:11:57 -08:00
Andrew Casey
db09a593d3 Unmangle package names from typings during completion 2018-01-09 16:45:42 -08:00
Andy
8bce69e6bd
Add refactoring to convert CommonJS module to ES6 module (#19916)
* Add refactoring to convert CommonJS module to ES6 module

* Code review

* includeGlobals -> excludeGlobals

* Improve handling of `module.exports = require("...")`

* Allow NoSubstitutionTemplateLiteral as argument to createLiteral
2018-01-09 13:15:47 -08:00
Andy
191b9750c3
Clear jsDocCache for reused nodes (#21099) 2018-01-09 11:22:15 -08:00
Wesley Wigham
fdd8a52240
Offer per-member diagnostics for incorrectly implemented inherited members (#21036)
* Offer per-member diagnostics for incorrectly implemented inherited members on classes

* Revise error message, make containingChain a thunk

* Fix typo in comment
2018-01-09 10:20:07 -08:00
Andy
5ab5694a5b
Don't count self-reference in more cases (skip more nodes when setting lastNonBlockLocation) (#21095) 2018-01-09 09:53:39 -08:00
Wenlu Wang
062f97a6fa allow const enum in type query (#21083) 2018-01-09 09:24:00 -08:00
Remo H. Jansen
73e3e8d790 Fixes #20026 (#20157)
* Added test case for #20026

* Implemented #20026

* Addresed comments at Microsoft/TypeScript/pull/20157#discussion_r152086287

* Fixed merge issues

* Fixed baseline issue

* Merged upstream
2018-01-08 17:25:56 -08:00
Andy
c4d76292f1
Ensure visitor visits the awaitModifier of a ForOfStatement (#21078) 2018-01-08 17:22:32 -08:00
Andy
37d4f6a69d Mark references to dynamically-named properties as used (#21010)
* Mark references to dynamically-named properties as used

* Avoid showing the symbol ID

* Use symbolToString instead of showSymbol
2018-01-08 16:44:58 -08:00
Wesley Wigham
7e6315075d
Synthesize namespace records for proper esm interop (#19675)
* Integrate importStar and importDefault helpers

* Accept baselines

* Support dynamic imports, write helpers for umd module (and amd is possible) kinds

* Accept baselines

* Support AMD, use same helper initialization as is normal

* update typechecker to have errors on called imported namespaces and good error recovery with a quickfix

* Overhaul allowSyntheticDefaultExports to be safer

* Put the new behavior behind a flag

* Rename strictESM to ESMInterop

* ESMInterop -> ESModuleInterop, make default for tsc --init

* Rename ESMInterop -> ESModuleInterop in module.ts, add emit test (since fourslash doesnt do that)

* Remove erroneous semicolons from helper

* Reword diagnostic

* Change style

* Edit followup diagnostic

* Add secondary quickfix for call sites, tests forthcoming

* Add synth default to namespace import type, enhance quickfix

* Pair of spare tests for good measure

* Fix typos in diagnostic message

* Improve comment clarity

* Actually accept the updated changes to the esmodule interop description

* ESModule -> esModule

* Use find and not forEach

* Use guard

* Rely on implicit falsiness of Result.False

* These should have been emit flags
2018-01-08 16:36:23 -08:00
Mohamed Hegazy
24114d8c05 Merge branch 'master' of https://github.com/Microsoft/TypeScript 2018-01-08 14:57:26 -08:00
Andy
a23bbe65e6
Use substring instead of substr (#20578)
* Use substring instead of substr

* Remove unused scanning of SyntaxKind.DotDotDotToken in jsdoc

* Remove other unnecessary jsdoc syntax kinds

* Move all pos++ together
2018-01-08 14:54:18 -08:00
Mohamed Hegazy
1235f78232 Merge branch 'issue20410' of https://github.com/benbraou/TypeScript into benbraou-issue20410 2018-01-08 14:42:51 -08:00
Wesley Wigham
b1a0261575
If declaration emit input is a module, output should be a module (#20626) 2018-01-08 13:58:34 -08:00