null-coalescing operator is no longer evaluating the LHS twice
In some cases, we are still required to qualify S, such as when S is used in an argument:
// this works
map: func <S> (function: Func(T) -> S) -> S
// error Not enough info to resolve return type S of function call
fold: func <S> (function: Func(T, S) -> S, initial: S) -> S
// this works
fold: func <S> (S: Class, function: Func(T, S) -> S, initial: S) -> S
Notable changes:
In some cases, we are still required to qualify
S
, such as whenS
is used in an argument: