Skip to content

Commit c5cfbbc

Browse files
committed
chore: Improve naming of ConstValueResolver for clarity
* Renamed `ConstValueResolver` to `ConstEvaluator` * Renamed `resolve_const` to `eval_const` * Renamed `get_resolved_constant` to `get_const_value`
1 parent 69cac0e commit c5cfbbc

5 files changed

Lines changed: 26 additions & 24 deletions

File tree

rusty_linter/src/converter/statement/const_rules.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::converter::common::Context;
2-
use crate::core::ConstValueResolver;
2+
use crate::core::ConstEvaluator;
33
use crate::core::{qualifier_of_const_variant, CastVariant, HasSubprograms, LintResult};
44
use crate::core::{LintError, LintErrorPos};
55
use rusty_common::*;
@@ -40,7 +40,7 @@ fn new_const(
4040
element: const_name,
4141
pos,
4242
} = left_side;
43-
let value_before_casting = ctx.names.resolve_const(&right_side)?;
43+
let value_before_casting = ctx.names.eval_const(&right_side)?;
4444
let value_qualifier = qualifier_of_const_variant(&value_before_casting);
4545
let final_value = if const_name.is_bare_or_of_type(value_qualifier) {
4646
value_before_casting

rusty_linter/src/core/const_value_resolver.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,37 @@ use rusty_parser::{AsBareName, Expression, ExpressionPos, Operator, TypeQualifie
44
use rusty_variant::Variant;
55
use std::cmp::Ordering;
66

7+
/// A lookup map of resolved constant values.
78
pub trait ConstLookup {
8-
fn get_resolved_constant(&self, name: &CaseInsensitiveString) -> Option<&Variant>;
9+
/// Gets the value ([Variant]) of a constant.
10+
fn get_const_value(&self, name: &CaseInsensitiveString) -> Option<&Variant>;
911
}
1012

11-
/// Resolves the value ([Variant]) of a `CONST` expression.
12-
pub trait ConstValueResolver<T> {
13-
/// Resolves the value ([Variant]) of a `CONST` expression.
14-
fn resolve_const(&self, item: &T) -> Result<Variant, LintErrorPos>;
13+
/// Evaluates the value ([Variant]) of a `CONST` expression.
14+
pub trait ConstEvaluator<T> {
15+
/// Evaluates the value ([Variant]) of a `CONST` expression.
16+
fn eval_const(&self, item: &T) -> Result<Variant, LintErrorPos>;
1517
}
1618

17-
impl<S> ConstValueResolver<Positioned<&CaseInsensitiveString>> for S
19+
impl<S> ConstEvaluator<Positioned<&CaseInsensitiveString>> for S
1820
where
1921
S: ConstLookup,
2022
{
21-
fn resolve_const(
23+
fn eval_const(
2224
&self,
2325
item: &Positioned<&CaseInsensitiveString>,
2426
) -> Result<Variant, LintErrorPos> {
25-
self.get_resolved_constant(&item.element)
27+
self.get_const_value(&item.element)
2628
.cloned()
2729
.ok_or(LintError::InvalidConstant.at_pos(item.pos))
2830
}
2931
}
3032

31-
impl<S> ConstValueResolver<ExpressionPos> for S
33+
impl<S> ConstEvaluator<ExpressionPos> for S
3234
where
3335
S: ConstLookup,
3436
{
35-
fn resolve_const(&self, item: &ExpressionPos) -> Result<Variant, LintErrorPos> {
37+
fn eval_const(&self, item: &ExpressionPos) -> Result<Variant, LintErrorPos> {
3638
let Positioned {
3739
element: expression,
3840
pos,
@@ -46,7 +48,7 @@ where
4648
Expression::Variable(name_expr, _) => {
4749
let bare_name = name_expr.as_bare_name();
4850
let bare_name_pos = Positioned::new(bare_name, *pos);
49-
let v = self.resolve_const(&bare_name_pos)?;
51+
let v = self.eval_const(&bare_name_pos)?;
5052
if let Some(qualifier) = name_expr.qualifier() {
5153
let v_q = match v {
5254
Variant::VDouble(_) => TypeQualifier::HashDouble,
@@ -68,8 +70,8 @@ where
6870
}
6971
}
7072
Expression::BinaryExpression(op, left, right, _) => {
71-
let v_left = self.resolve_const(left)?;
72-
let v_right = self.resolve_const(right)?;
73+
let v_left = self.eval_const(left)?;
74+
let v_right = self.eval_const(right)?;
7375
(match *op {
7476
Operator::Less => v_left
7577
.try_cmp(&v_right)
@@ -109,15 +111,15 @@ where
109111
.map_err(|e| e.at(right))
110112
}
111113
Expression::UnaryExpression(op, child) => {
112-
let v = self.resolve_const(child)?;
114+
let v = self.eval_const(child)?;
113115
(match *op {
114116
UnaryOperator::Minus => v.negate(),
115117
UnaryOperator::Not => v.unary_not(),
116118
})
117119
.map_err(LintError::from)
118120
.map_err(|e| e.at(child))
119121
}
120-
Expression::Parenthesis(child) => self.resolve_const(child),
122+
Expression::Parenthesis(child) => self.eval_const(child),
121123
Expression::Property(_, _, _)
122124
| Expression::FunctionCall(_, _)
123125
| Expression::ArrayElement(_, _, _)
@@ -126,11 +128,11 @@ where
126128
}
127129
}
128130

129-
impl<S> ConstValueResolver<Box<ExpressionPos>> for S
131+
impl<S> ConstEvaluator<Box<ExpressionPos>> for S
130132
where
131133
S: ConstLookup,
132134
{
133-
fn resolve_const(&self, item: &Box<ExpressionPos>) -> Result<Variant, LintErrorPos> {
134-
self.resolve_const(item.as_ref())
135+
fn eval_const(&self, item: &Box<ExpressionPos>) -> Result<Variant, LintErrorPos> {
136+
self.eval_const(item.as_ref())
135137
}
136138
}

rusty_linter/src/core/string_length.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl<C: ConstLookup + ?Sized> ValidateStringLength<LintError, C> for Expression
3838
}
3939

4040
if let Some(Variant::VInteger(i)) =
41-
const_lookup.get_resolved_constant(name.as_bare_name())
41+
const_lookup.get_const_value(name.as_bare_name())
4242
{
4343
if (1..=MAX_INTEGER).contains(i) {
4444
return Ok(*i as u16);

rusty_linter/src/names/names.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl Names {
243243
}
244244

245245
impl ConstLookup for Names {
246-
fn get_resolved_constant(&self, name: &CaseInsensitiveString) -> Option<&Variant> {
246+
fn get_const_value(&self, name: &CaseInsensitiveString) -> Option<&Variant> {
247247
self.names().get_const_value(name).or_else(|| {
248248
self.global_names()
249249
.and_then(|global_names| global_names.get_const_value(name))

rusty_linter/src/pre_linter/constant_map.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::core::*;
1010
pub struct ConstantMap(HashMap<BareName, Variant>);
1111

1212
impl ConstLookup for ConstantMap {
13-
fn get_resolved_constant(&self, name: &CaseInsensitiveString) -> Option<&Variant> {
13+
fn get_const_value(&self, name: &CaseInsensitiveString) -> Option<&Variant> {
1414
self.0.get(name)
1515
}
1616
}
@@ -20,7 +20,7 @@ impl Visitor<Constant> for ConstantMap {
2020
fn visit(&mut self, element: &Constant) -> VisitResult {
2121
let (name_pos, expression_pos) = element.into();
2222
self.ensure_is_not_already_defined(name_pos)
23-
.and_then(|_| self.resolve_const(expression_pos))
23+
.and_then(|_| self.eval_const(expression_pos))
2424
.and_then(|v| {
2525
Self::cast_resolved_value_to_declared_type(v, &name_pos.element, expression_pos)
2626
})

0 commit comments

Comments
 (0)