On 12/13/2012 1:38 AM, bearophile wrote:
To spot at compile-time situations like:


void main() {
     int[5] x;
     x[$] = 1;
     enum size_t n = 2;
     x[$ + n] = 2;
}

The compiler does that already.


void main() {
     int[] x = new int[5];
     x[$] = 1; // easy
     x[x.length] = 1; // idem
     enum size_t n = 2;
     x[$ + n] = 2; // not too much hard if n is unsigned
     x[x.length + n] = 2; // idem
}

I just don't see the point in adding flow analysis for that, and it'll ding you at runtime anyway. There are a lot more interesting things that flow analysis can do.

Reply via email to