Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
style comment
  • Loading branch information
ever0de committed Nov 1, 2025
commit d04d121a7d7e1cc2fdb075c9b10626e06b091228
29 changes: 14 additions & 15 deletions vm/src/builtins/property.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,22 +74,22 @@ impl PyProperty {
return Ok(Some(name.clone()));
}

// Otherwise try to get __name__ from getter
if let Some(getter) = self.getter.read().as_ref() {
match getter.get_attr("__name__", vm) {
Ok(name) => Ok(Some(name)),
Err(e) => {
// If it's an AttributeError from the getter, return None
// Otherwise, propagate the original exception (e.g., RuntimeError)
if e.class().is(vm.ctx.exceptions.attribute_error) {
Ok(None)
} else {
Err(e)
}
let getter = self.getter.read();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added an extra variable because a temporary value issue prevented a single-line implementation.

let Some(getter) = getter.as_ref() else {
return Ok(None);
};

match getter.get_attr("__name__", vm) {
Ok(name) => Ok(Some(name)),
Err(e) => {
// If it's an AttributeError from the getter, return None
// Otherwise, propagate the original exception (e.g., RuntimeError)
if e.class().is(vm.ctx.exceptions.attribute_error) {
Ok(None)
} else {
Err(e)
}
}
} else {
Ok(None)
}
}

Expand Down Expand Up @@ -155,7 +155,6 @@ impl PyProperty {

#[pygetset(name = "__name__")]
fn name_getter(&self, vm: &VirtualMachine) -> PyResult {
// Use get_property_name helper to get the name
match self.get_property_name(vm)? {
Some(name) => Ok(name),
None => Err(
Expand Down