[Issue 7711] New: ICE when trying to use an AA with inout type.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Mar 14 13:29:43 PDT 2012


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

           Summary: ICE when trying to use an AA with inout type.
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: ice
          Severity: normal
          Priority: P2
         Component: druntime
        AssignedTo: nobody at puremagic.com
        ReportedBy: kennytm at gmail.com


--- Comment #0 from kennytm at gmail.com 2012-03-14 13:29:54 PDT ---
Test case:

---------------------------------------------
inout(int) test7711a(inout(int) bb) {
    inout(long[long]) r;
    r.keys;
    return 0;
}
---------------------------------------------

Compiling this causes

dmd: mtype.c:4449: StructDeclaration* TypeAArray::getImpl(): Assertion `impl'
failed.
Aborted

Because AssociativeArray!(long, inout(long)) cannot be instantiated:

object.di(386): Error: variable
object.AssociativeArray!(long,inout(long)).AssociativeArray.Slot.value only
parameters or stack based variables can be inout
object.di(452): Error: inout on return means inout must be on a parameter as
well for @property inout(long)[long]()
object.di(458): Error: inout on return means inout must be on a parameter as
well for @property inout(long)[]()
object.di(483): Error: inout on return means inout must be on a parameter as
well for pure @safe inout(long)()
object.di(530): Error: inout on return means inout must be on a parameter as
well for Value()

-- 
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