In arithmetic operations, if one of operands is a Fraction, and the other operand is a complex or a numbers.Complex, the fraction is implicitly converted to a complex. Third-party types implementing the numbers.Complex interface can distinguish between real and complex operands. In future we can support the mixed real-complex arithmetic also for the builtin complex type. A fraction is a real value, so it makes sense to convert it to float instead of complex in such cases.
Linked PRs