Commit Graph

26317 Commits

Author SHA1 Message Date
Nathan Shively-Sanders 25fb5419c0 Support the JSDoc @enum tag (#26021)
* Support the JSDoc @enum tag

`@enum` is used on a variable declaration with an object literal
initializer. It does a number of things:

1. The object literal has a closed set of properties, unlike other
object literals in Javascript.
2. The variable's name is resolvable as a type, but it just has the
declared type of the enum tag.
3. Each property's type must be assignable to the enum tag's declared type,
which can be any type.

For example,

```js
/** @enum {string} */
const Target = {
  START: "START",
  END: "END",
  MISTAKE: 0, // error 'number' is not assignable to 'string' -- see (3)
}

Target.THIS_IS_AN_ERROR; // See (1)
/** @type {Target} See (2) */
var target = Target.START;
```

* Fix lint, add new test case, update API baselines
2018-07-28 07:53:08 -07:00
Sheetal Nandi a26aff30e1 Merge pull request #25835 from Microsoft/getCurrentProgramOrUndefined
Reflect getCurrentProgram as Program|undefined in the ResolutionHostCache
2018-07-27 23:06:34 -07:00
Andy 5e1872f0c0 getDocCommentTemplateAtPosition: Return result if in empty comment (#26026) 2018-07-27 17:34:16 -07:00
Andy 644ceab02f Document ObjectLiteralElementLike (#26024) 2018-07-27 17:33:42 -07:00
Andy 57d425169a createJavaScriptSignatureHelpItems: Use array helpers and simplify (#26025) 2018-07-27 17:33:17 -07:00
Sheetal Nandi ab1b899cea Use isArray instead of isProjectsArray 2018-07-27 12:50:32 -07:00
Sheetal Nandi 399f497a32 Unify getProjects for compileOnSave and others like (navigation etc) 2018-07-27 12:47:47 -07:00
Klaus Meinhardt d4f6b9b0a6 allow BindingPattern in FunctionRestParameter
also add downlevel emit for the destructured rest param

Part of #6275
2018-07-27 21:08:22 +02:00
Andy d40d54984e Support deleting all unused type parameters in a list, and deleting @template tag (#25748)
* Support deleting all unused type parameters in a list, and deleting @template tag

* Support type parameter in 'infer'
2018-07-27 11:55:31 -07:00
Sheetal Nandi 94033f212d If project name is specified in compile on save, do not update all projects to just use that project 2018-07-27 11:21:14 -07:00
Klaus Meinhardt 2ea3123dbd allow BindingPattern in BindingRestElement
Part of #6275
2018-07-27 15:58:02 +02:00
Andy 3bfe91cdd8 navigationBar: Fix bug for shorthand ambient module (#25992) 2018-07-26 17:27:12 -07:00
Andy af3f737451 Fix bug for isValidTrigger when contextToken is undefined (#25993) 2018-07-26 17:26:58 -07:00
Andy 0e5af11625 Fix bugs for go-to-definition on mapped type method (#25991) 2018-07-26 17:26:41 -07:00
Andy 998c911c49 Break createSignatureHelpItems into functions (#25948) 2018-07-26 17:26:29 -07:00
Andy 0227997fa5 Use import().T for import completions/fixes of pure types in JS files (#25852)
* Use `import().T` for import completions/fixes of pure types in JS files

* Don't call tryUseExistingNamespaceImport if position undefined
2018-07-26 16:16:57 -07:00
Wesley Wigham d590d5bd0c Remove extraneous const, fixing #25714 (#25982) 2018-07-26 14:43:00 -07:00
Daniel Rosenwasser 6b60babeaf Merge pull request #25978 from Microsoft/capturedGlobalThis
Better error message for captured global 'this' in noImplicitThis
2018-07-26 13:20:05 -07:00
Wesley Wigham d17efe69d1 Fix #25954 - Always retain export modifier if default modifier is present (#25974)
* Fix #25954 - Always retain export modifier if default modifier is present

* Also fix an issue with scope markers in ambient modules not affecting the modifiers required
2018-07-26 12:39:03 -07:00
Andy 673ae746da Simplify and inline getPropertySymbolsFromType (#25940)
* Simplify and inline getPropertySymbolsFromType

* Combine lambdas
2018-07-26 11:52:22 -07:00
Daniel Rosenwasser 64d01d8e8f Provide a better error on arrow functions that capture the global 'this'. 2018-07-26 11:51:04 -07:00
Mohamed Hegazy 3057be3a0b Merge pull request #25966 from ajafff/shorthandPropertyAssignment-initializer-symbol
correctly resolve Symbol of destructuring shorthand intializer
2018-07-26 09:32:39 -07:00
Andy 5e94cf626b Expand span of @typedef with properties to include the @typedef tag (#25950) 2018-07-26 08:56:24 -07:00
Klaus Meinhardt b65bbfd42d correctly resolve Symbol of destructuring shorthand intializer
Fixes: #21046
2018-07-26 14:37:52 +02:00
Klaus Meinhardt b057bf9f01 expose escapeLeadingUnderscores
Fixes: #25343
2018-07-26 14:20:48 +02:00
Klaus Meinhardt 95f061ea0a minor cleanup in factory.ts
* remove deprecated signatures
* deprecate some legacy signature
* remove 2 useless conditions
2018-07-26 13:19:45 +02:00
王文璐 c531065fd0 Merge branch 'master' into definite-assignment-assertion-improve 2018-07-26 18:06:47 +08:00
Sheetal Nandi d920efe3f9 Merge branch 'master' into resolveJsonModuleError 2018-07-25 17:32:22 -07:00
Andy f12e9a8389 Minor refactor in goToTypeDefinition (#25951) 2018-07-25 17:10:06 -07:00
Andy 1e8a5bf2f1 signatureHelp: Factor out 'isSyntacticOwner' function (#25518) 2018-07-25 17:01:35 -07:00
Sheetal Nandi dfb5cbd373 When json module is not found, include enabling --resolveJsonModule might help.
Fixes #25722
2018-07-25 16:20:37 -07:00
Matt McCutchen da64479a64 Improve the error message when asserting to a type that is not
comparable to the original.

Also improve the error message for implicit conversion of a symbol to a
string in a template literal, which previously shared the error message
with type assertions.

Fixes #25539.  Addresses #25870.
2018-07-25 19:13:10 -04:00
Mohamed Hegazy 7799ae18b4 Port generated lib files 2018-07-25 15:32:42 -07:00
Anders Hejlsberg 7473772291 Merge pull request #25938 from Microsoft/fixRestTupleArityCheck
Fix rest tuple arity check
2018-07-25 14:40:57 -07:00
Anders Hejlsberg 5288c37010 Rest parameter with fixed size tuple should be same as regular parameters 2018-07-25 12:42:37 -07:00
Andy 7546fd03c6 Simplify getContainers (#23323) 2018-07-25 12:30:13 -07:00
Andy bd600cfd50 Fix duplicate "this" completion (#25900) 2018-07-25 12:29:28 -07:00
Andy d60f4988a6 In getPropertySymbolsFromContextualType, use union discriminant to filter types (#25914) 2018-07-25 11:53:20 -07:00
Nathan Shively-Sanders 9658b476c2 Fix inferFromUsage on index signatures (#25934)
* Fix inferFromUsage on index signatures

1. Check the argumentExpression to determine the index signature type.
Previously, the code mistakenly checked the type of the element access
itself, which never returned a good type.
2. If inference for the index signature type fails, substitute anyType.
Previously, the code would create a bad index signature with an
undefined type.
3. Add tests. Previously, there were no tests.

* Fixing (1) means that number index signatures are now created.
Previously, only string index signatures would be created.
* Fixing (2) means that index signatures will be inferred from single
usage like `return a[0]`. Previously, the refactoring would fail,
perhaps because of a check when stringifying the index signature (I
haven't tracked down why.)

* Update fourslash test with improved inference
2018-07-25 10:51:11 -07:00
Anders Hejlsberg 7b4d13c95c Merge pull request #25859 from Microsoft/optimizePrimitiveIntersections
Optimize creation of intersections of union types
2018-07-25 10:28:43 -07:00
Anders Hejlsberg f9681e2327 Update comment 2018-07-25 07:10:44 -07:00
Anders Hejlsberg dd4fd8c60e Merge pull request #25913 from Microsoft/fixCircularConstraintCheck
Fix circular constraint check
2018-07-25 06:46:51 -07:00
Anders Hejlsberg ff6059abf6 Address CR feedback 2018-07-24 17:58:03 -07:00
Andy e4d4b0ae4b Handle PropertyAssignment in getCommentOwnerInfo (#25911) 2018-07-24 17:43:46 -07:00
Mohamed Hegazy fd2eb4918d Merge pull request #25604 from mprobst/fix-exported-var-comments
Retain synthetic comments on exports.
2018-07-24 17:41:44 -07:00
Wesley Wigham 7d44014c56 Fix typos 2018-07-24 16:37:07 -07:00
Wesley Wigham 23eb591e01 Lookup files by resolved Path and not by fileName in sourcemapDecoder when querying program (#25908)
* Check if the file returned by the program actually refers to the same file as we intend

* Simplify
2018-07-24 15:44:22 -07:00
Anders Hejlsberg 1fd1de9625 More simplification + consistent use of getConstraintOfTypeParameter 2018-07-24 15:27:39 -07:00
Wesley Wigham f6d3ac9b5d Fix #25820 - handle redirected files when comparing paths (#25902)
* Fix #25820 - handle redirected files when comparing paths

* Update test to do case check
2018-07-24 15:24:52 -07:00
Mohamed Hegazy 870c55c7a5 Merge pull request #25863 from mattmccutchen/issue-9744
Report a semantic error for an arrow function with a "this" parameter.
2018-07-24 15:08:26 -07:00