Commit Graph

19946 Commits

Author SHA1 Message Date
Mohamed Hegazy
8475e307f2 Port master into release-2.6 10/19 (#19348)
* Adding test case where opened file included in project is not added to ref count of configured project

* Fix the way configured project's reference is managed so that the open file

* Do not watch root folders for failed lookup locations and effective type roots
Fixes #19170

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* Mark fresh spread objects w/ContainsObjectLiteral

* Test excess property checks of spreads of unions.

* Add exported members of all project files in the global completion list (#19069)

* checker.ts: Remove null check on symbols

* tsserverProjectSystem.ts: add two tests

* client.ts, completions.ts, types.ts: Add codeActions member to CompletionEntryDetails

* protocol.ts, session.ts: Add codeActions member to CompletionEntryDetails protocol

* protocol.ts, session.ts, types.ts: add hasAction to CompletionEntry

* session.ts, services.ts, types.ts: Add formattingOptions parameter to getCompletionEntryDetails

* completions.ts: define SymbolOriginInfo type

* completions.ts, services.ts: Add allSourceFiles parameter to getCompletionsAtPosition

* completions.ts, services.ts: Plumb allSourceFiles into new function getSymbolsFromOtherSourceFileExports inside getCompletionData

* completions.ts: add symbolToOriginInfoMap parameter to getCompletionEntriesFromSymbols and to return value of getCompletionData

* utilities.ts: Add getOtherModuleSymbols, getUniqueSymbolIdAsString, getUniqueSymbolId

* completions.ts: Set CompletionEntry.hasAction when symbol is found in symbolToOriginInfoMap (meaning there's an import action)

* completions.ts: Populate list with possible exports (implement getSymbolsFromOtherSourceFileExports)

* completions.ts, services.ts: Plumb host and rulesProvider into getCompletionEntryDetails

* completions.ts: Add TODO comment

* importFixes.ts: Add types ImportDeclarationMap and ImportCodeFixContext

* Move getImportDeclarations into getCodeActionForImport, immediately after the implementation

* importFixes.ts: Move createChangeTracker into getCodeActionForImport, immediately after getImportDeclarations

* importFixes.ts: Add convertToImportCodeFixContext function and reference it from the getCodeActions lambda

* importFixes.ts: Add context: ImportCodeFixContext parameter to getCodeActionForImport, update call sites, destructure it, use compilerOptions in getModuleSpecifierForNewImport

* importFixes.ts: Remove moduleSymbol parameter from getImportDeclarations and use the ambient one

* importFixes.ts: Use cachedImportDeclarations from context in getCodeActionForImport

* importFixes.ts: Move createCodeAction out, immediately above convertToImportCodeFixContext

* Move the declaration for lastImportDeclaration out of the getCodeActions lambda into getCodeActionForImport

* importFixes.ts: Use symbolToken in getCodeActionForImport

* importFixes.ts: Remove useCaseSensitiveFileNames altogether from getCodeActions lambda

* importFixes.ts: Remove local getUniqueSymbolId function and add checker parameter to calls to it

* importFixes.ts: Move getCodeActionForImport out into an export, immediately below convertToImportCodeFixContext

* completions.ts: In getCompletionEntryDetails, if there's symbolOriginInfo, call getCodeActionForImport

* importFixes.ts: Create and use importFixContext within getCodeActions lambda

* importFixes.ts: Use local newLineCharacter instead of context.newLineCharacter in getCodeActionForImport

* importFixes.ts: Use local host instead of context.host in getCodeActionForImport

* importFixes.ts: Remove dummy getCanonicalFileName line

* Filter symbols after gathering exports instead of before

* Lint

* Test, fix bugs, refactor

* Suggestions from code review

* Update api baseline

* Fix bug if previousToken is not an Identifier

* Replace `startsWith` with `stringContainsCharactersInOrder`

* Dont try to run unit tests with rwc tests again (#19240)

* In tsserver, indent logged JSON (#19080)

* noUnusedLocals: Warn for recursive call to private method (#18920)

* Added test for windows style paths watched directories

* Handle when directory watcher is invoked on file change
Fixes #19206

* Add quickfix and refactoring to install @types packages (#19130)

* Add quickfix and refactoring to install @types packages

* Move `validatePackageName` to `jsTyping.ts`

* Remove combinePaths overloads

* Respond to code review

* Update api baselines

* Use native PromiseConstructor

* Return false instead of undefined

* Remove getProjectRootPath

* Update api

* This wasnt required before... (#19262)

* Collapse jsdoc annotation refactors to one

Previously there were two, and two always fired.

* Update baselines

* Fix #19257: Ensure a generated signature has a return type (#19264)

* Fix #19257: Ensure a generated signature has a return type

* Ensure generated properties have types

* Use the same context for multiple inferences to the same property access

* Respect newLine compiler option in language service output (#19279)

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* LEGO: check in for master to temporary branch.

* Disambiguate same-named refactors using description (#19267)

Disambiguate same-named refactors using actionName

* Set the scriptKind from the host configuration if present

* Update API baselines

* Remove erroneous error for JSDoc object literals

appears with checkJS.

* Update annotateWithTypeFromJSDoc tests

1. Object literals are single-line now.
2. Index signatures transform to TS index signatures.
3. The refactoring is only available when it could add types.

* Add a better test for jsdoc index signatures.

The test case shows that the errorenous error no longer appears.

* Fix bugs in jsdoc annotation refactor

1. Transform index signatures to TS index signatures.
2. Print object literals on a single line.
3. Only offer the refactor when it could add types. (There must not be a
type annotation already, and there must be a JSDoc that applies.)

* Move isJSDocIndexSignature to utilities

* Add failing testcase where when d.ts file is in program, the files get emitted multiple times with --out setting

* Modify api to emit affected files using callback instead of generating in memory output
Also marking few apis introduced during watch improvements changes that are suppose to be internal for now

* Use get files affected by internally and hence use file paths as input

* Simplify emit changed files further
Also use source file version as the signature of declaration file instead of computing it from text

* Do not cache the semantic diagnostics when compiler options has --out since we would anyways get all fresh diagnostics

* make getCurrentDirectory required (#19303)

* LEGO: check in for master to temporary branch.

* Actually use cached semantic diagnostics

* Fix tsc-instrumented

1. Make recursiveCreateDirectory correctly handle relative paths.
2. Remove dependency on Harness
3. Correctly increment iocapture0, iocapture1, ... iocaptureN.
4. Stop double-nesting baseline files.

* Fix lint

* Fix https://github.com/Microsoft/TypeScript/issues/19270: ensure output name is a valid locale name (#19308)

* Fix https://github.com/Microsoft/TypeScript/issues/19270: ensure output name is a valid locale name

* Use const instead of var

* Add comment

* Fix typo

* Split the concat logic for generatedLCGFile

* findAllRefs: Support anonymous default export (#19302)

* Fix undefined error using `getEffectiveTypeRoots` (#19300)

* Remove extra blank line in logs (#19307)

* Use Promise instead of PromiseLike (#19305)

* Workaround for nonnull operator on indexed accesses (#19275)

* Quick and dirty workaround

* Add third case to show current behavior

* Rename variable, replace elaboration from comment with links

* Remove some unnecessary `undefined` checks in extractSymbol (#19256)

* Fix "noStringLiteral" lint errors (#19310)

* LEGO: check in for master to temporary branch.

* Rename locale outputs

* Update LKG
2017-10-19 13:13:57 -07:00
Bill Ticehurst
50843b56f8 Merge pull request #19276 from Microsoft/dev/billti/port19228-to-2.6
Port #19228 from 2.5 to 2.6
2017-10-18 10:40:48 -07:00
Bill Ticehurst
240f1d294c Update API baselines 2017-10-17 16:50:32 -07:00
Bill Ticehurst
51d4fa0e64 Set the scriptKind from the host configuration if present 2017-10-17 16:19:02 -07:00
Mohamed Hegazy
1ccc04fe0a Update LKG 2017-10-16 16:57:02 -07:00
Mohamed Hegazy
d393e86b18 Merge branch 'release-2.6' of https://github.com/Microsoft/TypeScript into release-2.6 2017-10-16 16:54:20 -07:00
Mohamed Hegazy
a704915747 Port master into release-2.6 10/16 (#19237)
* unspoof call expression start in iife

* add test

* cleanup

* rename variables

* Use checkExpression to resolve symbols

* Actual fix + test

* revert method rename

* explain changes and remove spurious assignment

* add tests

* verified that new tests show no regressions against master

* remove newline

* Refactor JSDoc types to Typescript types

When the caret is on a Typescript declaration that has no type, but does
have a JSDoc annotation with a type, this refactor will add the
Typescript equivalent of the JSDoc type.

Notes:

1. This doesn't delete the JSDoc comment or delete parts of it. In fact,
due to bugs in trivia handling, it sometimes duplicates the comment.
These bugs are tracked in #18626.

2. As a bonus, when `noImplicitAny: true`, this shows up as a code fix in VS Code
whenever there is a no-implicit-any error. With `noImplicityAny: false`,
this code must be invoked via the refactoring command.

* Test:refactor JSDoc types to Typescript types

* Change refactoring name and description

* Move filenames to match refactoring rename

* Transform jsdoc types in the refactor, not emitter

The emitter now understands JSDoc types but emits them in the original
format.

* Correctly transform jsdoc parameter types

And give a better name for rest params

* Convert all JSDoc parameters and return types of functions

* Add and update jsdoc annotation refactoring tests

* Convert @template tag to type parameters in refactor

* Test refactor of JSDoc @template tag

* Fix duplicated JSDoc comments

Incorporate suppressLeadingAndTrailingTrivia just added by @amcasey.

* Create source files lazily in tests (#19143)

* LEGO: check in for master to temporary branch.

* JSDoc->type refactor:Renames+improve never handling

* return more Debug.fails instead of undefined.

* Fix spacing lint

* In getContextuallyTypedParameterType, skip a `this` parameter when counting parameter index (#19155)

* LEGO: check in for master to temporary branch.

* Added test case.

* Create truly unique names for tagged template strings.

* Accepted baselines.

* Update generated files (#19177)

* Properly handle mapped types with 'keyof any'

* LEGO: check in for master to temporary branch.

* Mapped type { [P in any]: T } should yield { [x: string]: T }

* Add tests

* Accept new baselines

* LEGO: check in for master to temporary branch.

* Add getCompilerOptions method to project
Fixes #19218

* In convertFunctionToEs6Class.ts, share code for getting symbol (#19160)

* Fix for-in emit under systemjs (#19223)

* Support 'package.json' not in package root (#19133)

* Support 'package.json' not in package root

* Test "foo/@bar"

* More tests, and don't use "types" from the root package.json if not loading the root module

* Add comments about why we need two methods that return compilerOptions

* Fix instantiated generic mixin declaration emit (#19144)

* Fix #18545, dont use declared type of class expression

* Accept API Baselines

* Add thus far unused flag from node builder

* Accept baseline update

* Do not reduce subtypes of awaited union type

* Fix generated name scope when emitting async functions

* LEGO: check in for master to temporary branch.

* Add release-2.6 to covered branches
2017-10-16 16:53:36 -07:00
Mohamed Hegazy
344ff573fb Merge branch 'port-master-10-16' into release-2.6 2017-10-16 16:20:50 -07:00
Mohamed Hegazy
6f13c64a0b Merge branch 'master' into port-master-10-16 2017-10-16 16:15:16 -07:00
Mohamed Hegazy
3c452057c2 Add release-2.6 to covered branches 2017-10-16 16:09:16 -07:00
Ron Buckton
06fd5e0bfe Merge pull request #19230 from Microsoft/fix18186
Do not reduce subtypes of awaited union type
2017-10-16 15:17:30 -07:00
Ron Buckton
169b8e436a Merge pull request #19232 from Microsoft/fix19187
Fix generated name scope when emitting async functions
2017-10-16 15:17:14 -07:00
csigs
95715603bc LEGO: Merge pull request 19234
LEGO: Merge pull request 19234
2017-10-16 15:11:04 -07:00
csigs
fd86cd5a2e LEGO: check in for master to temporary branch. 2017-10-16 22:10:47 +00:00
Ron Buckton
eebb0447ab Fix generated name scope when emitting async functions 2017-10-16 14:47:43 -07:00
Ron Buckton
9563246993 Do not reduce subtypes of awaited union type 2017-10-16 14:26:16 -07:00
Sheetal Nandi
5de6366e8a Merge pull request #19222 from Microsoft/projectCompilerOptions
Add getCompilerOptions method to project
2017-10-16 14:23:35 -07:00
Wesley Wigham
aea7e9a7a8 Fix instantiated generic mixin declaration emit (#19144)
* Fix #18545, dont use declared type of class expression

* Accept API Baselines

* Add thus far unused flag from node builder

* Accept baseline update
2017-10-16 14:17:55 -07:00
Arthur Ozga
63074bcba0 Merge pull request #16695 from aozgaa/fixIifeIndentation
Fix indentation for function argument in call expression
2017-10-16 14:03:25 -07:00
Sheetal Nandi
734bda833c Add comments about why we need two methods that return compilerOptions 2017-10-16 13:06:15 -07:00
Andy
2cb0403e2d Support 'package.json' not in package root (#19133)
* Support 'package.json' not in package root

* Test "foo/@bar"

* More tests, and don't use "types" from the root package.json if not loading the root module
2017-10-16 13:02:15 -07:00
Wesley Wigham
40222d1a77 Fix for-in emit under systemjs (#19223) 2017-10-16 12:57:23 -07:00
Andy
bac30fc1a2 In convertFunctionToEs6Class.ts, share code for getting symbol (#19160) 2017-10-16 11:41:35 -07:00
Sheetal Nandi
3c27e782da Add getCompilerOptions method to project
Fixes #19218
2017-10-16 11:22:49 -07:00
csigs
8d47ef60a9 LEGO: Merge pull request 19217
LEGO: Merge pull request 19217
2017-10-16 09:10:42 -07:00
csigs
9306543431 LEGO: check in for master to temporary branch. 2017-10-16 16:10:13 +00:00
Anders Hejlsberg
d4c0377395 Merge pull request #19185 from Microsoft/fixMappedTypesKeyofAny
Fix 'any' and 'keyof any' in mapped types
2017-10-14 12:12:25 -07:00
Mohamed Hegazy
abe45ed2b9 Merge branch 'RyanCavanaugh-fix11857' 2017-10-14 11:33:21 -07:00
Mohamed Hegazy
1f63fbbc08 Merge branch 'fix11857' of https://github.com/RyanCavanaugh/TypeScript into RyanCavanaugh-fix11857 2017-10-14 11:31:39 -07:00
Anders Hejlsberg
8e47c18636 Accept new baselines 2017-10-14 11:13:52 -07:00
Anders Hejlsberg
ee0715a073 Add tests 2017-10-14 11:13:40 -07:00
Anders Hejlsberg
fa65bd2062 Mapped type { [P in any]: T } should yield { [x: string]: T } 2017-10-14 09:53:51 -07:00
csigs
48d380f328 LEGO: Merge pull request 19181
LEGO: Merge pull request 19181
2017-10-13 21:10:21 -07:00
csigs
40cb9656f9 LEGO: check in for master to temporary branch. 2017-10-14 04:10:04 +00:00
Anders Hejlsberg
07ff0fdb81 Properly handle mapped types with 'keyof any' 2017-10-13 16:54:57 -07:00
Daniel Rosenwasser
144026cd3b Merge pull request #19174 from Microsoft/correctlyScopedtaggedTemplates-master
Fix uniqueness for tagged template variables
2017-10-13 16:54:47 -07:00
Mohamed Hegazy
faa04a2402 Update generated files (#19177) 2017-10-13 16:47:40 -07:00
Daniel Rosenwasser
258c4e0bcc Accepted baselines. 2017-10-13 15:40:32 -07:00
Daniel Rosenwasser
50085bab27 Create truly unique names for tagged template strings. 2017-10-13 15:40:32 -07:00
Daniel Rosenwasser
16f7f6f2e9 Added test case. 2017-10-13 15:40:31 -07:00
csigs
e537a7bdf5 LEGO: Merge pull request 19171
LEGO: Merge pull request 19171
2017-10-13 15:10:41 -07:00
csigs
fadf4914bb LEGO: check in for master to temporary branch. 2017-10-13 22:10:24 +00:00
Andy
769d202d4c In getContextuallyTypedParameterType, skip a this parameter when counting parameter index (#19155) 2017-10-13 14:53:52 -07:00
Nathan Shively-Sanders
22769d95e1 Merge pull request #18747 from Microsoft/refactor-jsdoc-types-to-typescript
Refactor jsdoc types to typescript
2017-10-13 10:21:54 -07:00
Nathan Shively-Sanders
4cf06bbb02 Fix spacing lint 2017-10-13 10:02:04 -07:00
Nathan Shively-Sanders
84e3507151 return more Debug.fails instead of undefined. 2017-10-13 09:45:41 -07:00
Nathan Shively-Sanders
c83daa6481 JSDoc->type refactor:Renames+improve never handling 2017-10-13 09:38:01 -07:00
csigs
027528e9b8 LEGO: Merge pull request 19157
LEGO: Merge pull request 19157
2017-10-13 09:10:27 -07:00
csigs
c3a2dc3f44 LEGO: check in for master to temporary branch. 2017-10-13 16:10:06 +00:00
Andy
6099b09a6e Create source files lazily in tests (#19143) 2017-10-13 07:17:17 -07:00