Why does this code

```d
import std.stdio,std.typecons;

struct EC {
   Exception [] ex;
   auto opAssign (X: void) (lazy X f)
   {
      writeln (__PRETTY_FUNCTION__);
      try return f (); catch (Exception e) ex ~= e;
   }
}

class E : Exception { this (string s) { super (s); } }
void bar (int i) { if (i == 1) throw new E ("E"); }

void main ()
{
   EC ec;

   ec.opAssign (bar (1)); // okay
// ec = bar (1); // Error: expression bar(1) is void and has no value

   ec.writeln;
}
```

compile with the abovementioned error?

Reply via email to