I don't know how to file bug reports but I'm sure this shouldn't happen :)
DMD gives an error.
import std.stdio;
void main()
{
immutable Cat cat = cast(immutable) new Cat(5);
happyBirthday(cat.age);
writefln("My 5 year old cat is %s years old!", cat.age);
}
void happyBirthday(ref int i)
{
i++;
}
class Cat
{
public int age;
this(int a)
{
this.age = age;
}
}
Output:
My 5 year old cat is 6 years old!