@@ -374,86 +374,6 @@ int is_builtin_type(PyTypeObject *tp) {
374374#undef PY_TRUFFLE_TYPE_UNIMPLEMENTED
375375}
376376
377- PyAPI_FUNC (int64_t ) get_methods_flags (PyTypeObject * cls ) {
378- if (cls == NULL ) {
379- return 0 ;
380- }
381-
382- int64_t flags = 0 ;
383- PyNumberMethods * number = cls -> tp_as_number ;
384- if (number != NULL ) {
385- #define COMPUTE_FLAGS (NAME , BIT_IDX ) flags |= ((number->NAME != NULL) * BIT_IDX);
386- COMPUTE_FLAGS (nb_subtract , NB_SUBTRACT )
387- COMPUTE_FLAGS (nb_multiply , NB_MULTIPLY )
388- COMPUTE_FLAGS (nb_remainder , NB_REMAINDER )
389- COMPUTE_FLAGS (nb_divmod , NB_DIVMOD )
390- COMPUTE_FLAGS (nb_power , NB_POWER )
391- COMPUTE_FLAGS (nb_negative , NB_NEGATIVE )
392- COMPUTE_FLAGS (nb_positive , NB_POSITIVE )
393- COMPUTE_FLAGS (nb_absolute , NB_ABSOLUTE )
394- COMPUTE_FLAGS (nb_bool , NB_BOOL )
395- COMPUTE_FLAGS (nb_invert , NB_INVERT )
396- COMPUTE_FLAGS (nb_lshift , NB_LSHIFT )
397- COMPUTE_FLAGS (nb_rshift , NB_RSHIFT )
398- COMPUTE_FLAGS (nb_and , NB_AND )
399- COMPUTE_FLAGS (nb_xor , NB_XOR )
400- COMPUTE_FLAGS (nb_or , NB_OR )
401- COMPUTE_FLAGS (nb_int , NB_INT )
402- COMPUTE_FLAGS (nb_float , NB_FLOAT )
403- COMPUTE_FLAGS (nb_inplace_add , NB_INPLACE_ADD )
404- COMPUTE_FLAGS (nb_inplace_subtract , NB_INPLACE_SUBTRACT )
405- COMPUTE_FLAGS (nb_inplace_multiply , NB_INPLACE_MULTIPLY )
406- COMPUTE_FLAGS (nb_inplace_remainder , NB_INPLACE_REMAINDER )
407- COMPUTE_FLAGS (nb_inplace_power , NB_INPLACE_POWER )
408- COMPUTE_FLAGS (nb_inplace_lshift , NB_INPLACE_LSHIFT )
409- COMPUTE_FLAGS (nb_inplace_rshift , NB_INPLACE_RSHIFT )
410- COMPUTE_FLAGS (nb_inplace_and , NB_INPLACE_AND )
411- COMPUTE_FLAGS (nb_inplace_xor , NB_INPLACE_XOR )
412- COMPUTE_FLAGS (nb_inplace_or , NB_INPLACE_OR )
413- COMPUTE_FLAGS (nb_floor_divide , NB_FLOOR_DIVIDE )
414- COMPUTE_FLAGS (nb_true_divide , NB_TRUE_DIVIDE )
415- COMPUTE_FLAGS (nb_inplace_floor_divide , NB_INPLACE_FLOOR_DIVIDE )
416- COMPUTE_FLAGS (nb_inplace_true_divide , NB_INPLACE_TRUE_DIVIDE )
417- COMPUTE_FLAGS (nb_index , NB_INDEX )
418- COMPUTE_FLAGS (nb_matrix_multiply , NB_MATRIX_MULTIPLY )
419- COMPUTE_FLAGS (nb_inplace_matrix_multiply , NB_INPLACE_MATRIX_MULTIPLY )
420- #undef COMPUTE_FLAGS
421- }
422-
423- PySequenceMethods * sequence = cls -> tp_as_sequence ;
424- if (sequence != NULL ) {
425- #define COMPUTE_FLAGS (NAME , BIT_IDX ) flags |= ((sequence->NAME != NULL) * BIT_IDX);
426- COMPUTE_FLAGS (sq_length , SQ_LENGTH )
427- COMPUTE_FLAGS (sq_repeat , SQ_REPEAT )
428- COMPUTE_FLAGS (sq_item , SQ_ITEM )
429- COMPUTE_FLAGS (sq_ass_item , SQ_ASS_ITEM )
430- COMPUTE_FLAGS (sq_contains , SQ_CONTAINS )
431- COMPUTE_FLAGS (sq_inplace_concat , SQ_INPLACE_CONCAT )
432- COMPUTE_FLAGS (sq_inplace_repeat , SQ_INPLACE_REPEAT )
433- #undef COMPUTE_FLAGS
434- }
435-
436- PyMappingMethods * mapping = cls -> tp_as_mapping ;
437- if (mapping != NULL ) {
438- #define COMPUTE_FLAGS (NAME , BIT_IDX ) flags |= ((mapping->NAME != NULL) * BIT_IDX);
439- COMPUTE_FLAGS (mp_length , MP_LENGTH )
440- COMPUTE_FLAGS (mp_subscript , MP_SUBSCRIPT )
441- COMPUTE_FLAGS (mp_ass_subscript , MP_ASS_SUBSCRIPT )
442- #undef COMPUTE_FLAGS
443- }
444-
445- PyAsyncMethods * async = cls -> tp_as_async ;
446- if (async != NULL ) {
447- #define COMPUTE_FLAGS (NAME , BIT_IDX ) flags |= ((async->NAME != NULL) * BIT_IDX);
448- COMPUTE_FLAGS (am_await , AM_AWAIT )
449- COMPUTE_FLAGS (am_aiter , AM_AITER )
450- COMPUTE_FLAGS (am_anext , AM_ANEXT )
451- COMPUTE_FLAGS (am_send , AM_SEND )
452- #undef COMPUTE_FLAGS
453- }
454- return flags ;
455- }
456-
457377// not quite as in CPython, this assumes that x is already a double. The rest of
458378// the implementation is in the Float constructor in Java
459379PyAPI_FUNC (PyObject * ) float_subtype_new (PyTypeObject * type , double x ) {
0 commit comments