Fix unqualified unused import false positive

If we exposed a symbol in an import and used it both unqualified
and qualified, we'd produce an unused warning false positive.

This happened because we were using a single bit flag to determine
whether a value was used qualified or unqualified.
This commit is contained in:
Agus Zubiaga 2024-04-01 00:07:15 -03:00
parent 1f347f6ca1
commit b56f029a09
No known key found for this signature in database
2 changed files with 35 additions and 2 deletions

View file

@ -1079,6 +1079,38 @@ fn unused_imports() {
)
}
#[test]
fn used_exposed_and_qualified() {
let modules = vec![
(
"Dep.roc",
indoc!(
r#"
interface Dep exposes [one] imports []
one = 1
"#
),
),
(
"Main.roc",
indoc!(
r#"
interface Main exposes [qualified, exposed] imports []
import Dep exposing [one]
qualified = Dep.one
exposed = one
"#
),
),
];
let result = multiple_modules("used_exposed_and_qualified", modules);
assert!(result.is_ok())
}
#[test]
fn import_with_alias() {
let modules = vec![