"Andrei Alexandrescu" wrote in message news:mg94od$1v4g$1...@digitalmars.com...

Can you make a salient argument that this is a step in the right direction? In that case what's the vision for future steps? Thanks! -- Andrei

This approach makes the common cases of AAs in the data segment work. This enables a very useful idiom of defining a constant lookup table and using it at runtime to map values.

The hashing and AA implementations that need to be replicated in the compiler are trivial, and easily updated if anybody does change the druntime implementation. At worst it's pretty much a copy-paste from the druntime sources. And as I've said, I'm happy provide a matching dmd implementation of anybody's new druntime implementation.

A future library AA implementation would not be complicated by this patch, because the code in this patch is only reached when an AA literal survives until codegen. A library AA would lower the AA literal to some other construct before codegen.

This is a step in the right direction because it will make the common cases of this feature work. That's it. It doesn't hurt or help other AA issues in a significant way.

Reply via email to