[Issue 10064] New: opDollar+final interface function results in a wrong code

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 10 18:15:15 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10064

           Summary: opDollar+final interface function results in a wrong
                    code
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: wrong-code
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: verylonglogin.reg at gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg at gmail.com> 2013-05-11 05:15:14 MSD ---
This module unittest fails when module is in a project but runs fine as a singe
file so one have to look at the generated instructions to see the bug:
---
struct S
{
    size_t[5] arr;

    @property size_t opDollar() // line 5
    { return 0; }

    int opIndex(size_t index)
    { return 0; }
}

interface I
{
    final S getS()
    { return S(); }
}

class C: I
{
    this(in size_t[])
    { }
}

unittest
{
    auto i = cast(I) new C([0]);
    i.getS()[$]; // Causes `null this` at line 5
}
---

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


More information about the Digitalmars-d-bugs mailing list