[Issue 13228] Value range analysis for the length of slices
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Nov 11 12:43:30 PST 2014
https://issues.dlang.org/show_bug.cgi?id=13228
--- Comment #2 from bearophile_hugs at eml.cc ---
I think simple cases like this could be supported by the same length range
analysis:
void foo(int[7]) {}
void main() {
int[3] a;
int[2] b, c;
foo(a ~ b ~ c); // No run-time length test here.
}
void foo(int[2]) {}
void main() {
int[5] a;
const int len = 2;
foo(a[0 .. len]); // OK
const int[] b = new int[2];
foo(a[0 .. b.length]); // Currently an error
}
Here the run-time test of the length of 'a' can be omitted, because it can't be
longer than 'b':
int n = 8;
void main() {
const a = new int[n % 5];
int[10] b;
b[0 .. a.length] = 0;
}
--
More information about the Digitalmars-d-bugs
mailing list