Inspired by this comment:
This pitch does not introduce any new operators, but proposes a new compiler diagnostic.
Motivation
The following is valid syntax. It will check if the value exists, and if it does, assign a new value to it.
var x: Int? = nil
x? = 1 // Will be parsed as 'x' '?' '=' '1'
print(x) // nil
x = 2
x? = 3
print(x) // 3
However, it's also valid to omit all whitespace, which will cause the same thing to happen.
x?=1 // Will be parsed as 'x' '?' '=' '1'
Since it's possible to make a custom infix operator named ?=, it is surprising that the custom operator is not called in this case.
Proposal
Omitting whitespace between two operators should be disallowed.
x?=1 // Error: Operators must be separated with whitespace
A fix can be proposed, that inserts a space between the operators:
x? = 1 // OK
Existing operators will still work as before:
x ?= 1 // Currently parsed as 'x' '?=' '1', and is OK if this infix operator exists
Note that this diagnostic does not change behavior if a custom operator exists, and will not allow x?=1 in any case.
Currently, Swift already enforces consistent whitespace between operators, and this new error is similar.
x= 1 // Error: '=' must have consistent whitespace on both sides
x = 1 // OK
x=1 // OK