mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
82 lines
1.3 KiB
D
82 lines
1.3 KiB
D
// REQUIRED_ARGS: -w
|
|
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/warn7444.d(22): Error: cannot implicitly convert expression `e` of type `int` to `int[]`
|
|
---
|
|
*/
|
|
|
|
void test7444()
|
|
{
|
|
int[2] sa;
|
|
int[] da;
|
|
int e;
|
|
|
|
{
|
|
// X: Changed accepts-invalid to rejects-invalid by this issue
|
|
// a: slice assignment
|
|
// b: element-wise assignment
|
|
sa = e; // X
|
|
sa[] = e; // b
|
|
da = e;
|
|
da[] = e; // b
|
|
|
|
// lhs is static array
|
|
sa = sa; // b == identity assign
|
|
sa = sa[]; // X
|
|
sa[] = sa; // X
|
|
sa[] = sa[]; // b
|
|
|
|
sa = da; // X
|
|
sa = da[]; // X
|
|
sa[] = da; // X
|
|
sa[] = da[]; // b
|
|
|
|
// lhs is dynamic array
|
|
da = sa; // X
|
|
da = sa[]; // a
|
|
da[] = sa; // X
|
|
da[] = sa[]; // b
|
|
|
|
da = da; // a == identity assign
|
|
da = da[]; // a
|
|
da[] = da; // X
|
|
da[] = da[]; // b
|
|
}
|
|
}
|
|
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
No warning
|
|
---
|
|
*/
|
|
|
|
void test10214()
|
|
{
|
|
bool[1] arr;
|
|
arr = 0;
|
|
pragma(msg, "No warning");
|
|
}
|
|
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
No warning
|
|
---
|
|
*/
|
|
|
|
struct S11228
|
|
{
|
|
int[2] ii;
|
|
alias ii this;
|
|
}
|
|
void test11228()
|
|
{
|
|
S11228 s;
|
|
int[2] ii;
|
|
ii = s.ii; // OK
|
|
ii = s; // OK <- Warning
|
|
pragma(msg, "No warning");
|
|
}
|