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 } ```