Summary: Pure function cannot call struct constructor
           Product: D
           Version: 2.036
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD

--- Comment #0 from Tomasz SowiƄski <> 2009-11-29 03:19:44 
PST ---
struct A {
    float f;
    this (float f) {
        this.f = f;
    static pure A stworz(float f) {
        return A(f);

The above doesn't compile:
Error: pure function 'stworz' cannot call impure function 'this'

What's interesting, if stworz signature is one of the below:

static pure stworz(float f);
static pure auto stworz(float f);

then it merrily compiles. So it's sth about the explicit return type.

If I remove the constructor, it also compiles.
If A is a class, it also compiles.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to