Clarification on migration to value types and boxed vs unboxed representations
John Rose
john.r.rose at oracle.com
Tue Jan 6 03:43:28 UTC 2015
On Jan 5, 2015, at 6:02 PM, Vitaly Davidovich <vitalyd at gmail.com> wrote:
> Also, you can just as well get lost writes with immutable objects if you forget to reassign the variable with the result of a mutating operation.
The risks are in some sense complementary. But IMO this one, unlike the aliasing problem, is easy to check for statically:
class ImmutableComplex { ...
@Preserve
ImmutableComplex add(ImmutableComplex that) {
return new ImmutableComplex(this.re + that.re, this.im + that.im);
}
}
class String { ...
@Preserve
String concat(String str) { ... }
}
void dufus(String s) {
s.concat(" more!"); // javac says Warning: discarding a preserved value
return s;
}
— John
More information about the valhalla-dev
mailing list