https://issues.dlang.org/show_bug.cgi?id=15752
Issue ID: 15752
Summary: Diagnostic: Better Error Message for Assigning
Incorrect AA Empty Value
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
Because of the use of [] to enclose AA assignment, one could be forgiven in
accidentally doing something like this:
void main() {
int[int] a = [];
}
Which results in the very unhelpful message:
Error: can't have associative array key of void
Of course, the right answer is to use null, but again, the similarities with
array literals one could be expected to make this mistake. The error message is
also different when trying to do this for an optional function parameter.
void func(int[int] b = []) {
}
void main() {
func();
}
Error: cannot implicitly convert expression ([]) of type void[] to int[int]
The message should be something like this:
Error: can't have associative array key of void. Perhaps you meant to
initialize an empty AA with null?
--