On Tue, Feb 10, 2009 at 11:16 AM, zorran <[email protected]> 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.
