Avoid subtracting form .length
user1234
user1234 at 12.de
Thu Nov 14 17:27:54 UTC 2024
On Friday, 8 November 2024 at 23:27:40 UTC, Dom DiSc wrote:
> I _very_ often use this pattern:
>
> ```
> fun(ref int[] a)
> {
> assert(a.length && a.length<=100);
> int[100] b;
> b[0 .. a.length-1] = a[];
> b[a.length .. 100] = 5;
> }
> ```
>
> I consider this perfectly safe, but DScanner gives warnings for
> this, no matter if a check is present or not.
> What's the recommended fix for this? I have no idea what else
> to use.
You define a contract that Dscanner does not understand. The more
simple solution, as you seem to be careful about bounds, is to
disable the specific check that worries you. You can do that in
an ".ini" file that must stand in the project root directory IIRC.
More information about the Digitalmars-d-learn
mailing list