digitalmars.D.bugs - [Issue 23140] New: Array!T where T is a shared class no longer works
- d-bugmail puremagic.com (32/32) May 25 2022 https://issues.dlang.org/show_bug.cgi?id=23140
https://issues.dlang.org/show_bug.cgi?id=23140 Issue ID: 23140 Summary: Array!T where T is a shared class no longer works Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: schveiguy gmail.com I'm not sure it should have ever worked, but I'm also wondering why this cannot be made to work. Prior to 2.099.0, the following code compiled: ```d import std.container : Array; shared class C {} Array!C arr; ``` But it no longer does. The reason is because of the fix for https://issues.dlang.org/show_bug.cgi?id=22515. Now, a C is actually typed as `shared(C)`, and it does not implicitly cast to `const void *` (used by GC functions and pureFree, etc.). Three options here: 1. Fix Array to cast away the shared when using these functions (a reasonable assumption) 2. Fix the druntime functions so they also accept `shared` pointers 3. close this bug as wontfix, and I'll have to work around it in the project I'm trying to compile (libasync) --
May 25 2022