Commit Graph

18270 Commits

Author SHA1 Message Date
Sam Lanning 2c41d8b44e Fix equalOwnProperties
equalOwnProperties would incorrectly report two map-like objects as equal in
the case where a property defined in `left` was not defined in `right` and
whose value was considered "equal" to undefined by the equalityComparer.

This bug was found by an alert on LGTM.com
2018-08-30 14:08:24 -07:00
Sam Lanning 65fa0128bb Add test for ts.equalOwnProperties 2018-08-30 14:08:20 -07:00
Tim Schaub 20a2b0cade Ignore newline and asterisk when parsing JSDoc typedef (#26775) 2018-08-30 10:01:33 -07:00
Wenlu Wang 038f665171 fix lookup regression again (#26762)
* fix lookup regression again

* add test case
2018-08-30 08:48:49 -07:00
Nathan Shively-Sanders c327ab40bc Make SymbolFlags.ObjectLiteral a Value (#26752)
Previously it was a Type

We couldn't think of a way to observe this change since object literals
don't merge with anything. Ideas?
2018-08-30 08:39:39 -07:00
Sheetal Nandi d5b7edba8a Merge pull request #26751 from Microsoft/declarationEmitWithComposite
Correctly mark visibile nodes when declaration isnt explicitly turned on but composite is true
2018-08-29 22:55:01 -07:00
csigs d604199602 LEGO: check in for master to temporary branch. 2018-08-30 04:10:39 +00:00
Andy d37caf1c0d Remove unnecessary getContainingClass calls (#26753) 2018-08-29 17:43:22 -07:00
Andy cea49dfb0d Completion for tuple index doesn't need to include quotes (#26750) 2018-08-29 16:38:42 -07:00
Andy f78dc2ad11 importFixes: Only provide a fix using the best module specifier for a given module (#26738) 2018-08-29 16:18:56 -07:00
Sheetal Nandi 262fa3ac31 Correctly mark visibile nodes when declaration isnt explicitly turned on but composite is true
Fixes #26669
2018-08-29 16:17:24 -07:00
Anders Hejlsberg a28791565d Merge pull request #26746 from Microsoft/noUnionInferences
Don't infer unions for disjoint callback parameter candidates
2018-08-29 15:45:43 -07:00
Nathan Shively-Sanders 29dbabe2e1 In JS, fix contextual type of this assignments (#26743)
in object literal methods inside an object literal with a type
annotation.

Note that this does not change:

1. The type of `this` in object literal methods.
2. The fact that this-property assignments are still declarations. They
just don't block contextual typing like most declarations do.

This change is a bit expensive. It first calls getThisContainer, which
walks the tree upward. Then it calls checkThisExpression, which will
usually call getContextualType on the object literal method. If the new
code then returns true, it will proceed to redo much of that work.

Calling checkThisExpression should not cause incorrect circularity
failures; we only have to inspect the shape of the object literal and
not the types of its properties to determine its type.
2018-08-29 15:06:38 -07:00
Andy 7b4f864b49 moduleSpecifiers: Simpler criteria for preferring relative path vs baseUrl (#25803)
* moduleSpecifiers: Simpler criteria for preferring relative path vs baseUrl

* Don't unconditonally use a path mapping
2018-08-29 15:06:26 -07:00
Anders Hejlsberg 529ed2d59d Stop inferring unions for disjoint callback parameter inferences 2018-08-29 13:42:20 -07:00
Sheetal Nandi 90abaa1c45 Reset the build queue correctly
Fixes issue reported in #26545#issuecomment-416961260
2018-08-29 13:10:55 -07:00
Sheetal Nandi d6ff1a7241 Move parsing of build options to commandLineParsing so it can be tested and it lines with other commandline parsing 2018-08-29 12:52:27 -07:00
Sheetal Nandi 068840d471 Add shortname for watch option 2018-08-29 11:58:38 -07:00
Anders Hejlsberg d066e1e9e3 Merge pull request #26676 from Microsoft/complexRestParameterTypes
Improve checking of complex rest parameter types
2018-08-29 11:39:04 -07:00
Andy 02630273a2 codeFixInferFromUsage: Assume that using x[0] means that x is an array (#26739)
* codeFixInferFromUsage: Assume that using `x[0]` means that `x` is an array

* Remove unnecessary '||' with non-falsy LHS

If only there were some kind of type-checker for JavaScript that could detect this sort of thing
2018-08-29 11:37:31 -07:00
Andrew Casey f7e45c500f Merge pull request #26650 from amcasey/LogPid
Substitute process ID for "PID" in log file names
2018-08-29 11:19:13 -07:00
Andy 0feeb48783 Make generator function name a completion list blocker (#26640)
* Make generator function name a completion list blocker

* Improvements for class/object members

* Separate KeywordCompletionFilter.None and .All
2018-08-29 10:53:32 -07:00
Sheetal Nandi 9100047f84 Merge pull request #26723 from Microsoft/buildCleanSourcemaps
Add js source maps to list of outputs when doing --build
2018-08-29 10:21:25 -07:00
csigs 983b0b4f95 LEGO: check in for master to temporary branch. 2018-08-29 16:10:32 +00:00
Anders Hejlsberg a2d2f5aee6 Merge branch 'master' into complexRestParameterTypes 2018-08-29 07:51:07 -07:00
Wenlu Wang f67d7e01cf add test case and fix regression (#26726) 2018-08-29 06:58:55 -07:00
Anders Hejlsberg 9f4ae5f5ea Fix typo 2018-08-29 06:57:21 -07:00
Nathan Shively-Sanders 30f611b055 Add survey event (#26455)
* Start adding survey event

* Add surveyReady event

* Remove old notes

* Move event, simplify type, add test

1. Move the survey event to sendProjectTelemetry so that it happens on
open instead of on editing tsconfig.
2. Remove URL from the survey type; VS code should control this
information.
3. Add test based on large files event test. I'm not sure it's in the
right place, though.

* Fix tests and update API baseline

* Split survey sending from telemetry

Based on tests requested during review.

* Add additional assertion
2018-08-28 19:57:39 -07:00
Andy cff04e6050 Ensure JsonSourceFile has all the non-optional properties of SourceFile (#26162)
* Ensure JsonSourceFile has all the non-optional properties of SourceFile

* Set properties in parseSourceFile
2018-08-28 16:43:14 -07:00
Sheetal Nandi 723e64ba3b Add js source maps to list of outputs when doing --build
Fixes #26619
2018-08-28 16:17:10 -07:00
Sheetal Nandi 03bb5d170e Use protocol.UserPreferences in server to store UserPreferences 2018-08-28 15:53:00 -07:00
Sheetal Nandi 52fef42baa Merge branch 'master' into lazyConfiguredProjectsFromExternalProject 2018-08-28 14:49:00 -07:00
Sheetal Nandi fc90b8f98b lazyConfiguredProjectsFromExternalProject as userpreference instead of command line option 2018-08-28 14:41:22 -07:00
Andy 9106fdbc47 Support signature help for type parameters of a type (#26702) 2018-08-28 14:21:09 -07:00
Andy 552bd1c8a2 Support import fix/completions for export = (#25708) 2018-08-28 13:04:11 -07:00
Andy b94061c587 getEditsForFileRename: Avoid changing import specifier ending (#26177)
* getEditsForFileRename: Avoid changing import specifier ending

* Support .json and .jsx extensions

* Restore typeRoots tests

* Fix json test

* When --jsx preserve is set, import ".tsx" file with ".jsx" extension

* Support ending preference in UserPreferences
2018-08-28 13:03:24 -07:00
Sheetal Nandi 96e61407c5 Add option --lazyConfiguredProjectsFromExternalProject to enable lazy load of configured projects referenced by external project
Fixes #26696
2018-08-28 12:49:09 -07:00
Andy 3931b72118 noUnusedLocals: Destructuring assignment is a write (#26365)
* noUnusedLocals: Destructuring assignment is a write

* Code review

* Clarify test
2018-08-28 11:43:45 -07:00
Sheetal Nandi 530a530ac0 Merge pull request #26590 from Microsoft/buildRefactoring
Refactor ts build and report watch status when doing --build --watch
2018-08-28 11:43:35 -07:00
Ryan Cavanaugh 6c2e851689 Merge pull request #26317 from Kingwl/parameter-initializer-lookup-fix
add special check for parameter initializer lookup if targeting es2015+
2018-08-28 11:33:58 -07:00
Sheetal Nandi 868cf3e6de renames per PR feedback 2018-08-28 11:21:35 -07:00
Andy b183418124 Fix bug: Don't go to *any* constructor signature for jsx element (#26715) 2018-08-28 11:06:14 -07:00
Andy 1b1ca9ebf0 Memoize collecting set of all imported packages (#26263) 2018-08-28 09:41:46 -07:00
csigs fb0cd6c0e0 LEGO: check in for master to temporary branch. 2018-08-28 16:10:36 +00:00
王文璐 8869f39c25 accept more case 2018-08-28 16:41:26 +08:00
王文璐 d758075597 add special check for parameter initializer lookup if targeting es2015+ 2018-08-28 15:02:28 +08:00
Anders Hejlsberg ac0d5da631 Merge pull request #26679 from Microsoft/improveGetTypeOfExpression
Improve control flow analysis of type assertions
2018-08-27 18:30:16 -07:00
Anders Hejlsberg bd40583beb Merge pull request #26698 from Microsoft/indexedAccessConstraints
Improve indexed access type relations
2018-08-27 18:14:43 -07:00
Andy 7223945666 Use array helper in computeCommonSourceDirectory and remove two unnecessary tests (#26416) 2018-08-27 17:03:30 -07:00
Nathan Shively-Sanders a2e4a282e7 Get [type] parameter types from @type tag (#26694)
* Get [type] parameter types from @type tag

Previously only the return type was used in cases like this:

```js
/** @type {<T>(param?: T) => T | undefined} */
function g(param) {
  return param;
}
```

Now the type parameters from the type tag are used, and the compiler
gets the type of the parameter by using the position in the signature of
the type tag.

Fixes #25618

* Fix split ifs according to PR comments
2018-08-27 16:52:35 -07:00