Fix module constant usage warnings.
This commit is contained in:
parent
55d381fbfc
commit
75c059bf65
|
@ -3237,3 +3237,30 @@ fn extraneous_fallback_on_exhaustive_handlers() {
|
|||
Err((_, Error::UnexpectedValidatorFallback { .. }))
|
||||
))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn constant_usage() {
|
||||
let source_code = r#"
|
||||
pub const some_bool_constant: Bool = True
|
||||
|
||||
const some_int_constant: Int = 42
|
||||
|
||||
const some_string_constant: String = @"Aiken"
|
||||
|
||||
test foo() {
|
||||
some_int_constant == 42
|
||||
}
|
||||
"#;
|
||||
|
||||
let result = check(parse(source_code));
|
||||
assert!(result.is_ok());
|
||||
|
||||
let (warnings, _) = result.unwrap();
|
||||
assert!(matches!(
|
||||
&warnings[..],
|
||||
[Warning::UnusedPrivateModuleConstant {
|
||||
name,
|
||||
..
|
||||
}] if name == "some_string_constant"
|
||||
));
|
||||
}
|
||||
|
|
|
@ -632,6 +632,14 @@ fn infer_definition(
|
|||
location,
|
||||
)?;
|
||||
|
||||
// NOTE: The assignment above is only a convenient way to create the TypedExpression
|
||||
// that will be reduced at compile-time. We must increment its usage to not
|
||||
// automatically trigger a warning since we are virtually creating a block with a
|
||||
// single assignment that is then left unused.
|
||||
//
|
||||
// The usage of the constant is tracked through different means.
|
||||
environment.increment_usage(&name);
|
||||
|
||||
let typed_expr = match typed_assignment {
|
||||
TypedExpr::Assignment { value, .. } => value,
|
||||
_ => unreachable!("infer_assignment inferred something else than an assignment?"),
|
||||
|
|
Loading…
Reference in New Issue