Commit Graph

19827 Commits

Author SHA1 Message Date
Martin Probst 6f114a2c9b Fix comments for import and export declarations.
Previously, TypeScript would only set the text range when transforming
import and export declarations, leading it to drop synthetic comments
and emit flags.

This commit sets the original node on the statements that contains the
generated `require()` call (or similar, depending on module system),
retaining emit flags and synthetic comments.
2018-07-18 16:30:32 +02:00
Martin Probst db888b8670 Retain synthetic comments on exported variables.
Variables that do not have a local variable created get transformed into
a single exports assignment expression. TypeScript previously just
created a new expression and set the text range to retain original
comments, but for synthetic comments, merging the emit nodes by setting
the original node is required.
2018-07-18 16:30:32 +02:00
Daniel Rosenwasser 649f294413 Elaborate on the first non-array type when object literals are compared against 'T | T[]'. 2018-07-17 21:54:33 -07:00
Andy d92c26db69 Add test that getEditsForFileRename respects UserPreferences (#25745)
* Add test that getEditsForFileRename respects UserPreferences

* Test quotePreference
2018-07-17 17:05:35 -07:00
Andy 854462d383 Fix formatting at trailing comma (#25706) 2018-07-17 15:21:35 -07:00
Andy 6d8a5f6288 Fix invalid cast: JSDocSignature is not a SignatureDeclaration (#25734) 2018-07-17 13:35:55 -07:00
Andy d28fb65a1f Fix type of TypeParameterDeclaration#parent (#25737) 2018-07-17 13:35:34 -07:00
Andy 89f2af17f0 Avoid using old node in import fix to use namespace import (#25729) 2018-07-17 13:34:56 -07:00
Mohamed Hegazy 57a72f507d Merge pull request #25733 from mattmccutchen/issue-25683
Check for optional type parameters before issuing a "wrong number of type arguments" error on a function call.
2018-07-17 12:51:19 -07:00
Matt McCutchen bd84179d82 Check for optional type parameters before issuing a "wrong number of
type arguments" error on a function call.

Fixes #25683.
2018-07-17 13:25:46 -04:00
Nathan Shively-Sanders 1edc975f15 Revert the revert of explicitly typed special assignments (#25727)
* Revert "Revert "Explicitly typed special assignments are context sensitive (#25619)""

This reverts commit 16676f2707.

* Revert "Revert "Explicitly typed prototype assignments are context sensitive (#25688)""

This reverts commit ff8c30d636.
2018-07-17 10:02:51 -07:00
Mohamed Hegazy 204ce175dd Merge pull request #25612 from Microsoft/updateVersionTo3.1
Update version
2018-07-16 14:33:25 -07:00
Mohamed Hegazy 75930f87fe Merge pull request #25699 from Microsoft/revert-explicitly-typed-special-assignments
Revert explicitly typed special assignments
2018-07-16 13:15:06 -07:00
Nathan Shively-Sanders 16676f2707 Revert "Explicitly typed special assignments are context sensitive (#25619)"
This reverts commit 32e60a9647.
2018-07-16 12:39:08 -07:00
Andy Hanson 1038c76f88 navigationBar: Don't merge unrelated grandchildren 2018-07-16 12:38:38 -07:00
Nathan Shively-Sanders ff8c30d636 Revert "Explicitly typed prototype assignments are context sensitive (#25688)"
This reverts commit 5b21cbc0c9.
2018-07-16 12:38:27 -07:00
Daniel Rosenwasser 93ab352189 Merge pull request #25565 from Microsoft/popFirst
Make 'pop' the first method that uses 'T' in 'Array'
2018-07-16 11:41:44 -07:00
Andy afdd47c9ce Simplify rules for isControlFlowEndingStatement (#25693) 2018-07-16 11:17:46 -07:00
Mohamed Hegazy 8ef146e658 Merge pull request #25656 from j-oliveras/Fix_25653
Change jsDocTagNames to lower case.
2018-07-16 10:18:12 -07:00
Nathan Shively-Sanders 5b21cbc0c9 Explicitly typed prototype assignments are context sensitive (#25688)
* Explicitly typed prototype assignments:ctx sensitive

Follow up to #25619: Add the necessary code to type `prototype`
correctly in prototype assignments so that code like
`F.prototype = { ... }` properly makes the object literal context
sensitive.

* Fix lint
2018-07-16 10:03:39 -07:00
王文璐 cdfef4fa57 add use strict and simple parameter check 2018-07-16 17:40:57 +08:00
Alexander T bf567b8a40 Change getModifiedTime type 2018-07-16 11:10:09 +03:00
Daniel Rosenwasser 60986adee5 Merge pull request #25507 from ajafff/leftmost-expr-tagged-template
getLeftmostExpression: handle TaggedTemplateExpression
2018-07-13 23:56:32 -07:00
Andy e25a23bb3c Fix Buffer.from uses to handle node 5.4.1 bug (#25659) 2018-07-13 17:08:25 -07:00
Jordi Oliveras Rovira 4f411a8cce Change jsDocTagNames to lower case. 2018-07-14 01:02:20 +02:00
Sheetal Nandi 49ac60f286 Support resolveJsonModule option when files contain the json file
Fixes #25636
2018-07-13 12:21:51 -07:00
Sheetal Nandi 47e513e151 Merge pull request #25627 from Microsoft/preserveOutputInConfig
Fix incorrect handling of preserveWatchOutput flag is in config file
2018-07-13 10:56:53 -07:00
Andy 3f4412b173 getContainingList: Handle TypeAliasDeclaration (#25614)
* getContainingList: Handle TypeAliasDeclaration

* Handle ClassExpression and InterfaceDeclaration
2018-07-13 10:30:22 -07:00
Andy 27da9eab8d fixUnreachableCode: Don't delete whole block when non-first line is unreachable (#25625) 2018-07-13 09:57:04 -07:00
Andy 88c6ced3c6 indentMultilineCommentOrJsxText: Fix bug when 'parts' is empty (#25645) 2018-07-13 09:56:21 -07:00
Sheetal Nandi ca083809a4 Fix incorrect handling of preserveWatchOutput flag is in config file
Fixes #25620
2018-07-12 18:29:02 -07:00
Andy 1fb050bcca Don't report unused diagnostics when the unused node has a parse error (#25598)
* Don't report unused diagnostics when the unused node has a parse error

* Update test
2018-07-12 17:24:59 -07:00
Nathan Shively-Sanders 32e60a9647 Explicitly typed special assignments are context sensitive (#25619)
* Explicitly typed js assignments: context sensitive

Explicitly typed special assignments should be context sensitive if they
have an explicit type tag. Previously no special assignments were
context sensitive because they are declarations, and in the common,
untyped, case we inspect the right side of the assignment to get the
type of the left side, and inspect the right side of the assignment to
get the type of the left side, etc etc.

Note that some special assignments still return `any` from
checkExpression, so still don't get the right type.

Fixes #25571

* Change prototype property handling+update bselines

* Fix indentation in test

* Update baselines
2018-07-12 15:28:53 -07:00
Andy f500289a44 Stricter test that JSDoc @type tag matches function signature (#25615) 2018-07-12 14:02:02 -07:00
Sheetal Nandi 50b75e7585 Optimize the deletion and calculation of bigger set of semantic diagnostics to be calculated 2018-07-12 13:44:56 -07:00
Ryan Cavanaugh 6a2ffec53d Merge pull request #25610 from RyanCavanaugh/buildOnWatchStartup
When running with -w, do an initial compilation
2018-07-12 12:51:16 -07:00
Anders Hejlsberg 0f8b6fcd27 Merge pull request #25608 from Microsoft/genericRestArityCheck
Fix generic rest parameter arity checks
2018-07-12 09:09:31 -10:00
Andy af412e39cf mapTextChangesToCodeEditsUsingScriptInfo: Handle tsconfig.json text change (#25586)
*  mapTextChangesToCodeEditsUsingScriptInfo: Handle tsconfig.json text change

* Can't use `program.getSourceFile()` to determine file existence when multiple projects exist

* Use direct union instead of discriminated union
2018-07-12 12:09:04 -07:00
Mohamed Hegazy ec6e37ec62 Update version 2018-07-12 11:37:19 -07:00
Andy f9764d17f0 fixUnusedIdentifier: Support deleting @template tag (#25597)
* fixUnusedIdentifier: Support deleting @template tag

* Just return createTextRangeFromNode instead of adjusting range
2018-07-12 11:26:17 -07:00
Anders Hejlsberg 5822a8c923 Merge branch 'master' into genericRestArityCheck
# Conflicts:
#	src/compiler/checker.ts
2018-07-12 08:20:48 -10:00
Nathan Shively-Sanders bd7b97ce61 Get return type from @type tag (#25580)
* Get return type from `@type` tag

This only happens in the checker, where the type is easily accessible.
The syntax-based check in getEffectiveReturnTypeNode as a fast path, and
for other uses that don't want to make a call to getTypeFromTypeNode.

Fixes #25525

* Implement PR suggestions

* Error when type tag isn't callable

* Fix lint
2018-07-12 10:49:41 -07:00
Ryan Cavanaugh 08d7b8fd10 When running with -w, do an initial compilation 2018-07-12 10:36:58 -07:00
Anders Hejlsberg 87ad612e70 Additional arity check following instantiation of generic rest parameter 2018-07-11 17:26:35 -10:00
rflorian 66e9aaac18 Issue 19220 function parameter arity (#24031)
* Added reference test case and diagnostics message

* Adjusted arity checks to account for non-contiguous overloads

* Code cleanup, baseline not yet commited

* Accepted test baselines and minor implementation changes

* Cleaned up baseline tracking the now renamed arity check test

* Add range response when range contains only 2 values

* Added recent baseline

* Refined arity error messages when available overloads can be grouped

* Rolled back code formatting

* WIP cleanup needed in a few edge cases

* Finished adding new more descriptive error messages

* Code cleanup

* Added simplified version of bugfix for #19220

* Rebased onto master

* Removed whitespace after type assertion

* Code review simplifications

* Use correct diagnostic name

* Code review changes and simplification of diagnostic message

* Revert formatting changes
2018-07-11 17:19:56 -07:00
Sheetal Nandi 585acb1990 Use exported modules through declaration emit to invalidate the semantic diagnostics
Fixes #24986
2018-07-11 16:43:02 -07:00
Andy 5f4a03c408 Ensure TypeChecker#getTypeAtLocation returns a defined result (#25583)
* Ensure TypeChecker#getTypeAtLocation returns a defined result

* Update additional baseline
2018-07-11 16:33:56 -07:00
Sheetal Nandi 0774fdc61d Expose visible to outside import declarations and dynamic imports through emitDts output 2018-07-11 15:30:23 -07:00
Mohamed Hegazy 2d0d655fea Merge pull request #25561 from ajafff/multiple-prologue-directives
handle multiple prologue directives
2018-07-11 11:38:01 -07:00
Nathan Shively-Sanders 42a2d9e568 Excess property understands conditional types (#25584)
Previously it did not, causing misleading excess property errors. Note
that assignability errors with conditional types are still usually
confusing. This PR doesn't address that.

Also, make sure that exact matches in getSpellingSuggestion are skipped.
2018-07-11 11:24:40 -07:00