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

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

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.


Reply via email to