Commit graph

25014 commits

Author SHA1 Message Date
Wesley Wigham cd37e41d3d
Make finer-grained errors get reported on function arguments (#26784) 2018-08-30 15:45:06 -07:00
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
Ryan Cavanaugh 2deb3189de
Merge pull request #26788 from ajafff/remove-useless-condition
remove useless condition
2018-08-30 13:36:11 -07:00
Nathan Shively-Sanders d3f96015f1
Fix namespace expando merge (#26690)
* Allow JSContainers to merge with namespaces

Expando functions marked with JSContainer previously failed to merge
with namespaces. This change adds JSContainer to ValueModuleExcludes,
allowing this kind of merge.

* Improve symbol flags to fix namespace/expando merging

Calls to bindPropertyAssignment now provide which special assignment
kind they originated from. This allows better symbol flags to be set:

1. Property assignments get the FunctionScopedVariable flag, since they are
equivalent to a `namespace` exporting a `var`.
2. Prototype property assignments get the Method flag if the initialiser
is functionlike, and Property otherwise.
3. Prototype assignments get the flag Property.

(3) is still not entirely correct (it's missing the Prototype flag),
but is what existed previously. I'll try adding the Prototype flag to
see whether it changes any baselines.

* Add cross-file merge test

* Update missed baselines

* Namespace declarations are primary for merging purposes

Also, property-assignments go back to being property declarations, not
function-scoped variable declarations

* Revert unneeded changes

* Revert unneeded changes (in a codefix this time)

* Put JSContainer on all assignment declarations

This allows most of the new special-case merge code to go away. It now
uses the JSContainer special-case code, which already exists.

* Missed comment

* Fix extra newline lint
2018-08-30 13:18:50 -07:00
Anders Hejlsberg a35c49641d Accept new baselines 2018-08-30 13:13:42 -07:00
Klaus Meinhardt b2850ee467 remove useless condition 2018-08-30 22:13:39 +02:00
Anders Hejlsberg a2928b8fd3 Optimize relationship checks for arrays and tuples 2018-08-30 13:13:21 -07:00
Anders Hejlsberg 1fb6f11a88 Accept new baselines 2018-08-30 12:46:40 -07:00
Anders Hejlsberg 316739e1c0 Exclude generic types from weak object checks 2018-08-30 12:46:29 -07:00
Sheetal Nandi 496b18ef5e Report file change detected only once when save takes place multiple times before timeout 2018-08-30 11:38:34 -07:00
Sheetal Nandi 828279b611
Merge pull request #26777 from Microsoft/recursiveTypeSignatureHelp
Add test for signature help with recursive type
2018-08-30 10:41:00 -07:00
Sheetal Nandi bf6d265b97 Add test for signaure help with recursive type
Test for #26155
2018-08-30 10:12:04 -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 a0d61a58bd
LEGO: Merge pull request 26765
LEGO: Merge pull request 26765
2018-08-29 21:11:05 -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
Sheetal Nandi 38a85cfbf4 Add test to verify #26669 where declaration output is incorrect when declaration flag is not set explicitly in options 2018-08-29 16:14:55 -07:00
Benjamin Lichtman f4765a6ea3 Fix error introduced by rebase 2018-08-29 15:56:22 -07:00
Benjamin Lichtman bb892d951d Use non-diagnostics-producing typechecker to get type 2018-08-29 15:54:19 -07:00
Benjamin Lichtman 97e539339d Add comment explaining special casing 2018-08-29 15:53:34 -07:00
Benjamin Lichtman 3ad6a66e69 Add tests and validate diagnostic spans 2018-08-29 15:53:05 -07:00
Benjamin Lichtman 158f0b0c0b Allow codefix to apply to function expression in variable declaration 2018-08-29 15:52:35 -07:00
Benjamin Lichtman cc4e1f833e Look for correct description 2018-08-29 15:50:34 -07:00
Benjamin Lichtman d21c078363 Test for existence of diagnostic when running tests 2018-08-29 15:49:48 -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
Sheetal Nandi 02e1a32c1c
Merge pull request #26742 from Microsoft/addShortWatch
Fixes issue when --build --watch queue becomes incorrect because it isnt reset correctly
2018-08-29 14:43:22 -07:00
Anders Hejlsberg b17aaf0edf Accept new baselines 2018-08-29 14:15:09 -07:00
Anders Hejlsberg c48c3632bd Update tests 2018-08-29 14:02:15 -07:00
Anders Hejlsberg 529ed2d59d Stop inferring unions for disjoint callback parameter inferences 2018-08-29 13:42:20 -07:00
Ron Buckton 838110a4f8
Merge pull request #26741 from Microsoft/gulpWatch
Fix overlapping test runs in 'gulp watch'
2018-08-29 13:24:12 -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
Ron Buckton 111300ccd5 Fix overlapping test runs in 'gulp watch' 2018-08-29 12:57:05 -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 4affe1f891
LEGO: Merge pull request 26736
LEGO: Merge pull request 26736
2018-08-29 09:10:58 -07:00
csigs 983b0b4f95 LEGO: check in for master to temporary branch. 2018-08-29 16:10:32 +00:00