I’d like to ask why the decision to not allow stared expressions for keys/values of mappings has been made.
{*k: v for k, v in items}
This syntax might be useful in the future, e.g. for Type Mappings. As we can see in the stubs, TypeVarTuples themselves are not hashable, but Unpack operators are (Unpacking returns a _UnpackAlias, a subclass of the hashable _GenericAlias). Now that would mean some code
from typing import TypeVarTuple
TV1 = TypeVarTuple("TV1")
TV2 = TypeVarTuple("TV2")
Sub = {
int: TV1,
float: TV2
}
Mapping = {*v: k for k, v in Sub} # a: b, c: d -> b: a, d: c
would not work, and raise the given errors. Now reversing key and value for some mapping could be useful, for some type Mapping situations, should they ever be added.