New GitHub issue #101478 from akeeman:<br>
<hr>
<pre>
<!--
If you're new to Python and you're not sure whether what you're experiencing is a bug, the CPython issue tracker is not
the right place to seek help. Consider the following options instead:
- reading the Python tutorial: https://docs.python.org/3/tutorial/
- posting in the "Users" category on discuss.python.org: https://discuss.python.org/c/users/7
- emailing the Python-list mailing list: https://mail.python.org/mailman/listinfo/python-list
- searching our issue tracker (https://github.com/python/cpython/issues) to see if
your problem has already been reported
-->
# Bug report
Updating a set with an instance of keys_view using the `|=` operator results in a new object, instead of an updated one.
This is unlike updating a set with an other set or a frozenset using the same operator, or using the update method. Given the [docs](https://docs.python.org/3.8/library/stdtypes.html#frozenset.update) I expect all cases to behave the same, and expect the following snippet to not fail. Yet it fails.
```python
x = set()
y = x
y |= {13: 37}.keys()
assert x is y
```
# Your environment
- CPython versions tested on: 3.8.10, 3.8.16, 3.9.x, 3.10.x
- Operating system and architecture: windows, linux
</pre>
<hr>
<a href="https://github.com/python/cpython/issues/101478">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>