@@ -15,10 +15,11 @@ use super::pystr::PyStrRef;
1515use super :: staticmethod:: PyStaticMethod ;
1616use super :: tuple:: PyTuple ;
1717use super :: weakref:: PyWeak ;
18+ use crate :: builtins:: tuple:: PyTupleTyped ;
1819use crate :: function:: { FuncArgs , KwArgs } ;
1920use crate :: pyobject:: {
20- BorrowValue , Either , IdProtocol , PyAttributes , PyClassImpl , PyContext , PyIterable , PyLease ,
21- PyObjectRef , PyRef , PyResult , PyValue , TryFromObject , TypeProtocol ,
21+ BorrowValue , Either , IdProtocol , PyAttributes , PyClassImpl , PyContext , PyLease , PyObjectRef ,
22+ PyRef , PyResult , PyValue , TryFromObject , TypeProtocol ,
2223} ;
2324use crate :: slots:: { self , Callable , PyTpFlags , PyTypeSlots , SlotGetattro } ;
2425use crate :: vm:: VirtualMachine ;
@@ -417,10 +418,10 @@ impl PyType {
417418 } ) ) ;
418419 }
419420
420- let ( name, bases, dict, kwargs) : ( PyStrRef , PyIterable < PyTypeRef > , PyDictRef , KwArgs ) =
421+ let ( name, bases, dict, kwargs) : ( PyStrRef , PyTupleTyped < PyTypeRef > , PyDictRef , KwArgs ) =
421422 args. clone ( ) . bind ( vm) ?;
422423
423- let bases: Vec < PyTypeRef > = bases. iter ( vm ) ? . collect :: < Result < Vec < _ > , _ > > ( ) ? ;
424+ let bases = bases. borrow_value ( ) . to_vec ( ) ;
424425 let ( metatype, base, bases) = if bases. is_empty ( ) {
425426 let base = vm. ctx . types . object_type . clone ( ) ;
426427 ( metatype, base. clone ( ) , vec ! [ base] )
0 commit comments