The following code bypasses immutabililty with GDC but not DMD

Nicholas Smith nmsmith65 at gmail.com
Thu Apr 11 17:50:02 PDT 2013


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!


More information about the D.gnu mailing list