diff --git a/derive-impl/src/pypayload.rs b/derive-impl/src/pypayload.rs index a72c36148a..eeae27c3fa 100644 --- a/derive-impl/src/pypayload.rs +++ b/derive-impl/src/pypayload.rs @@ -7,6 +7,7 @@ pub(crate) fn impl_pypayload(input: DeriveInput) -> Result { let ret = quote! { impl ::rustpython_vm::PyPayload for #ty { + #[inline] fn class(_ctx: &::rustpython_vm::vm::Context) -> &'static rustpython_vm::Py<::rustpython_vm::builtins::PyType> { ::static_type() } diff --git a/vm/src/builtins/asyncgenerator.rs b/vm/src/builtins/asyncgenerator.rs index 1172d1d255..bdfdd7b274 100644 --- a/vm/src/builtins/asyncgenerator.rs +++ b/vm/src/builtins/asyncgenerator.rs @@ -21,6 +21,7 @@ pub struct PyAsyncGen { type PyAsyncGenRef = PyRef; impl PyPayload for PyAsyncGen { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.async_generator } @@ -141,6 +142,7 @@ impl Unconstructible for PyAsyncGen {} #[derive(Debug)] pub(crate) struct PyAsyncGenWrappedValue(pub PyObjectRef); impl PyPayload for PyAsyncGenWrappedValue { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.async_generator_wrapped_value } @@ -190,6 +192,7 @@ pub(crate) struct PyAsyncGenASend { } impl PyPayload for PyAsyncGenASend { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.async_generator_asend } @@ -283,6 +286,7 @@ pub(crate) struct PyAsyncGenAThrow { } impl PyPayload for PyAsyncGenAThrow { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.async_generator_athrow } diff --git a/vm/src/builtins/bool.rs b/vm/src/builtins/bool.rs index c7e4395091..fa07c4d409 100644 --- a/vm/src/builtins/bool.rs +++ b/vm/src/builtins/bool.rs @@ -81,6 +81,7 @@ impl PyObjectRef { pub struct PyBool; impl PyPayload for PyBool { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.bool_type } diff --git a/vm/src/builtins/bytearray.rs b/vm/src/builtins/bytearray.rs index c238190fdc..9599f66648 100644 --- a/vm/src/builtins/bytearray.rs +++ b/vm/src/builtins/bytearray.rs @@ -884,6 +884,7 @@ pub struct PyByteArrayIterator { } impl PyPayload for PyByteArrayIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.bytearray_iterator_type } diff --git a/vm/src/builtins/bytes.rs b/vm/src/builtins/bytes.rs index 10ccff37a4..82d7c3f26d 100644 --- a/vm/src/builtins/bytes.rs +++ b/vm/src/builtins/bytes.rs @@ -78,6 +78,7 @@ impl AsRef<[u8]> for PyBytesRef { } impl PyPayload for PyBytes { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.bytes_type } @@ -683,6 +684,7 @@ pub struct PyBytesIterator { } impl PyPayload for PyBytesIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.bytes_iterator_type } diff --git a/vm/src/builtins/classmethod.rs b/vm/src/builtins/classmethod.rs index f4cb1ba379..79ac8fc0fe 100644 --- a/vm/src/builtins/classmethod.rs +++ b/vm/src/builtins/classmethod.rs @@ -41,6 +41,7 @@ impl From for PyClassMethod { } impl PyPayload for PyClassMethod { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.classmethod_type } diff --git a/vm/src/builtins/code.rs b/vm/src/builtins/code.rs index 28e501e842..659a1ce702 100644 --- a/vm/src/builtins/code.rs +++ b/vm/src/builtins/code.rs @@ -214,6 +214,7 @@ impl fmt::Debug for PyCode { } impl PyPayload for PyCode { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.code_type } diff --git a/vm/src/builtins/complex.rs b/vm/src/builtins/complex.rs index 9fb304e8b0..88f694e9d1 100644 --- a/vm/src/builtins/complex.rs +++ b/vm/src/builtins/complex.rs @@ -34,6 +34,7 @@ impl PyComplex { } impl PyPayload for PyComplex { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.complex_type } diff --git a/vm/src/builtins/coroutine.rs b/vm/src/builtins/coroutine.rs index 0be0c83410..94a1fc41bf 100644 --- a/vm/src/builtins/coroutine.rs +++ b/vm/src/builtins/coroutine.rs @@ -17,6 +17,7 @@ pub struct PyCoroutine { } impl PyPayload for PyCoroutine { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.coroutine_type } @@ -127,6 +128,7 @@ pub struct PyCoroutineWrapper { } impl PyPayload for PyCoroutineWrapper { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.coroutine_wrapper_type } diff --git a/vm/src/builtins/dict.rs b/vm/src/builtins/dict.rs index 6fc68a0e63..f5f5f2b401 100644 --- a/vm/src/builtins/dict.rs +++ b/vm/src/builtins/dict.rs @@ -823,6 +823,7 @@ macro_rules! dict_view { } impl PyPayload for $iter_name { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.$iter_class } @@ -896,6 +897,7 @@ macro_rules! dict_view { } impl PyPayload for $reverse_iter_name { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.$reverse_iter_class } diff --git a/vm/src/builtins/enumerate.rs b/vm/src/builtins/enumerate.rs index b28f1888cd..84944ad1da 100644 --- a/vm/src/builtins/enumerate.rs +++ b/vm/src/builtins/enumerate.rs @@ -22,6 +22,7 @@ pub struct PyEnumerate { } impl PyPayload for PyEnumerate { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.enumerate_type } @@ -92,6 +93,7 @@ pub struct PyReverseSequenceIterator { } impl PyPayload for PyReverseSequenceIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.reverse_iter_type } diff --git a/vm/src/builtins/filter.rs b/vm/src/builtins/filter.rs index bc8e12fc2f..5dd0162f83 100644 --- a/vm/src/builtins/filter.rs +++ b/vm/src/builtins/filter.rs @@ -14,6 +14,7 @@ pub struct PyFilter { } impl PyPayload for PyFilter { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.filter_type } diff --git a/vm/src/builtins/float.rs b/vm/src/builtins/float.rs index c7cf8a10a5..8a27522045 100644 --- a/vm/src/builtins/float.rs +++ b/vm/src/builtins/float.rs @@ -33,6 +33,7 @@ impl PyFloat { } impl PyPayload for PyFloat { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.float_type } diff --git a/vm/src/builtins/function.rs b/vm/src/builtins/function.rs index 53aa537e20..4cd2b8604f 100644 --- a/vm/src/builtins/function.rs +++ b/vm/src/builtins/function.rs @@ -376,6 +376,7 @@ impl PyFunction { } impl PyPayload for PyFunction { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.function_type } @@ -791,6 +792,7 @@ impl PyBoundMethod { } impl PyPayload for PyBoundMethod { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.bound_method_type } @@ -823,6 +825,7 @@ pub(crate) struct PyCell { pub(crate) type PyCellRef = PyRef; impl PyPayload for PyCell { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.cell_type } diff --git a/vm/src/builtins/generator.rs b/vm/src/builtins/generator.rs index 5235202b47..b46d2cbf04 100644 --- a/vm/src/builtins/generator.rs +++ b/vm/src/builtins/generator.rs @@ -20,6 +20,7 @@ pub struct PyGenerator { } impl PyPayload for PyGenerator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.generator_type } diff --git a/vm/src/builtins/genericalias.rs b/vm/src/builtins/genericalias.rs index 7ef98098ee..fa3877169a 100644 --- a/vm/src/builtins/genericalias.rs +++ b/vm/src/builtins/genericalias.rs @@ -49,6 +49,7 @@ impl fmt::Debug for PyGenericAlias { } impl PyPayload for PyGenericAlias { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.generic_alias_type } diff --git a/vm/src/builtins/getset.rs b/vm/src/builtins/getset.rs index ac67a4b7af..de93bc69ca 100644 --- a/vm/src/builtins/getset.rs +++ b/vm/src/builtins/getset.rs @@ -39,6 +39,7 @@ impl std::fmt::Debug for PyGetSet { } impl PyPayload for PyGetSet { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.getset_type } diff --git a/vm/src/builtins/int.rs b/vm/src/builtins/int.rs index 9e8d8c34e3..c984a6e913 100644 --- a/vm/src/builtins/int.rs +++ b/vm/src/builtins/int.rs @@ -48,6 +48,7 @@ where } impl PyPayload for PyInt { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.int_type } diff --git a/vm/src/builtins/iter.rs b/vm/src/builtins/iter.rs index c0aaa85279..4250a86d71 100644 --- a/vm/src/builtins/iter.rs +++ b/vm/src/builtins/iter.rs @@ -184,6 +184,7 @@ pub struct PySequenceIterator { } impl PyPayload for PySequenceIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.iter_type } @@ -247,6 +248,7 @@ pub struct PyCallableIterator { } impl PyPayload for PyCallableIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.callable_iterator } diff --git a/vm/src/builtins/list.rs b/vm/src/builtins/list.rs index 1c19ea0665..5895ce37e4 100644 --- a/vm/src/builtins/list.rs +++ b/vm/src/builtins/list.rs @@ -50,6 +50,7 @@ impl FromIterator for PyList { } impl PyPayload for PyList { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.list_type } @@ -538,6 +539,7 @@ pub struct PyListIterator { } impl PyPayload for PyListIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.list_iterator_type } @@ -583,6 +585,7 @@ pub struct PyListReverseIterator { } impl PyPayload for PyListReverseIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.list_reverseiterator_type } diff --git a/vm/src/builtins/map.rs b/vm/src/builtins/map.rs index e62817a9a8..867f29a5cb 100644 --- a/vm/src/builtins/map.rs +++ b/vm/src/builtins/map.rs @@ -16,6 +16,7 @@ pub struct PyMap { } impl PyPayload for PyMap { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.map_type } diff --git a/vm/src/builtins/mappingproxy.rs b/vm/src/builtins/mappingproxy.rs index 5a06459fa2..7ec423965c 100644 --- a/vm/src/builtins/mappingproxy.rs +++ b/vm/src/builtins/mappingproxy.rs @@ -36,6 +36,7 @@ unsafe impl Traverse for MappingProxyInner { } impl PyPayload for PyMappingProxy { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.mappingproxy_type } diff --git a/vm/src/builtins/memory.rs b/vm/src/builtins/memory.rs index 27eb80176b..cce9fb2d3c 100644 --- a/vm/src/builtins/memory.rs +++ b/vm/src/builtins/memory.rs @@ -1037,6 +1037,7 @@ impl Hashable for PyMemoryView { } impl PyPayload for PyMemoryView { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.memoryview_type } diff --git a/vm/src/builtins/module.rs b/vm/src/builtins/module.rs index ccf44712e3..2912ccc22a 100644 --- a/vm/src/builtins/module.rs +++ b/vm/src/builtins/module.rs @@ -54,6 +54,7 @@ pub struct PyModule { } impl PyPayload for PyModule { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.module_type } diff --git a/vm/src/builtins/namespace.rs b/vm/src/builtins/namespace.rs index 1284203e68..2c6b8e79d8 100644 --- a/vm/src/builtins/namespace.rs +++ b/vm/src/builtins/namespace.rs @@ -18,6 +18,7 @@ use crate::{ pub struct PyNamespace {} impl PyPayload for PyNamespace { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.namespace_type } diff --git a/vm/src/builtins/object.rs b/vm/src/builtins/object.rs index 0afdb8a961..1951bbb694 100644 --- a/vm/src/builtins/object.rs +++ b/vm/src/builtins/object.rs @@ -22,6 +22,7 @@ use itertools::Itertools; pub struct PyBaseObject; impl PyPayload for PyBaseObject { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.object_type } diff --git a/vm/src/builtins/property.rs b/vm/src/builtins/property.rs index 30d5d3d904..e7cc8a6c46 100644 --- a/vm/src/builtins/property.rs +++ b/vm/src/builtins/property.rs @@ -25,6 +25,7 @@ pub struct PyProperty { } impl PyPayload for PyProperty { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.property_type } diff --git a/vm/src/builtins/range.rs b/vm/src/builtins/range.rs index 7596571e3f..c9ab63bab4 100644 --- a/vm/src/builtins/range.rs +++ b/vm/src/builtins/range.rs @@ -68,6 +68,7 @@ pub struct PyRange { } impl PyPayload for PyRange { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.range_type } @@ -533,6 +534,7 @@ pub struct PyLongRangeIterator { } impl PyPayload for PyLongRangeIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.long_range_iterator_type } @@ -598,6 +600,7 @@ pub struct PyRangeIterator { } impl PyPayload for PyRangeIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.range_iterator_type } diff --git a/vm/src/builtins/set.rs b/vm/src/builtins/set.rs index f873867352..88bbb60a04 100644 --- a/vm/src/builtins/set.rs +++ b/vm/src/builtins/set.rs @@ -153,12 +153,14 @@ impl fmt::Debug for PyFrozenSet { } impl PyPayload for PySet { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.set_type } } impl PyPayload for PyFrozenSet { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.frozenset_type } @@ -1295,6 +1297,7 @@ impl fmt::Debug for PySetIterator { } impl PyPayload for PySetIterator { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.set_iterator_type } diff --git a/vm/src/builtins/singletons.rs b/vm/src/builtins/singletons.rs index 75738f96fe..b1b02d3124 100644 --- a/vm/src/builtins/singletons.rs +++ b/vm/src/builtins/singletons.rs @@ -12,6 +12,7 @@ use crate::{ pub struct PyNone; impl PyPayload for PyNone { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.none_type } @@ -77,6 +78,7 @@ impl AsNumber for PyNone { pub struct PyNotImplemented; impl PyPayload for PyNotImplemented { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.not_implemented_type } diff --git a/vm/src/builtins/slice.rs b/vm/src/builtins/slice.rs index 6cbac09566..f595c53754 100644 --- a/vm/src/builtins/slice.rs +++ b/vm/src/builtins/slice.rs @@ -22,6 +22,7 @@ pub struct PySlice { } impl PyPayload for PySlice { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.slice_type } @@ -302,6 +303,7 @@ impl Representable for PySlice { pub struct PyEllipsis; impl PyPayload for PyEllipsis { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.ellipsis_type } diff --git a/vm/src/builtins/staticmethod.rs b/vm/src/builtins/staticmethod.rs index 80db5a2fc7..53a1681e90 100644 --- a/vm/src/builtins/staticmethod.rs +++ b/vm/src/builtins/staticmethod.rs @@ -14,6 +14,7 @@ pub struct PyStaticMethod { } impl PyPayload for PyStaticMethod { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.staticmethod_type } diff --git a/vm/src/builtins/str.rs b/vm/src/builtins/str.rs index d99467826a..1b77109561 100644 --- a/vm/src/builtins/str.rs +++ b/vm/src/builtins/str.rs @@ -1592,6 +1592,7 @@ pub(crate) fn encode_string( } impl PyPayload for PyStr { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.str_type } diff --git a/vm/src/builtins/super.rs b/vm/src/builtins/super.rs index ed2bf6767d..84575620b7 100644 --- a/vm/src/builtins/super.rs +++ b/vm/src/builtins/super.rs @@ -38,6 +38,7 @@ impl PySuperInner { } impl PyPayload for PySuper { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.super_type } diff --git a/vm/src/builtins/traceback.rs b/vm/src/builtins/traceback.rs index 6d88821ae7..b0b9555e6e 100644 --- a/vm/src/builtins/traceback.rs +++ b/vm/src/builtins/traceback.rs @@ -19,6 +19,7 @@ pub struct PyTraceback { pub type PyTracebackRef = PyRef; impl PyPayload for PyTraceback { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.traceback_type } diff --git a/vm/src/builtins/tuple.rs b/vm/src/builtins/tuple.rs index 66230f8500..8103230b05 100644 --- a/vm/src/builtins/tuple.rs +++ b/vm/src/builtins/tuple.rs @@ -37,6 +37,7 @@ impl fmt::Debug for PyTuple { } impl PyPayload for PyTuple { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.tuple_type } diff --git a/vm/src/builtins/type.rs b/vm/src/builtins/type.rs index 8373082c8a..8b92cfb1b8 100644 --- a/vm/src/builtins/type.rs +++ b/vm/src/builtins/type.rs @@ -137,6 +137,7 @@ impl fmt::Debug for PyType { } impl PyPayload for PyType { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.type_type } diff --git a/vm/src/builtins/union.rs b/vm/src/builtins/union.rs index 7b39cdb0f8..ea2a47043c 100644 --- a/vm/src/builtins/union.rs +++ b/vm/src/builtins/union.rs @@ -28,6 +28,7 @@ impl fmt::Debug for PyUnion { } impl PyPayload for PyUnion { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.union_type } diff --git a/vm/src/builtins/weakproxy.rs b/vm/src/builtins/weakproxy.rs index 381bbf4ae4..b631e27c34 100644 --- a/vm/src/builtins/weakproxy.rs +++ b/vm/src/builtins/weakproxy.rs @@ -20,6 +20,7 @@ pub struct PyWeakProxy { } impl PyPayload for PyWeakProxy { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.weakproxy_type } diff --git a/vm/src/builtins/weakref.rs b/vm/src/builtins/weakref.rs index 5e10bdd30b..62c541ebf6 100644 --- a/vm/src/builtins/weakref.rs +++ b/vm/src/builtins/weakref.rs @@ -21,6 +21,7 @@ pub struct WeakNewArgs { } impl PyPayload for PyWeak { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.weakref_type } diff --git a/vm/src/builtins/zip.rs b/vm/src/builtins/zip.rs index c78cc3f6f2..94e0e40331 100644 --- a/vm/src/builtins/zip.rs +++ b/vm/src/builtins/zip.rs @@ -18,6 +18,7 @@ pub struct PyZip { } impl PyPayload for PyZip { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.zip_type } diff --git a/vm/src/exceptions.rs b/vm/src/exceptions.rs index ff24334f7e..70ee543f22 100644 --- a/vm/src/exceptions.rs +++ b/vm/src/exceptions.rs @@ -39,6 +39,7 @@ impl std::fmt::Debug for PyBaseException { } impl PyPayload for PyBaseException { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.exceptions.base_exception_type } diff --git a/vm/src/frame.rs b/vm/src/frame.rs index 478e3c21b9..e32a9e0546 100644 --- a/vm/src/frame.rs +++ b/vm/src/frame.rs @@ -118,6 +118,7 @@ pub struct Frame { } impl PyPayload for Frame { + #[inline] fn class(ctx: &Context) -> &'static Py { ctx.types.frame_type }