/*
TEST_OUTPUT:
---
fail_compilation/diag8777.d(12): Error: constructor diag8777.Foo1.this missing initializer for immutable field x
fail_compilation/diag8777.d(12): Error: constructor diag8777.Foo1.this missing initializer for const field y
---
*/
class Foo1
{
    immutable int[5] x;
    const int[5] y;
    this() {}
}

/*
TEST_OUTPUT:
---
fail_compilation/diag8777.d(25): Error: cannot modify immutable expression x
fail_compilation/diag8777.d(28): Error: cannot modify const expression y
---
*/
void test2()
{
    immutable int x;
    x = 1;

    const int y;
    y = 1;
}

/*
TEST_OUTPUT:
---
fail_compilation/diag8777.d(42): Error: cannot remove key from immutable associative array hashx
fail_compilation/diag8777.d(43): Error: cannot remove key from const associative array hashy
---
*/
immutable(int[int]) hashx;
const(int[int]) hashy;
void test3()
{
    hashx.remove(1);
    hashy.remove(1);
}
