The part about `scope` being shallow. This is a problem.
One thing that will be confusing to most users is that it appears to be using "taint" rather than proper flow analysis on the pointed-to-object?
```d
int* test(int arg1, int arg2) {
int* p = null;
p = &arg1;
p = new int(5);
return p; // complains about p being scope
}
```
