Commit Graph
4466 Commits
Author SHA1 Message Date
Andy e53e56cf82 Enable '--strictNullChecks' (#22088)
* Enable '--strictNullChecks'

* Fix API baselines

* Make sys.getEnvironmentVariable non-nullable

* make properties optional instead of using `| undefined` in thier type

* reportDiagnostics should be required

* Declare firstAccessor as non-nullable

* Make `some` a type guard

* Fix `getEnvironmentVariable` definition in tests

* Pretend transformFlags are always defined

* Fix one more use of sys.getEnvironmentVariable

* `requiredResponse` accepts undefined, remove assertions

* Mark optional properties as optional instead of using `| undefined`

* Mark optional properties as optional instead of using ` | undefined`

* Remove unnecessary null assertions

* Put the bang on the declaration instead of every use

* Make `createMapFromTemplate` require a parameter

* Mark `EmitResult.emittedFiles` and `EmitResult.sourceMaps` as optional

* Plumb through undefined in emitLsit and EmitExpressionList

* `ElementAccessExpression.argumentExpression` can not be `undefined`

* Add overloads for `writeTokenText`

* Make `shouldWriteSeparatingLineTerminator` argument non-nullable

* Make `synthesizedNodeStartsOnNewLine` argument required

* `PropertyAssignment.initializer` cannot be undefined

* Use one `!` at declaration site instead of on every use site

* Capture host in a constant and avoid null assertions

* Remove few more unused assertions

* Update baselines

* Use parameter defaults

* Update baselines

* Fix lint

* Make Symbol#valueDeclaration and Symbol#declarations non-optional to reduce assertions

* Make Node#symbol and Type#symbol non-optional to reduce assertions

* Make `flags` non-nullable to reduce assertions

* Convert some asserts to type guards

* Make `isNonLocalAlias` a type guard

* Add overload for `getSymbolOfNode` for `Declaration`

* Some more `getSymbolOfNode` changes

* Push undefined suppression into `typeToTypeNodeHelper`

* `NodeBuilderContext.tracker` is never `undefined`

* use `Debug.assertDefined`

* Remove unnecessary tag

* Mark `LiteralType.freshType` and `LiteralTupe.regularType` as required
2018-05-22 14:46:57 -07:00
Andy 5622bc2dd6 moveToNewFile: Support selecting the name of a declaration (#24331) 2018-05-22 14:00:29 -07:00
Andy 9cda2bdba0 Support recommended completion for union (#24326)
* Support recommended completion for union

* Fix for empty enum, which is not a union
2018-05-22 13:38:28 -07:00
Andy 694a985b49 For completions, treat a '// @ts-check' file like a TypeScript one (#24321) 2018-05-22 13:06:59 -07:00
Armando Aguirre b5d882ebd6 Merge pull request #24262 from armanio123/FixObjectLiteralExpression
Fix issue with formatting object literal csharp style
2018-05-22 12:39:14 -07:00
Sheetal Nandi f44dd6f53b Merge pull request #24206 from Microsoft/documentRegistery
Cache the latest source file from document registery in script info so that we do not have to reparse orphan script info
2018-05-22 12:11:16 -07:00
Andrew Casey bedc110c74 Merge pull request #24311 from amcasey/GH23287
Preserve jsx imports even when the compiler option is not set
2018-05-22 11:23:15 -07:00
Sheetal Nandi 66590a9391 Verify ref counts are set correctly when reusing the source file from script info cache 2018-05-22 11:18:40 -07:00
Andy 7106a587cc Add type for diagnostics where location is defined (#23686)
* Add type for diagnostics where location is defined

* getSemanticDiagnostics may return global diagnostics

* Reduce array creation
2018-05-22 11:01:18 -07:00
Andrew Casey 2e0cc63067 Check TransformFlags.ContainsJsx, rather than LanguageVariant.JSX 2018-05-22 10:51:19 -07:00
Mohamed Hegazy 9d57903630 Merge pull request #24312 from Kingwl/multiline-type-literal-formatter
fix wrong formatting with multiline type literals with IntersectionTy…
2018-05-22 10:06:24 -07:00
Andy 982c8d0af9 Add suggestion diagnostics for unused label and unreachable code (#24261)
* Add suggestion diagnostics for unused label and unreachable code

* Always error on unused left hand side of comma
2018-05-22 07:56:29 -07:00
王文璐 4b47c0cb82 fix wrong formatting with multiline type literals with IntersectionType and UnionType 2018-05-22 14:01:04 +08:00
Andrew Casey edd31a1505 Preserver jsx imports even when the compiler option is not set
...based on feedback from VS Code users.

Fixes #23287
2018-05-21 16:57:18 -07:00
Andy 802dc2bb9b fixUnusedIdentifier: If every VariableDeclaration is unused, remove the VariableStatement (#24231) 2018-05-21 15:54:33 -07:00
Sheetal Nandi e4c380a698 Merge branch 'master' into documentRegistery 2018-05-21 12:27:12 -07:00
Andy 440291e316 Fix bug: Get merged module symbol in forEachExternalModule (#24295) 2018-05-21 10:48:50 -07:00
Andy c09cc70ebe Fix bug: VariableDeclaration initializer may be undefined (#24256) 2018-05-21 07:58:33 -07:00
Armando Aguirre 0f7f9783dc Fixed test regression, removed nodeContentIsAlwaysIndented 2018-05-18 17:07:58 -07:00
Andy 4c22bf786e getEditsForFileRename: Do fresh module resolution instead of relying on cache (#24211)
* getEditsForFileRename: Do fresh module resolution instead of relying on cache

* Add host.resolveModuleNameWithFailedLookupLocations method

* Make host.resolveModuleNameWithFailedLookupLocations mandatory, and implement for Project

* Add test, and no need to check host.fileExists

* Change method name and always use cache

* Update name in string
2018-05-18 16:42:42 -07:00
Armando Aguirre 1146c690f8 Fix issue with formatting object literal csharp style 2018-05-18 16:33:55 -07:00
Andy 3eb66da155 Add code fix to remove unused label (#24037)
* Add code fix to remove unused label

* Test with trivia and fix indentation with dedented label
2018-05-18 15:25:24 -07:00
Andrew Casey 04a351224c Merge pull request #24237 from amcasey/GH23640
Sort exports when organizeImports is run
2018-05-18 13:39:24 -07:00
Andrew Casey 8f662a9131 Extract sorting helper 2018-05-18 12:53:28 -07:00
Mohamed Hegazy d60866aada Merge pull request #24236 from Kingwl/quick-fix-for-import-type
simply quick fix for import type missing typeof
2018-05-18 11:34:54 -07:00
Andrew Casey 43e1edf10a Eliminate runtime type check 2018-05-18 10:54:40 -07:00
Andy 76573c6520 getEffectiveTypeParameterDeclarations: Always return a defined result (#24251) 2018-05-18 10:17:35 -07:00
Mohamed Hegazy 8c2ed976a5 Merge pull request #24187 from Kingwl/disallow-in-function-like-initializer
disallow acesssor generate in function like initializer
2018-05-17 19:41:01 -07:00
王文璐 45c06cfd11 only allow refactor if selected span overlaps name declaration 2018-05-18 10:07:45 +08:00
Andrew Casey a327241655 Sort exports when organizeImports is run
Note that there's no attempt to remove unused exports.

Fixes #23640
2018-05-17 18:38:42 -07:00
王文璐 49989619db simply quick fix for import type missing typeof 2018-05-18 09:34:14 +08:00
Wesley Wigham d82d35c7f5 Set startPos at EOF in jsdoc token scanner so node end positions for nodes terminated at EoF are right (#24184)
* Set startPos at EOF in jsdoc token scanner to node end positions for nodes terminated at EoF are right

* More complete nonwhitespace token check, fix syntactica jsdoc classifier

* Use loop and no nested lookahead

* Do thigns unrelated to the bug in the test

* Fix typo move return

* Patch up typedef end pos

* Fix indentation, make end pos target more obvious
2018-05-17 15:16:18 -07:00
Andy d579793d0a moveToNewFile: Fix bug for missing importClause (#24224) 2018-05-17 14:32:12 -07:00
Andy 75ab60f199 Improve ChangeTracker#deleteNodeInList (#24221) 2018-05-17 14:31:58 -07:00
Andy 08c364d258 fixUnusedIdentifier: Don't delete node whose ancestor was already deleted (#24207) 2018-05-17 14:08:58 -07:00
Andy 09b9ec43e3 moveToNewFile: Fix bug for VariableDeclaration missing initializer (#24214) 2018-05-17 12:38:20 -07:00
Andy 176e35b9c3 moveToNewFile: Don't move imports (#24177) 2018-05-17 09:54:47 -07:00
Sheetal Nandi 81ca6502ea Cache the latest source file from document registry so we can keep it alive when script info is orphan 2018-05-17 09:54:07 -07:00
Sheetal Nandi 59d19251cf Add test to verify the document is released from source file when info is orphan 2018-05-17 09:54:07 -07:00
Nathan Shively-Sanders aa7e2b0f07 Add callback tag, with type parameters (#23947)
* Add initial tests

* Add types

* Half of parsing (builds but does not pass tests)

* Parsing done; types are uglier; doesn't crash but doesn't pass

* Bind callback tag

Builds but tests still don't pass

* Only bind param tags inside callback tags

* Fix binding switch to only handle param tags once

* Checking is 1/3 done or so.

Now I'm going to go rename some members to be more uniform. I hate
unnnecessary conditionals.

* Rename typeExpression to type (for some jsdoc)

(maybe I'll rename more later)

* Rename the rest of typeExpressions

Turns out there is a constraint in services such that they all need to
be named the same.

* Few more checker changes

* Revert "Rename the rest of typeExpressions"

This reverts commit f41a96b24d.

* Revert "Rename typeExpression to type (for some jsdoc)"

This reverts commit 7d2233a00e.

* Finish undoing typeExpression rename

* Rename and improve getTypeParametersForAliasSymbol

Plus some other small fixes

* Core checking works, but is flabbergastingly messy

I'm serious.

* Callback return types work now

* Fix crash in services

* Make github diff smaller

* Try to make github diff even smaller

* Fix rename for callback tag

* Fix nav bar for callback tag

Also clean up some now-redundant code there to find the name of typedefs.

* Handle ooorder callback tags

Also get rid of redundant typedef name code *in the binder*. It's
everywhere!

* Add ooorder callback tag test

* Parse comments for typedef/callback+display param comments

* Always export callbacks

This requires almost no new code since it is basically the same as
typedefs

* Update baselines

* Fix support for nested namespaced callbacks

And add test

* Callbacks support type parameters

1. Haven't run it with all tests
2. Haven't tested typedef tags yet
3. Still allows shared symbols when on function or class declarations.

* Template tags are now bound correctly

* Test oorder template tags

It works.

* Parser cleanup

* Cleanup types and utilities

As much as possible, and not as much as I would like.

* Handle callback more often in services

* Cleanup of binder and checker

* More checker cleanup

* Remove TODOs and one more cleanup

* Support parameter-less callback tags

* Remove extra bind call on template type parameters

* Bind template tag containers

Doesn't quite work with typedefs, but that's because it's now stricter,
without the typedef fixes. I'm going to merge with jsdoc/callback and
see how it goes.

* Fix fourslash failures

* Stop pre-binding js type aliases

Next up, stop pre-binding js type parameters

* Further cleanup of delayed js type alias binding

* Stop prebinding template tags too

This gets rid of prebinding entirely

* Remove TODO

* Fix lint

* Finish merge with use-jsdoc-aliases

* Update callback tag baselines

* Rename getTypeParametersForAliasSymbol

The real fix is *probably* to rename Type.aliasTypeArguments to
aliasTypeParameters, but I want to make sure and then put it in a
separate PR.
2018-05-17 09:28:11 -07:00
王文璐 5d233054c3 add quick fix for import type missing typeof 2018-05-17 16:35:20 +08:00
王文璐 755b443b6d disallow acesssor generate in function like initializer 2018-05-17 10:18:20 +08:00
Andy 424dba1d69 codeFixInferFromUsage: Avoid duplicate fix for variable declaration (#24169)
* codeFixInferFromUsage: Avoid duplicate fix for variable declaration

* Include VariableDeclaration initializer as a candidate type
2018-05-16 12:28:27 -07:00
Mohamed Hegazy 13ac88647f Merge pull request #24162 from Kingwl/fix-generate-accessor-starting-underscore
fix generate accessor if starting with underscore
2018-05-16 12:06:15 -07:00
王文璐 b7f725d1b8 fix generate accessor if starting with underscore 2018-05-16 15:34:11 +08:00
王文璐 0fde07f1c5 fix trailing comma in accessor generator 2018-05-16 14:47:44 +08:00
Andy b4ca23d8f9 Fix bug: Converting 'module.exports = {...}' to ES6 doesn't introduce a default export (#24141) 2018-05-15 16:22:58 -07:00
Andy d4a3c9c61a Fix placement of indent for @ts-ignore comment (#24143) 2018-05-15 16:21:15 -07:00
Andy cbbe34b35e Fix conversion of TextChanges to FileCodeEdits for new file (#24126) 2018-05-15 13:55:26 -07:00
Mohamed Hegazy 9484653657 Merge pull request #24114 from Microsoft/inspectorToModules
Inspector to modules
2018-05-15 12:59:42 -07:00