Why do immutable variables need reference counting?

ag0aep6g anonymous at example.com
Sun Apr 17 14:18:01 UTC 2022


On 17.04.22 15:27, H. S. Teoh wrote:
> On Sun, Apr 17, 2022 at 01:06:36PM +0000, wjoe via Digitalmars-d-learn wrote:
> [...]
>> On the matter of undefined behavior. Technically a program is in
>> undefined behavior land after throwing an error, thus every unittest
>> that continues after assertThrown is therefore nonsense code, is it
>> not ?
> 
> The spec explicitly makes an exception(!) in this case. See 10.24.11.3:
> 
> 	https://dlang.org/spec/expression.html#assert_expressions
> 
> as well as 27.3:
> 
> 	https://dlang.org/spec/unittest.html

But the failing assert is not part of the unittest directly. It's in a 
function that is called from the unittest. It takes a generous 
interpretation of the spec to include such asserts in the exception.

Letting failing asserts cause UB is a mistake anyway. It stems from a 
misguided desire to re-use asserts for optimization, when nobody 
actually uses them that way.


More information about the Digitalmars-d-learn mailing list