On 6/13/23 10:02 PM, Steven Schveighoffer wrote:

I need to diagnose further, but most *likely* the problem is that the typeinfo being passed is incorrect (I believe it's a TypeInfo_Shared, but the function is expecting a TypeInfo_AssociativeArray)


Further diagnosis is that the `TypeInfo` being passed in is still wrapped in a `TypeInfo_Shared`.

If you do `const aa = ["abc": "123"]` or `immutable aa = ["abc": "123"]` then the typeinfo is not wrapped in `TypeInfo_Const` or `TypeInfo_Shared`

This explains exactly why there is a bug.

I put the following line at the top of that function, and it fails in the `shared` case:

```d
assert(typeid(ti) == typeid(TypeInfo_AssociativeArray));
```

If there isn't a bug I'll file one.

-Steve

Reply via email to