A little D2 program: void main() { pure nothrow int foo1(immutable int x) { return x; } static pure nothrow int foo2(immutable int x) { return x; } }
This is the asm of the two inner functions: _D6test4mainFZv4foo1MFNaNbyiZi comdat enter 4,0 mov EAX,8[EBP] leave ret 4 _D6test4mainFZv4foo2FNaNbyiZi comdat enter 4,0 leave ret Is this a compiler mistake? Aren't strongly pure inner function static too? Bye, bearophile