This is one of the largest problems left in the implementation of
D purity:
https://issues.dlang.org/show_bug.cgi?id=9148
One example of the refused code:
void foo(const int[] a) {
int bar() pure {
return a[0];
}
}
void main() {}
Bye,
bearophile