error in return statement

Jarrett Billingsley jarrett.billingsley at gmail.com
Tue Feb 10 08:32:09 PST 2009


On Tue, Feb 10, 2009 at 11:16 AM, zorran <zorran at tut.by> wrote:
> possibly error in return statement:
> ====
> bool fn1(Object o1, Object o2 ) {
>        return o1.opEquals(o2); // opEquals return int
> }
> ====
>
> compiler writes:
> "Error: cannot implicitly convert expression (o1.opEquals(o2)) of type int to bool"
>
> But:
> ====
> bool fn2() {
>        return 1;
> }
> ====
> compile ok!
>
> DMD 1.039
>

In http://www.digitalmars.com/d/1.0/type.html, the bool section:

"The numeric literals 0 and 1 can be implicitly converted to the bool
values false and true, respectively. "

That's what's happening with fn2.  If you did:

bool fn2() { int x = 1; return x; }

you would also get an error.


More information about the Digitalmars-d-bugs mailing list