Thread overview
No compile time bounds checking for static arrays?
Aug 11, 2021
Tejas
Aug 11, 2021
Stefan Koch
Aug 11, 2021
Tejas
August 11, 2021
import std;
void main()
{
    int[40] staticA;
    auto c = staticA[0..50];//mistake
}```
results in:

```d
core.exception.RangeError@onlineapp.d(5): Range violation
----------------
??:? _d_arrayboundsp [0x55db29a0b645]
./onlineapp.d:5 _Dmain [0x55db29a0ae8c]

Is there a way to make this check compile time?

August 11, 2021

On Wednesday, 11 August 2021 at 06:29:40 UTC, Tejas wrote:

>
import std;
void main()
{
    int[40] staticA;
    auto c = staticA[0..50];//mistake
}```
results in:

```d
core.exception.RangeError@onlineapp.d(5): Range violation
----------------
??:? _d_arrayboundsp [0x55db29a0b645]
./onlineapp.d:5 _Dmain [0x55db29a0ae8c]

Is there a way to make this check compile time?

Without modifying the compiler? No.
Please file an enhancement request on issues.dlang.org.
This particular example is an easy fix.

August 11, 2021

On Wednesday, 11 August 2021 at 06:46:34 UTC, Stefan Koch wrote:

>

On Wednesday, 11 August 2021 at 06:29:40 UTC, Tejas wrote:

>
import std;
void main()
{
    int[40] staticA;
    auto c = staticA[0..50];//mistake
}```
results in:

```d
core.exception.RangeError@onlineapp.d(5): Range violation
----------------
??:? _d_arrayboundsp [0x55db29a0b645]
./onlineapp.d:5 _Dmain [0x55db29a0ae8c]

Is there a way to make this check compile time?

Without modifying the compiler? No.
Please file an enhancement request on issues.dlang.org.
This particular example is an easy fix.

Done