www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 2737] New: Nonsensical Error Message on Unsafe .idup

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

           Summary: Nonsensical Error Message on Unsafe .idup
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: diagnostic
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: dsimcha yahoo.com


void main() {
    uint[][] foo = [[1, 2], [3, 4], [5, 6]];
    immutable bar = foo.idup;
}

Compiler error:

test.d(3): Error: undefined identifier module test.idup
test.d(3): Error: function expected before (), not module test.idup of type
void

Of course, the compiler should not allow .idup to be applied to foo because,
unless a deep copy were made, this would cause unsafe aliasing between mutable
and immutable.  However, a better error message might be a good thing.


-- 
Mar 16 2009