September 01, 2004
Minimalist test case:

# void test() {}
#
# void main()
# {
#   double d;
#   d += test();
# }

Result:

tst.d(6): void has no value
tst.d(6): incompatible types for ((d) += (test())): 'double' and 'void'
tst.d(6): 'test()' is not an arithmetic type
dmd: expression.c:3971: virtual Expression* AddAssignExp::semantic(Scope*):
Assertion `e2->type->isfloating()' failed.

Nick