According to TDPL p. 294 a call to any non-static method in an immutable constructor is not allowed. But class A { int a; this() immutable { a = 5; fun(); // should not compile } void fun() immutable {} } compiles with dmd v2.050. I think the behavior should be clarified. Either in dmd to match TDPL or the other way round. I'm going to add a link to a thread on digitalmars-d@puremagic.com for further information.
Somehow only the first message of the thread is available. See http://www.digitalmars.com/d/archives/digitalmars/D/Call_to_immutable_method_during_immutable_construction_121623.html The rest is here http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=121637
Mass migration of bugs marked as x86-64 to just x86. The platform run on isn't what's relevant, it's if the app is a 32 or 64 bit app.
I don't have the book, so I don't know exactly what it says at page 294, however the code posted here is perfectly legal. I assume that maybe the book is referring to static constructors, in which case it makes sense. Anyway, I'm closing this issue as invalid.