use crate::common::{create_config, fixture_path};
#[test]
fn instanceof_narrowed_method_call_credits_class_member() {
let root = fixture_path("issue-845-instanceof-narrowing");
let config = create_config(root);
let results = fallow_core::analyze(&config).expect("analysis should succeed");
let unused_members: Vec<String> = results
.unused_class_members
.iter()
.map(|m| format!("{}.{}", m.member.parent_name, m.member.member_name))
.collect();
assert!(
!unused_members.contains(&"BaseException.getMessage".to_string()),
"method reached via `instanceof` narrowing must be credited: {unused_members:?}"
);
assert!(
unused_members.contains(&"BaseException.unusedHelper".to_string()),
"a genuinely-unused member on the same class must still report: {unused_members:?}"
);
}