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