[Issue 7444] Require [] for array copies too
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Feb 9 06:31:36 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7444
--- Comment #3 from Kenji Hara <k.hara.pg at gmail.com> 2012-02-09 06:31:34 PST ---
I'd like to provide an exhaustive test that should compile after fixing the
enhancement suggested by me and timon.
----
// X: Changed accepts-invalid to rejects-invalid by this issue
// a: slice assginment
// b: element-wise assignment
static assert(!__traits(compiles, { sa = e; })); // X
static assert( __traits(compiles, { sa[] = e; })); // b
static assert(!__traits(compiles, { da = e; }));
static assert( __traits(compiles, { da[] = e; })); // b
// lhs is static array
static assert( __traits(compiles, { sa = sa; })); // b == identity assign
static assert(!__traits(compiles, { sa = sa[]; })); // X
static assert(!__traits(compiles, { sa[] = sa; })); // X
static assert( __traits(compiles, { sa[] = sa[]; })); // b
static assert(!__traits(compiles, { sa = da; })); // X
static assert(!__traits(compiles, { sa = da[]; })); // X
static assert( __traits(compiles, { sa[] = da; })); // b
static assert( __traits(compiles, { sa[] = da[]; })); // b
// lhs is dynamic array
static assert(!__traits(compiles, { da = sa; })); // X
static assert( __traits(compiles, { da = sa[]; })); // a
static assert(!__traits(compiles, { da[] = sa; })); // X
static assert( __traits(compiles, { da[] = sa[]; })); // b
static assert( __traits(compiles, { da = da; })); // a == identity assign
static assert( __traits(compiles, { da = da[]; })); // a
static assert( __traits(compiles, { da[] = da; })); // b
static assert( __traits(compiles, { da[] = da[]; })); // b
----
bearophile says that sa = sa should be rejected and must replace it to sa[] =
sa[].
But I and timon disagree it.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list