https://d.puremagic.com/issues/show_bug.cgi?id=10926
--- Comment #4 from yebblies <[email protected]> 2013-11-13 05:14:59 EST --- (In reply to comment #3) > (In reply to comment #2) > > No rejects-valid here, it simply prints the wrong expression. > > > > https://github.com/D-Programming-Language/dmd/pull/2750 > > Please help me understand. This is a reduced test code: > > > void main() { > const(int)[] a; > int[] c; > (true ? a : c) ~= 20; > } > > > Before this fix it gave: > temp.d(4): Error: a is not an lvalue > > Now it gives: > temp.d(4): Error: cast(const(int)[])c is not an lvalue > > How is the error message improved? c is a fully mutable array. > > Why isn't this output a rejects-valid still? Both a and c can be appended. The > common type between a and c should be const(int)[], that is appendable. > > (If I receive no good answer I'll reopen this issue later.) c can be appended to, but cast(const(int)[])c cannot, because it is an rvalue. Would this make any sense? (cast(const(int)[])c) ~= 20; -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
