New GitHub issue #119041 from gresm:<br>

<hr>

<pre>
# Bug report

### Bug description:

```python
def mutable(tp: type):
 return tp.__dict__ == type("",(),{"__eq__":lambda s,o:o})()


mutable(tuple)["hi"] = "Hello World!"

print(().hi)  # Outputs: "Hello World!"
```
Or
```python
def mt(dct):
    return dct == type("",(),{"__eq__":lambda s,o:o})()


mapping = type(tuple.__dict__)
safe = mapping({"flag": True})

print(repr(safe)) # Outputs: "mappingproxy({'flag': True})"

mt(safe)["flag"] = False

print(repr(safe))  # Outputs: "mappingproxy({'flag': False})"
```
Two things to note:
1) Order matter, so ``type("",(),{"__eq__":lambda s,o:o})() == dct`` won't work.
2) I've found legitimate use of this bug: [this](https://github.com/chilaxan/fishhook/blob/7433553fe47135d784a89b517537f663aebe8e18/fishhook/fishhook.py#L94-L100) and it seems like the author of this package have known about this for [quite a while](https://github.com/chilaxan/fishhook/blob/4cacd31e67cafb1e7d00ee476bfae8fbd46048df/stitch/__init__.py#L76).

I don't know if I even want this to be patched, but I want to get it at least somewhat documented.


### CPython versions tested on:

3.10, 3.12

### Operating systems tested on:

_No response_
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/119041">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>