www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 2913] New: aliasing a ref type is not possible

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2913

           Summary: aliasing a ref type is not possible
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: andrei metalanguage.com


alias ref int rint;

rint foo() { static int x; return x; }

void main()
{
    auto p = &(foo());
}

This doesn't work. It led me to write the ugliest code I have ever written.
Search std.range for "mixin" if you want to see ugly stuff.


-- 
Apr 29 2009
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2913





------- Comment #1 from kamm-removethis incasoftware.de  2009-04-30 02:40
-------
I'm not sure allowing that alias is a good idea, as ref int and int still name
the same type. If that alias worked, wouldn't you expect

alias ref int rint;
int i = 3;
rint ri = i;
ri = 4;
assert(i == 4);


-- 
Apr 30 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2913





------- Comment #2 from andrei metalanguage.com  2009-04-30 08:12 -------
(In reply to comment #1)
 I'm not sure allowing that alias is a good idea, as ref int and int still name
 the same type. If that alias worked, wouldn't you expect
 
 alias ref int rint;
 int i = 3;
 rint ri = i;
 ri = 4;
 assert(i == 4);
 

The ref would be only effective in a function signature. This can be done (I discussed it with Walter). The problem is, Walter has a lot on his plate already. Yet that doesn't make my code look any better :o). --
Apr 30 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2913





------- Comment #3 from maxmo pochta.ru  2009-05-04 08:44 -------
dup of bug 2753?


-- 
May 04 2009