view gcc/testsuite/gdc.test/fail_compilation/fail12749.d @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 1830386684a0
children
line wrap: on
line source

/*
TEST_OUTPUT:
---
fail_compilation/fail12749.d(19): Error: immutable field 'inum' initialization is not allowed in foreach loop
fail_compilation/fail12749.d(20): Error: const field 'cnum' initialization is not allowed in foreach loop
fail_compilation/fail12749.d(25): Error: immutable field 'inum' initialization is not allowed in nested function 'set'
fail_compilation/fail12749.d(26): Error: const field 'cnum' initialization is not allowed in nested function 'set'
---
*/
struct S
{
    immutable int inum;
    const     int cnum;

    this(int i)
    {
        foreach (n; Aggr())
        {
            inum = i;
            cnum = i;
        }

        void set(int i)
        {
            inum = i;
            cnum = i;
        }
    }
}

/*
TEST_OUTPUT:
---
fail_compilation/fail12749.d(48): Error: immutable variable 'inum' initialization is not allowed in foreach loop
fail_compilation/fail12749.d(49): Error: const variable 'cnum' initialization is not allowed in foreach loop
fail_compilation/fail12749.d(54): Error: immutable variable 'inum' initialization is not allowed in nested function 'set'
fail_compilation/fail12749.d(55): Error: const variable 'cnum' initialization is not allowed in nested function 'set'
---
*/
immutable int inum;
const     int cnum;
static this()
{
    int i = 10;

    foreach (n; Aggr())
    {
        inum = i;
        cnum = i;
    }

    void set(int i)
    {
        inum = i;
        cnum = i;
    }
}

struct Aggr
{
    int opApply(int delegate(int) dg) { return dg(1); }
}