[Issue 1279] New: const/invariant functions don't accept const/invariant return types

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jun 19 05:49:09 PDT 2007


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

           Summary: const/invariant functions don't accept const/invariant
                    return types
           Product: D
           Version: 2.000
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: kamm at incasoftware.de


This fails to compile

class Foo
{
  int x;

  invariant invariant(int)* geti() // line 6
  { return &x;  }

  const const(int)* getc() // line 12
  { return &x;  
  } // line 15
}

with the errors
invartest.d(6): Declaration expected, not '('
invartest.d(12): Declaration expected, not '('
invartest.d(15): unrecognized declaration.

Putting the return types into aliases fixes the problem:

alias invariant(int)* RT_I;
invariant RT_I geti() {...}

alias const(int)* RT_C;
const RT_C getc() {...}

compiles.


-- 



More information about the Digitalmars-d-bugs mailing list