boolean foobar(long x, optional int last = 42);
This should create only one C++ virtual function with 2 arguments.
The overload resolution algorithm must check (in that case) for 1 and 2 arguments.
This means that a similar prototype with one argument is not valid. e.g. :
boolean foobar(long x, optional int last = 42);
boolean foobar(long x); // WRONG