mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-17 00:50:16 +00:00
Include function name in undocumented-param
message (#5818)
Closes #5814.
This commit is contained in:
parent
94998aedef
commit
be6c744856
5 changed files with 73 additions and 47 deletions
|
@ -47,6 +47,14 @@ impl<'a> Module<'a> {
|
|||
None
|
||||
}
|
||||
}
|
||||
|
||||
/// Return the name of the module.
|
||||
pub fn name(&self) -> Option<&'a str> {
|
||||
match self.source {
|
||||
ModuleSource::Path(path) => path.last().map(Deref::deref),
|
||||
ModuleSource::File(file) => file.file_stem().and_then(std::ffi::OsStr::to_str),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
|
@ -72,12 +80,13 @@ pub struct Member<'a> {
|
|||
}
|
||||
|
||||
impl<'a> Member<'a> {
|
||||
fn name(&self) -> &'a str {
|
||||
/// Return the name of the member.
|
||||
pub fn name(&self) -> Option<&'a str> {
|
||||
match &self.stmt {
|
||||
Stmt::FunctionDef(ast::StmtFunctionDef { name, .. }) => name,
|
||||
Stmt::AsyncFunctionDef(ast::StmtAsyncFunctionDef { name, .. }) => name,
|
||||
Stmt::ClassDef(ast::StmtClassDef { name, .. }) => name,
|
||||
_ => unreachable!("Unexpected member kind: {:?}", self.kind),
|
||||
Stmt::FunctionDef(ast::StmtFunctionDef { name, .. })
|
||||
| Stmt::AsyncFunctionDef(ast::StmtAsyncFunctionDef { name, .. })
|
||||
| Stmt::ClassDef(ast::StmtClassDef { name, .. }) => Some(name),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -100,6 +109,13 @@ impl Definition<'_> {
|
|||
})
|
||||
)
|
||||
}
|
||||
|
||||
pub fn name(&self) -> Option<&str> {
|
||||
match self {
|
||||
Definition::Module(module) => module.name(),
|
||||
Definition::Member(member) => member.name(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// The definitions within a Python program indexed by [`DefinitionId`].
|
||||
|
@ -134,8 +150,9 @@ impl<'a> Definitions<'a> {
|
|||
MemberKind::Class => {
|
||||
let parent = &definitions[member.parent];
|
||||
if parent.visibility.is_private()
|
||||
|| exports
|
||||
.map_or(false, |exports| !exports.contains(&member.name()))
|
||||
|| exports.map_or(false, |exports| {
|
||||
member.name().map_or(false, |name| !exports.contains(&name))
|
||||
})
|
||||
{
|
||||
Visibility::Private
|
||||
} else {
|
||||
|
@ -163,8 +180,9 @@ impl<'a> Definitions<'a> {
|
|||
MemberKind::Function => {
|
||||
let parent = &definitions[member.parent];
|
||||
if parent.visibility.is_private()
|
||||
|| exports
|
||||
.map_or(false, |exports| !exports.contains(&member.name()))
|
||||
|| exports.map_or(false, |exports| {
|
||||
member.name().map_or(false, |name| !exports.contains(&name))
|
||||
})
|
||||
{
|
||||
Visibility::Private
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue