Skip to content

Commit 7518086

Browse files
committed
Implementation of complex methods __floordiv__ and __mod__
1 parent 5faab51 commit 7518086

File tree

1 file changed

+24
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/complex

1 file changed

+24
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/complex/ComplexBuiltins.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,15 @@
4646
import static com.oracle.graal.python.nodes.SpecialMethodNames.__BOOL__;
4747
import static com.oracle.graal.python.nodes.SpecialMethodNames.__DIVMOD__;
4848
import static com.oracle.graal.python.nodes.SpecialMethodNames.__EQ__;
49+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__FLOORDIV__;
4950
import static com.oracle.graal.python.nodes.SpecialMethodNames.__FORMAT__;
5051
import static com.oracle.graal.python.nodes.SpecialMethodNames.__GETNEWARGS__;
5152
import static com.oracle.graal.python.nodes.SpecialMethodNames.__GE__;
5253
import static com.oracle.graal.python.nodes.SpecialMethodNames.__GT__;
5354
import static com.oracle.graal.python.nodes.SpecialMethodNames.__HASH__;
5455
import static com.oracle.graal.python.nodes.SpecialMethodNames.__LE__;
5556
import static com.oracle.graal.python.nodes.SpecialMethodNames.__LT__;
57+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MOD__;
5658
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MUL__;
5759
import static com.oracle.graal.python.nodes.SpecialMethodNames.__NEG__;
5860
import static com.oracle.graal.python.nodes.SpecialMethodNames.__NE__;
@@ -841,4 +843,26 @@ PComplex hash(PComplex self) {
841843
return factory().createComplex(self.getReal(), -self.getImag());
842844
}
843845
}
846+
847+
@GenerateNodeFactory
848+
@Builtin(name = __FLOORDIV__, minNumOfPositionalArgs = 2)
849+
@TypeSystemReference(PythonArithmeticTypes.class)
850+
abstract static class FloorDivNode extends PythonBinaryBuiltinNode {
851+
@Specialization
852+
@SuppressWarnings("unused")
853+
Object floorDiv(Object arg) {
854+
throw raise(TypeError, ErrorMessages.CANT_TAKE_FLOOR_OR_MOD_OF_COMPLEX);
855+
}
856+
}
857+
858+
@GenerateNodeFactory
859+
@Builtin(name = __MOD__, minNumOfPositionalArgs = 2)
860+
@TypeSystemReference(PythonArithmeticTypes.class)
861+
abstract static class ModNode extends PythonBinaryBuiltinNode {
862+
@Specialization
863+
@SuppressWarnings("unused")
864+
Object mod(Object arg) {
865+
throw raise(TypeError, ErrorMessages.CANT_TAKE_FLOOR_OR_MOD_OF_COMPLEX);
866+
}
867+
}
844868
}

0 commit comments

Comments
 (0)