jw
05/20/2019, 7:07 PMArray.copyOf
returns an array which retains the variance. I.e., Array<out String>
stays as out String
despite me taking a copy to modify its contents. Right now I'm just doing an unsafe cast, but it feels unfortunate (even more than how unfortunate it is to already be using arrays 😢 )ilya.gorbunov
05/21/2019, 2:11 AMcopyOf
behaves on JVM: it preserves the actual element type of the original array in the new array.
So if it was an array of some StringSubtype
the copy remains an array of the same subtype and we can't treat it as an invariant array of String
.