Skip to content

Commit a6afbdf

Browse files
committed
Update
1 parent 0f2bd59 commit a6afbdf

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

vm/src/builtins/pytype.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use super::pystr::PyStrRef;
1515
use super::staticmethod::PyStaticMethod;
1616
use super::tuple::PyTuple;
1717
use super::weakref::PyWeak;
18-
use crate::builtins::tuple::PyTupleRef;
18+
use crate::builtins::tuple::{PyTupleRef, PyTupleTyped};
1919
use crate::function::{FuncArgs, KwArgs};
2020
use crate::pyobject::{
2121
BorrowValue, Either, IdProtocol, PyAttributes, PyClassImpl, PyContext, PyIterable, PyLease,
@@ -418,13 +418,10 @@ impl PyType {
418418
}));
419419
}
420420

421-
let (name, bases, dict, kwargs): (PyStrRef, PyTupleRef, PyDictRef, KwArgs) =
421+
let (name, bases, dict, kwargs): (PyStrRef, PyTupleTyped<PyTypeRef>, PyDictRef, KwArgs) =
422422
args.clone().bind(vm)?;
423423

424-
// TODO: This is kind of a hack because we lose type information only to redo it
425-
let bases: PyIterable<PyTypeRef> =
426-
PyIterable::try_from_object(vm, bases.into_object()).unwrap();
427-
let bases: Vec<PyTypeRef> = bases.iter(vm)?.collect::<Result<Vec<_>, _>>()?;
424+
let bases = bases.borrow_value().iter().cloned().collect::<Vec<_>>();
428425
let (metatype, base, bases) = if bases.is_empty() {
429426
let base = vm.ctx.types.object_type.clone();
430427
(metatype, base.clone(), vec![base])

0 commit comments

Comments
 (0)