fix(core): remove signal equality check short-circuit#53446
Closed
pkozlowski-opensource wants to merge 1 commit intoangular:mainfrom
Closed
fix(core): remove signal equality check short-circuit#53446pkozlowski-opensource wants to merge 1 commit intoangular:mainfrom
pkozlowski-opensource wants to merge 1 commit intoangular:mainfrom
Conversation
The PR angular#52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR angular#52532 added a warning when the short-circuit was taking priority over the equality function. Still, the presence of the short-circuit prevents people from mutating objects in place and based on angular#52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue. We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated throug the reactivity graph (due to the deault equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic. Fixes angular#52735
alxhub
approved these changes
Dec 8, 2023
Member
|
This PR was merged into the repository by commit 42f4f70. |
alxhub
pushed a commit
that referenced
this pull request
Dec 8, 2023
The PR #52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR #52532 added a warning when the short-circuit was taking priority over the equality function. Still, the presence of the short-circuit prevents people from mutating objects in place and based on #52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue. We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated throug the reactivity graph (due to the deault equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic. Fixes #52735 PR Close #53446
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
ChellappanRajan
pushed a commit
to ChellappanRajan/angular
that referenced
this pull request
Jan 23, 2024
The PR angular#52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR angular#52532 added a warning when the short-circuit was taking priority over the equality function. Still, the presence of the short-circuit prevents people from mutating objects in place and based on angular#52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue. We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated throug the reactivity graph (due to the deault equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic. Fixes angular#52735 PR Close angular#53446
rlmestre
pushed a commit
to rlmestre/angular
that referenced
this pull request
Jan 26, 2024
The PR angular#52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR angular#52532 added a warning when the short-circuit was taking priority over the equality function. Still, the presence of the short-circuit prevents people from mutating objects in place and based on angular#52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue. We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated throug the reactivity graph (due to the deault equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic. Fixes angular#52735 PR Close angular#53446
amilamen
pushed a commit
to amilamen/angular
that referenced
this pull request
Jan 26, 2024
The PR angular#52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR angular#52532 added a warning when the short-circuit was taking priority over the equality function. Still, the presence of the short-circuit prevents people from mutating objects in place and based on angular#52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue. We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated throug the reactivity graph (due to the deault equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic. Fixes angular#52735 PR Close angular#53446
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The PR #52465 introduced short-circuit for the signal equality invocation - with the reasoning that the equality function should never return false for arguments with the same references. In practice it turned out that it is rather surprising and the subsequent PR #52532 added a warning when the short-circuit was taking priority over the equality function.
Still, the presence of the short-circuit prevents people from mutating objects in place and based on #52735 this is a common and desired scenario. This change removes the short-circuit altogether and thus fixes the mentioned issue.
We do recognize that removing short-circuit exposes developers to the potentially surprising logic where mutated in-place change won't be propagated through the reactivity graph (due to the default equality function). But we assume that this might be less surprising / more desirable as compared to the short-circuit logic.
Fixes #52735