Commit Graph

16298 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
c9ac15ae56 In JS, this assignments in constructors are preferred and nullable initializers become any (#22882)
* First draft:in js, constructor declaration is preferred

* Add tests

* initializer of null|undefined gives any in JS

Also move this-assignment fixes out of binder. I'm going to put it in
the checker instead.

* In JS, initializer null|undefined: any, []: any[]

* First draft of js prefer-ctor-types overhaul

* Update tests, update baselines

* Improve readability of constructor-type preference

* Cleanup: Remove TODO and duplication

* Add noImplicitAny errors

* Add comment
2018-03-26 13:42:34 -07:00
Andy
fa794f6ee1 Remove unnecessary 'forEachEntry' call (#22653) 2018-03-26 13:04:47 -07:00
Wesley Wigham
6af764c560 Declaration maps and transparent goto definition using them (#22658)
* Add compiler option to enable declaration sourcemaps

* Transparent goto definition for sourcemapped declaration files

* Post-rebase touchups

* Rename API methods

* Fix lints

* Fix typo in name XD

* Log sourcemap decode errors

* Share the cache more, but also invalidate it more

* Remove todo

* Enable mapping on go to implementation as well

* Allow fourslash to test declaration maps mroe easily

* more test

* Handle sourceRoot

* Add tests documenting current behavior with other sourcemapping flags

* Ignore inline options for declaration file maps, simplify dispatch in emitter

* Change program diagnostic

* Fix nit

* Use charCodeAt

* Rename internal methods + veriables

* Avoid filter

* span -> position

* Use character codes

* Dont parse our sourcemap names until we need to start using them

* zero-index parsed positions

* Handle sourceMappingURL comments, including base64 encoded ones

* Unittest b64 decoder, make mroe robust to handle unicode properly

* Fix lint

* declarationMaps -> declarationMap

* Even more feedback

* USE Mroe lenient combined regexp

* only match base64 characters

* Fix nit
2018-03-26 12:15:34 -07:00
Anders Hejlsberg
fe8f239648 Merge pull request #22869 from Microsoft/fixConditionalTypeVariance
Fix conditional type variance
2018-03-26 09:36:16 -07:00
Anders Hejlsberg
d7df84d641 Merge pull request #22850 from Microsoft/tupleTypeInference
Only make inferences from tuple types of right arity
2018-03-26 09:35:45 -07:00
Andy
fdc468976e Remove unused function (#22848) 2018-03-26 08:03:24 -07:00
Anders Hejlsberg
b5a39e814f Change to more conservative conditional type relationship 2018-03-25 15:24:31 -07:00
Anders Hejlsberg
8750bb8949 Add missing type relationship for conditional types 2018-03-25 11:29:58 -07:00
Anders Hejlsberg
d6b6bb73de Don't infer between tuple types with different arity 2018-03-23 17:32:52 -07:00
Andy
9557e4ad96 Handle completions in interface / type literal similar to class (#22701)
* Handle completions in interface / type literal similar to class

* Code review
2018-03-23 16:04:29 -07:00
Benjamin Lichtman
383751866e Merge pull request #22842 from uniqueiniquity/outliningLineEnding
Make region outlining more sensitive to CRLF
2018-03-23 16:02:33 -07:00
Ryan Cavanaugh
e7b2017bb0 Merge pull request #22744 from RyanCavanaugh/fixCacheInvalidation
Fix cache invalidation
2018-03-23 15:44:35 -07:00
Ryan Cavanaugh
a69adf272a Run test in both module resolvers 2018-03-23 15:22:41 -07:00
Ryan Cavanaugh
1e66f071fd Always include parent folder failed lookup locations 2018-03-23 14:42:16 -07:00
uniqueiniquity
6ba4dbeae4 Make region outlining more sensitive to CRLF 2018-03-23 14:29:32 -07:00
Wesley Wigham
0736554db7 Alternate but more general token comment emit fix + organizeImports fix (#22836)
@amcasey: Preserve leading trivia when organizing imports

When organizing imports, we used to move the leading and trailing trivia
of each individual import with that import as it was repositioned or
deleted.  This had the unfortunate effect of repositioning or deleting
the header comment of the file.

Our new approach is to leave the leading trivia of the first import
ahead of the resulting block of imports (i.e. it no longer follows the
first import as it is repositioned or deleted).  Trailing trivia on the
first import and trivia on subsequent imports are treated as before.
2018-03-23 14:13:40 -07:00
Anders Hejlsberg
deb87bb8ad Obtain constraint from destructured property when applicable 2018-03-23 09:42:43 -07:00
Andy
02ee11c357 Refactor tryGetGlobalSymbols into list of things to try (#22704)
* Refactor `tryGetGlobalSymbols` into list of things to try

* Refactor to `||` expression
2018-03-23 08:44:21 -07:00
Andy
0e9364f48e Simplify functions for adding parse errors (#22513)
* Simplify functions for adding parse errors

* Prefer parseErrorAt over parseErrorAtRange
2018-03-23 08:34:04 -07:00
Sheetal Nandi
78c12cdb9d Merge pull request #22808 from Microsoft/moduleResolutionEvents
Invalidate resolutions from typeRoots watch event as a fallback mechanism
2018-03-22 20:41:14 -07:00
Andrew Casey
6524fc53be Merge pull request #22590 from amcasey/DiagEvents
Add support for suppressing project events
2018-03-22 17:50:07 -07:00
Andrew Casey
e37ff2574b Test suppression of diagnostic events 2018-03-22 16:44:12 -07:00
Andrew Casey
517cf6aa89 Add support for suppressing project events
VS doesn't consume (e.g.) `syntaxDiag` events, so there's no reason to
do the work to compute their payloads.
2018-03-22 16:44:09 -07:00
Nathan Shively-Sanders
e16bb3e418 Improve behaviour of ... inside JSDoc functions (#22809)
* No error for ... on last param of jsdoc function

* ... is a rest param w/array type in jsdoc function

* Simplify getTypeFromJSDocVariadicType
2018-03-22 16:17:16 -07:00
Wesley Wigham
ca1d19a579 Always make a new jsxAttributes type, dont reuse emptyObjectType (#22810)
* Always make a new jsxAttributes type, dont reuse emptyObjectType

* Break up conditional a bit
2018-03-22 15:16:33 -07:00
Wesley Wigham
a909000b62 Parse and check type arguments on JSX opening and self-closing tags (#22415)
* Parse and check type arguments on JSX opening like elements

* Fix nits
2018-03-22 15:07:36 -07:00
Wesley Wigham
a7b066fe04 Allow local class declarations to be returned as mixins (#22807) 2018-03-22 15:02:54 -07:00
Wesley Wigham
874dd25494 Stop printing two spaces between heritage clauses (#22801)
* Stop printing two spaces between heritage clauses

* Fix lint
2018-03-22 14:59:40 -07:00
Andy
94570eedcc Don't provide spelling suggestion for module (#22805) 2018-03-22 14:27:34 -07:00
Sheetal Nandi
306ed1291b Invalidate resolutions from typeRoots watch event as a fallback mechanism
There are times when the directory watcher for failed lookup locations isnt invoked and is not very determinitstic
So as a fallback, when we receive typeRoots watch event, handle failed lookup locations as well
2018-03-22 13:54:41 -07:00
Daniel Rosenwasser
810b386c2a Merge pull request #22803 from Microsoft/updateTo2.9
Update master version to 2.9.
2018-03-22 13:46:22 -07:00
Andy
e0ca8a5f39 organizeImports: Fix bug in reference-testing for renamed import (#22797) 2018-03-22 13:08:58 -07:00
Daniel Rosenwasser
db1e924a4b Update version to 2.9. 2018-03-22 13:06:00 -07:00
Andy
54274a8a2a Fixes for new mocha types (#22799)
* Fixes for new mocha types

* fix lint
2018-03-22 12:44:19 -07:00
Wesley Wigham
7721cc45c8 Improve assertion violation message (#22522) 2018-03-22 11:46:52 -07:00
Andy
67670d8726 Revert change to canUseEvents in IoSessionOptions (#22791) 2018-03-22 10:29:32 -07:00
Nathan Shively-Sanders
4462c159b1 Correctly track thisContainer for this-property-assignments in JS nested containers (#22779)
* Track thisContainer for this-property-assignments in JS

Previously it would update on every block, not just those that could
bind `this`.

In addition, if the constructor symbol still can't be found, then no
binding happens. This is usually OK because people don't add new
properties in methods too often.

* Update additional baselines

* Add lib:dom to new test

* Address PR comments

* Correct new name for saveThisParentContainer
2018-03-22 09:54:43 -07:00
Sheetal Nandi
f3a1f165c2 Merge pull request #22729 from Microsoft/renameNodeModulesContainingAtTypes
Fix when program module resolution in watch mode when node_modules folder itself gets the rename event
2018-03-22 09:40:53 -07:00
Andy
6d82a20109 Combine getLastChild helpers (#22418) 2018-03-22 09:32:05 -07:00
Andy
b6b51a4d38 convertFunctionToEs6Class: Combine deletes and deletedNodes (#22742) 2018-03-22 08:22:00 -07:00
Andy
f2f2393f4b convertFunctionToEs6Class: Copy comments from constructor to class (#22738) 2018-03-22 08:12:02 -07:00
Andy
effcf2ac56 Fix test for overlapping changes (#22741) 2018-03-22 08:11:27 -07:00
Andy
3a3f57acfd Remove unnecessary exports (#22739) 2018-03-22 08:10:52 -07:00
Andrew Casey
16697f6c7d Merge pull request #22591 from amcasey/SessionOptions
Delete IoSessionOptions
2018-03-21 17:18:32 -07:00
Anders Hejlsberg
e5f6ed0b60 Merge pull request #22707 from Microsoft/fixIndexedAccessInConditionalType
Fix indexed access in conditional type
2018-03-21 15:18:39 -07:00
Andrew Casey
564183f9ed Fix lint errors 2018-03-21 15:18:06 -07:00
Andrew Casey
9352a8bc11 Delete IoSessionOptions
Many of the operations were unused because the values were being
accessed directly from the enclosing scope.
2018-03-21 14:56:06 -07:00
Nathan Shively-Sanders
de4a69cb72 In source files and blocks, bind function declarations before other statements (#22766)
* Add test case and temporarily disable inference

(Inference of class members from this-assignments inside a
prototype-assigned function.)

* Update baselines

* In blocks and source files, bind functions first

* Add tests from other bugs

* Remove temporary failsafe

* Update tests to restore intent and clean up errors

* Restore intent even better

* Restore intent even better x2

* Add missed baselines
2018-03-21 14:22:09 -07:00
Anders Hejlsberg
ee546fb30f Merge pull request #22764 from Microsoft/fixInferTypeDeclarationFiles
Fix missing 'infer T' in declaration files
2018-03-21 14:17:51 -07:00
Anders Hejlsberg
9083f6cf18 Revise binder logic to correctly find 'infer T' containers 2018-03-21 13:23:58 -07:00