7363 Commits

Author SHA1 Message Date
Anders Hejlsberg
c4e21c912e Add regression test 2018-04-04 17:26:31 -07:00
Anders Hejlsberg
8f25748334 Add another test 2018-04-04 17:25:51 -07:00
Anders Hejlsberg
228aff0cfb Add regression test 2018-04-04 17:25:44 -07:00
Wesley Wigham
4189b9cfad
Allow multiple class base types; intersect them, as with interfaces (#23123) (#23130) 2018-04-03 18:35:50 -07:00
Nathan Shively-Sanders
ad742c9f0f No error referring to UMD symbol in CommonJS modules (#23129) 2018-04-03 16:10:42 -07:00
Wesley Wigham
1c86d01b64
Actuallt preserve nonblock for of statements in forofs with object rest (#23122) (#23124) 2018-04-03 16:08:45 -07:00
Wesley Wigham
51b895c891
Consider jscontainer aliases as referencible even if they have other local meanings (#23119) (#23121) 2018-04-03 13:31:55 -07:00
Andy
d07102e567
Fix bug: don't return string literal completions if there's no contextual type (#23079) 2018-04-02 16:20:51 -07:00
Wesley Wigham
a9c5025664
Move JSX props support check and make syntactic (#22970) (#22996)
* Move JSX props support check and make syntactic

* Make parameter required
2018-03-29 13:50:05 -07:00
Wesley Wigham
0b2d6f6993
Dont let an import that doesnt need helpers override one that does (#22966) (#22990) 2018-03-29 11:58:20 -07:00
Sheetal Nandi
4fcf5bc225 Correct the incremental parsing when there is jsDoc node
Fixes #22924
2018-03-28 15:44:01 -07:00
Anders Hejlsberg
072401e29f Change test to use type variables 2018-03-28 12:06:04 -07:00
Anders Hejlsberg
7df518d61a Add tests 2018-03-28 12:05:51 -07:00
Anders Hejlsberg
3d04388907 Add tests 2018-03-28 12:05:47 -07:00
Anders Hejlsberg
61f3a829eb Add regression test 2018-03-28 12:05:11 -07:00
Matt Bierner
8dcbf6961e Fix completions and brace in empty file (#22620)
Fixes #22618
2018-03-28 12:04:03 -07:00
Matt Bierner
dc4001f41d Fix await code action crashes when await is not in a function (#22623)
Fixes #22614
2018-03-28 12:03:27 -07:00
Andy
77e8a69ab2
importFixes: Distinguish when we need to import JSX constructor or JSX namespace (#22828) (#22901) 2018-03-27 17:05:55 -07:00
Andy
c63b206d4f
Don't add external module completions in a pure commonjs file (#22583) (#22880) 2018-03-26 16:30:29 -07:00
Andy
cc67601b60
convertFunctionToEs6Class: Copy comments from constructor to class (#22738) (#22802) 2018-03-22 15:15:21 -07:00
Daniel Rosenwasser
e5f0385816
Merge pull request #22780 from Microsoft/fixInferDeclarationFiles-release-2.8
[release-2.8] Fix infer declaration files
2018-03-21 17:16:44 -07:00
Anders Hejlsberg
cf6f39f79d Add regression test 2018-03-21 15:53:30 -07:00
Anders Hejlsberg
02a3a74e3b Add regression test 2018-03-21 15:53:29 -07:00
Anders Hejlsberg
03c4809d5a Add test to verify errors on nested 'infer T' declarations 2018-03-21 15:53:28 -07:00
Anders Hejlsberg
1358091a30 Add test 2018-03-21 15:48:04 -07:00
Anders Hejlsberg
10a611371a Add tests 2018-03-21 15:48:02 -07:00
Nathan Shively-Sanders
c2e22dc469 Undo 'any' inference propagation (#22736)
* Undo 'any' inference propagation

Removing this only changes one test slightly, and fixes JQuery types,
which rely on the old method of inference.

* Add jquery regression test and update baselines

* Restore any inference propagation to wildcard only
2018-03-21 11:14:19 -07:00
Wesley Wigham
044cdbc85f Combine keyof T inferences (#22525)
* Combine keyof T inferences

* Extract covariant inference derivation into function

* Test:keyof inference lower priority than return inference

for #22376

* Update 'expected' comment in keyofInferenceLowerPriorityThanReturn

* Update comment in test too, not just baselines

* Fix typo

* Move tests
2018-03-19 17:59:06 -07:00
Nathan Shively-Sanders
ee8adaeac2 No error on unmatchable @param tags (#22510)
* No errr on unmatchable `@param` tags

Such as when the initializer is not a function, or when the function
mentions `arguments` in its body.

* Do not require dummy param for JS uses of arguments

1. JS functions that use `arguments` do not require a dummy parameter in
order to get a type for the synthetic `args` parameter if there is an
`@param` with a `...` type.
2.JS functions that use `arguments` and have an `@param` must have a
type that is a `...` type.

* Check for array type instead of syntactic `...`

* Address PR comments

* Update baselines
2018-03-14 11:06:25 -07:00
Nathan Shively-Sanders
bd94170b7f Brackets and postfix= in @param add undefined (#22514)
* Brackets and postfix= in `@param` add undefined

Previously they only added optionality.
Note that, unlike Typescript, when a parameter initializer is specified
in jsdoc, it does not remove undefined in the *body* of the function.
That's because TS will generate initialisation code, but JS won't, so
the author will have to manually write code to remove undefined from the
type.

```js
/** @param {number} [a=101] */
function f(a) {
  // a: number | undefined here
  if (!a) {
    a = 101
  }
  // a: number here
}
```

Note that we don't check that
1. the initializer value is actually assigned to the parameter.
2. the initializer's type matches the declared type of the parameter.

Pretty much we just parse it and leave it alone.

* Address PR comments
2018-03-13 15:57:55 -07:00
Sheetal Nandi
fa2b7ff6b3
Merge pull request #22421 from Microsoft/typesInTypeArguments
Allow types as well as values in possibly type argument location
2018-03-09 14:36:45 -08:00
Sheetal Nandi
ef64cde621
Merge pull request #22409 from Microsoft/symbolKind
Symbol kind needs to use location before falling back to flags
2018-03-09 13:59:38 -08:00
Mohamed Hegazy
c335c3803c
Fix #22133: Expose getOutliningSpans on the server protocol (#22400)
* Fix #22133: Expose getOutliningSpans on the server protocol

* Remove debugger statement from test
2018-03-09 08:50:47 -08:00
Andy
0f47c8a205
annotateWithTypeFromJSDoc: Do less special-casing for arrow functions (#22407)
* annotateWithTypeFromJSDoc: Do less special-casing for arrow functions

* Code review
2018-03-08 16:32:32 -08:00
Sheetal Nandi
e1a89e7011 Allow types as well as values in possibly type argument location
Fixes #22369
2018-03-08 16:06:26 -08:00
Andy
e48bcd60ba
Treat 'yield;' as 'yield undefined;' (#22297)
* Treat 'yield;' as 'yield undefined;'

* Use undefinedWideningType
2018-03-08 15:41:04 -08:00
Wesley Wigham
87d88e2ba3
Handle resolving and unknown symbols in getLiteralTypeFromPropertyName (#22406) 2018-03-08 13:35:55 -08:00
Sheetal Nandi
ea37c37e88 Symbol kind needs to use location before falling back to flags
Fixes #22366
2018-03-08 11:50:52 -08:00
Andy
a49e83ffa7
annotateWithTypeFromJSDoc: Use changes.insertTypeAnnotation instead of replaceNode (#22404) 2018-03-08 11:47:30 -08:00
Nathan Shively-Sanders
e4610e3418
Import types in JS with var x = require('./mod') (#22161) 2018-03-08 11:11:51 -08:00
Nathan Shively-Sanders
f8134d0b45 Merge branch 'master' into js-object-literal-assignments-as-declarations 2018-03-08 10:40:55 -08:00
Nathan Shively-Sanders
04ceb3d9bd Disallow JS/non-JS merge without crashing
Note that the error location is misleading because it's reported inside
the merge step for the js initializer.
2018-03-08 09:49:23 -08:00
Wesley Wigham
95862880fb
Filter symbol property names out of index signature assignability checks (#22398) 2018-03-08 09:30:25 -08:00
Wesley Wigham
45eaf42006
Use single replacer for string escaping (#22335) 2018-03-07 17:36:31 -08:00
Nathan Shively-Sanders
d86440f94f Merge branch 'master' into js-object-literal-assignments-as-declarations 2018-03-07 14:51:55 -08:00
Andy
1f7a5097fa
When every import is unused, error on the entire import declaration (#22386)
* When every import is unused, error on the entire import declaration

* Code review

* Store key in map value
2018-03-07 14:42:09 -08:00
Andy
e5804aefde
inferFromUsage: use ChangeTracker and typeToTypeNode (#22379)
* inferFromUsage: use ChangeTracker and typeToTypeNode

* Use typeToTypeNode with SymbolTracker

* Add comment
2018-03-07 14:40:50 -08:00
Sheetal Nandi
36b45e3f13
Merge pull request #22343 from Microsoft/codeFixActionNotUndefined
Create the action only if the text change creation is successful.
2018-03-06 12:31:04 -08:00
Mohamed Hegazy
b2dd610e92
Fix ignore message indentation (#22340)
* Update baselines for user tests

* Add explicit indentation

* Fix https://github.com/Microsoft/TypeScript/issues/21355: Format `// @ts-ignore` added by quick fix

* Extract check to a separate function

* Consolidate checking for valid insert location

* Code review comments

* Do not return makeChange
2018-03-06 12:19:19 -08:00
Sheetal Nandi
70944428a1 Create the action only if the text change creation is successful. …
Make change for the infer type from usage could return undefined even if type is present if the type cannot be named
Fixes #22184
2018-03-06 11:03:20 -08:00