perl_module/import_match/
mod.rs1use crate::boundary::contains_standalone_module_token;
7use crate::import::{ModuleImportKind, parse_module_import_head};
8
9#[must_use]
16pub fn line_references_module_import(line: &str, module_name: &str) -> bool {
17 if line.is_empty() || module_name.is_empty() {
18 return false;
19 }
20
21 line.split(';').any(|statement| {
22 let statement = statement.trim();
23 if statement.is_empty() {
24 return false;
25 }
26
27 let Some(parsed) = parse_module_import_head(statement) else {
28 return false;
29 };
30
31 match parsed.kind {
32 ModuleImportKind::Use | ModuleImportKind::Require => parsed.token == module_name,
33 ModuleImportKind::UseParent | ModuleImportKind::UseBase => {
34 contains_standalone_module_token(statement, module_name)
35 }
36 }
37 })
38}