So here are my personal parts of the language I'd happily accept breaking changes in:
-
where
clauses (in extensions) in regards to type inference. There are type inference rules in the language which makes thewhere
clause partly unintuitive to use as it yields somewhat unexpected results. -
The release / removal of of the
.Type
and.Protocol
. A nestedKind
type does not always fit. A general rebranding of metatypes (possibly with ameta
keyword, likeany
andsome
) would be very welcome. -
Label rules alignment across the entire language including subscripts and operator functions.
-
A shift from
public protocol
toopen protocol
, whereopen protocol
would mean that the user of a framework can conform their types to that protocol, while he/she can only use or view apublic protocol
, but not conform any types to it. This is also known as "closed protocol". -
(possibly) A breaking change to key-paths where the types would also be able to store data for effects such as error types or possibly even the async-ness (if that's even a term).