Skip to content

Conversation

@gusty
Copy link
Contributor

@gusty gusty commented Dec 30, 2017

A few months ago I started suspecting that my reasoning behind #1650 was wrong.

Time proved it, I found many other breaking changes, some of them not that exotic as the one I found originally (see the one added as a test in this commit) and also caused some headaches with the mishandling of the new internal exception which btw I still find it from time to time, so it's still mishandled.

I think it's better to assume that I was wrong and rectify, in any case the speed up of this PR was very marginal (up to 2x in some cases whereas the other 3 PRs provided exponential speed up).

But now it's clear to me that when the resolution fails in that SolveMemberConstraint function, for whatever reason, we shouldn't abort in the case of unresolved overload because that will prevent in some cases to analyze further and re-run the resolution with more information which would lead to the right candidate selection.

The question remains open as to why can't we commit the trait solution before short-cutting the type equivalence if ty1 === ty2 then CompleteD else, my impression is that there's still some dark logic there which is not 100% correct, but now I'm sure this is not the answer.

@gusty gusty changed the title Revert #1650 and #fc4fdfa Revert #1650 (and #3366) due to Regressions Dec 30, 2017
@gusty gusty changed the title Revert #1650 (and #3366) due to Regressions Revert #1650 (and #3366) due to regressions Dec 30, 2017
@saul
Copy link
Contributor

saul commented Dec 31, 2017

Does this also fix #4063? If so can we add a test case for it?

@gusty
Copy link
Contributor Author

gusty commented Dec 31, 2017

No, unfortunately that issue seems to be unrelated to these changes.
We would need to find out at which commit it stopped working, but I suspect from 4f89b4c in which case simply reverting it shouldn't be an option, since it will be a regression of that feature.

This reversion is different, in the sense that there were no new features in that commit, only (a very marginal) speed-up.

@KevinRansom
Copy link
Contributor

Okay ... this looks good to me. @dsyme can you run your eyes over this. Otherwise, I will merge it tomorrow evening.

@KevinRansom KevinRansom merged commit f9893b6 into dotnet:master Jan 4, 2018
@dsyme
Copy link
Contributor

dsyme commented Jan 5, 2018

@gusty @KevinRansom The main thing I looked for was that this PR adds a test to capture the regression. Which it does. So tall is good, thanks for merging

forki pushed a commit to forki/visualfsharp that referenced this pull request Jan 20, 2018
* Add option to toggle unused declarations analyzer (dotnet#4074)

* Add option to toggle unused declarations analyzer

* Better name and handle registering code fixes.

This will ensure that if someone uses warnon:1182, we won't suggest
fixes if they've turned off the feature.

* Revert dotnet#1650 (and dotnet#3366) (dotnet#4173)

* Fix error logging in brace matching code (dotnet#4140)

* Remove error logger pushing code

* Update service.fs

* Fix dotnet#4200: Vsix: fix empty "New file" window for web projects (dotnet#4202)

* LOC CHECKIN | visualfsharp - master | 20180112 (dotnet#4194)

* Fixed FCS netcore tests (dotnet#4180)

* Remove ambiguous resolution error FS0332 (dotnet#4170)

* Add IsInteractive to parsing options for script load closures (dotnet#4169)

* Add IsInteractive to FSharpParsingOptions

* Add test

* Set serializable bit for all serializable types (dotnet#4211)

* Minor fix (dotnet#4195)

on string 58.

*  Symbols API: add Index to active pattern case, Name to pattern group (dotnet#4222)

* Symbols API: add Index to active pattern case, Name to pattern group

* Symbols API: add active pattern case use tests

* don't rebuild (dotnet#4230)

* Optimize in FCS

* Transport tcConfig

* Cleanup

* Replace more ILAsm in Exprs

* More ILAsm replacements

* update resource name

* Added some tests
forki added a commit to forki/visualfsharp that referenced this pull request Jan 31, 2018
@dsyme
Copy link
Contributor

dsyme commented Feb 13, 2018

@gusty We need to talk about this - this reversion itself caused a regression, see #4343.

@forki
Copy link
Contributor

forki commented Feb 13, 2018

that's what I thought, but I tried to rebase #4285 on before and after the PR. but maybe I did something wrong

dsyme added a commit to dsyme/fsharp that referenced this pull request Feb 13, 2018
@dsyme dsyme mentioned this pull request Feb 13, 2018
dsyme added a commit to dsyme/fsharp that referenced this pull request Feb 13, 2018
KevinRansom added a commit that referenced this pull request Feb 13, 2018
dsyme added a commit that referenced this pull request Feb 13, 2018
KevinRansom pushed a commit that referenced this pull request Feb 17, 2018
* Optimize in FCS

* Transport tcConfig

* Cleanup

* Replace more ILAsm in Exprs

* More ILAsm replacements

* update resource name

* Added some tests (#40)

* Add option to toggle unused declarations analyzer (#4074)

* Add option to toggle unused declarations analyzer

* Better name and handle registering code fixes.

This will ensure that if someone uses warnon:1182, we won't suggest
fixes if they've turned off the feature.

* Revert #1650 (and #3366) (#4173)

* Fix error logging in brace matching code (#4140)

* Remove error logger pushing code

* Update service.fs

* Fix #4200: Vsix: fix empty "New file" window for web projects (#4202)

* LOC CHECKIN | visualfsharp - master | 20180112 (#4194)

* Fixed FCS netcore tests (#4180)

* Remove ambiguous resolution error FS0332 (#4170)

* Add IsInteractive to parsing options for script load closures (#4169)

* Add IsInteractive to FSharpParsingOptions

* Add test

* Set serializable bit for all serializable types (#4211)

* Minor fix (#4195)

on string 58.

*  Symbols API: add Index to active pattern case, Name to pattern group (#4222)

* Symbols API: add Index to active pattern case, Name to pattern group

* Symbols API: add active pattern case use tests

* don't rebuild (#4230)

* Optimize in FCS

* Transport tcConfig

* Cleanup

* Replace more ILAsm in Exprs

* More ILAsm replacements

* update resource name

* Added some tests

* test conditions update

* test update

* test condition update

* test update

* review update

* added checked operators

* fixed dual conversions

* review fixes

* more targeted replacements

* adapt to latest

* added more tests

* added more tests

* review fixes

* fixed warnings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants