pyo3/tests/ui/invalid_frozen_pyclass_borrow.rs

32 lines
602 B
Rust
Raw Normal View History

2021-11-22 08:26:34 +00:00
use pyo3::prelude::*;
#[pyclass(frozen)]
2021-11-22 08:26:34 +00:00
pub struct Foo {
#[pyo3(get)]
field: u32,
}
fn borrow_mut_fails(foo: Py<Foo>, py: Python) {
2021-11-22 08:26:34 +00:00
let borrow = foo.as_ref(py).borrow_mut();
}
2022-04-21 07:03:45 +00:00
#[pyclass(subclass)]
struct MutableBase;
#[pyclass(frozen, extends = MutableBase)]
2022-04-21 07:03:45 +00:00
struct ImmutableChild;
fn borrow_mut_of_child_fails(child: Py<ImmutableChild>, py: Python) {
2022-04-21 07:03:45 +00:00
let borrow = child.as_ref(py).borrow_mut();
}
fn py_get_of_mutable_class_fails(class: Py<MutableBase>) {
class.get();
}
fn pyclass_get_of_mutable_class_fails(class: &PyCell<MutableBase>) {
class.get();
}
fn main() {}