www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 8906] New: purity inference failure with opAssign and alias this

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8906

           Summary: purity inference failure with opAssign and alias this
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: nilsbossung googlemail.com



---
---
cat > test.d <<CODE
struct S() { // needs to be a template to trigger the bug
    void impl()(int) {} // template for purity inference

    // unused, needed to trigger the bug:
    int i;
    alias i this;
    alias impl opAssign;
}

pure void p() {
    S!() s;
    s.impl(42);
}

alias S!() Dummy; // unused, needed to trigger the bug
CODE
dmd -c -o- test.d
---
test.d(12): Error: pure function 'p' cannot call impure function 'impl'
---

Looks like alias this and opAssign clash somehow.

Works with 2.060. Fails since this commit:
https://github.com/D-Programming-Language/dmd/commit/9ee798f73a2f7765a68bbe8f40ff292f551dab72

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 29 2012
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8906


Nils <nilsbossung googlemail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|purity inference failure    |attribute inference failure
                   |with opAssign and alias     |with opAssign and alias
                   |this                        |this



---
Inference of nothrow and  safe fails, too.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 29 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8906


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
         Depends on|                            |6356



 Works with 2.060. Fails since this commit:
 https://github.com/D-Programming-Language/dmd/commit/9ee798f73a2f7765a68bbe8f40ff292f551dab72
The root cause is bug 6356, and the commit just exposed the issue. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 03 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8906


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



By fixing issue 6356, the code compiles correctly.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 08 2012