https://issues.dlang.org/show_bug.cgi?id=24073
Issue ID: 24073 Summary: Compiler should explain why implicit conversion to mutable fails Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: elpenguin...@gmail.com There are cases where const values can implicitly convert to mutable, such as structs without mutable indirections or basic types. However, when this fails, the compiler does not tell the user why that is. For example... ``` void main() { const Foo a; Foo b = a; // okay, no problems here const Bar c; //Bar d = c; // Error: cannot implicitly convert expression `c` of type `const(Bar)` to `Bar` } struct Foo { int value; } struct Bar { void* ptr; } ``` It would be very helpful if the compiler could offer hints as to why the implicit conversion failed, similar to attribute inferrence failures. This can be difficult to track down manually as structs grow in complexity. --