#![allow(clippy::wildcard_imports, clippy::enum_glob_use)]
#![allow(
clippy::cast_precision_loss,
clippy::cast_possible_truncation,
clippy::cast_sign_loss
)]
use super::*;
impl Npm for PythonCode {
fn compute<'a>(node: &Node<'a>, _code: &'a [u8], stats: &mut Stats) {
use Python::*;
if !matches!(node.kind_id().into(), ClassDefinition) {
return;
}
if stats.is_disabled() {
stats.is_class_space = true;
}
let Some(body) = node.children().find(python_is_block) else {
return;
};
let count = body
.children()
.filter(|stmt| match stmt.kind_id().into() {
FunctionDefinition => true,
DecoratedDefinition => stmt.children().any(|c| c.kind_id() == FunctionDefinition),
_ => false,
})
.count();
stats.class_nm += count;
stats.class_npm += count;
}
}