Worst ideas/features in programming languages?
Atila Neves
atila.neves at gmail.com
Tue Nov 9 17:13:16 UTC 2021
On Tuesday, 9 November 2021 at 16:37:37 UTC, Timon Gehr wrote:
> On 08.11.21 15:04, Atila Neves wrote:
>> On Friday, 5 November 2021 at 21:22:12 UTC, victoroak wrote:
>>> [...]
>>
>> Interesting. Adding an invariant causes compilation to fail:
>>
>> ```
>> foo.d(27): Error: variable `foo.main.x` `void` initializers
>> for structs with invariants are not allowed in safe functions
>> ```
>>
>>
>
> Well, that makes some sense, but a struct can have an invariant
> without actually having it spelled out explicitly in the source
> code. Furthermore, adding contracts actually makes code less
> safe in -release mode.
IMHO -release mode really shouldn't be used, but since contracts
are supposed to prevent bugs from occurring, hopefully testing
"proved" that "none" exist.
In this case specifically, even with -release one gets a compiler
error, which is enough of a reason to add one methinks.
More information about the Digitalmars-d
mailing list