Skip to content

Commit d17e478

Browse files
committed
refactor: Implement ConstLookup trait for names_inner
1 parent c5cfbbc commit d17e478

5 files changed

Lines changed: 20 additions & 17 deletions

File tree

rusty_linter/src/converter/dim_rules/validation.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use crate::converter::common::Context;
2-
use crate::core::IntoTypeQualifier;
2+
use crate::core::{ConstLookup, IntoTypeQualifier};
33
use crate::core::{HasSubprograms, HasUserDefinedTypes};
44
use crate::core::{LintError, LintErrorPos};
5-
use crate::names::ManyNamesTrait;
65
use rusty_common::{AtPos, Position, Positioned};
76
use rusty_parser::{AsBareName, DimVar, Parameter, TypedName, VarType};
87

rusty_linter/src/converter/expr_rules/variable.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::converter::common::{Context, ExprContext, ExprContextPos};
22
use crate::converter::expr_rules::qualify_name::*;
33
use crate::core::{
4-
qualifier_of_const_variant, HasSubprograms, IntoQualified, IntoTypeQualifier, LintResult,
4+
qualifier_of_const_variant, ConstLookup, HasSubprograms, IntoQualified, IntoTypeQualifier,
5+
LintResult,
56
};
67
use crate::core::{LintError, LintErrorPos};
7-
use crate::names::ManyNamesTrait;
88
use rusty_common::{AtPos, Position};
99
use rusty_parser::{AsBareName, BuiltInFunction};
1010
use rusty_parser::{

rusty_linter/src/names/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@ mod traits;
77

88
pub use implicit_vars::ImplicitVars;
99
pub use names::Names;
10-
pub use traits::*;

rusty_linter/src/names/names_inner.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ use std::collections::HashMap;
33
use rusty_parser::{AsBareName, BareName, Name, TypeQualifier, VariableInfo};
44
use rusty_variant::Variant;
55

6-
use crate::names::{
7-
name_info::NameInfo,
8-
traits::{ManyNamesTrait, SingleNameTrait},
6+
use crate::{
7+
core::ConstLookup,
8+
names::{
9+
name_info::NameInfo,
10+
traits::{ManyNamesTrait, SingleNameTrait},
11+
},
912
};
1013

1114
/// Stores information about multiple constants or variable names.
@@ -57,6 +60,14 @@ impl NamesInner {
5760
}
5861
}
5962

63+
impl ConstLookup for NamesInner {
64+
fn get_const_value(&self, bare_name: &BareName) -> Option<&rusty_variant::Variant> {
65+
self.0
66+
.get(bare_name)
67+
.and_then(|name_info| name_info.get_const_value())
68+
}
69+
}
70+
6071
impl ManyNamesTrait for NamesInner {
6172
fn get_compact(&self, bare_name: &BareName, qualifier: TypeQualifier) -> Option<&VariableInfo> {
6273
self.0
@@ -70,12 +81,6 @@ impl ManyNamesTrait for NamesInner {
7081
.and_then(|name_info| name_info.get_extended())
7182
}
7283

73-
fn get_const_value(&self, bare_name: &BareName) -> Option<&rusty_variant::Variant> {
74-
self.0
75-
.get(bare_name)
76-
.and_then(|name_info| name_info.get_const_value())
77-
}
78-
7984
fn collect_var_info(
8085
&self,
8186
bare_name: &BareName,

rusty_linter/src/names/traits.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use rusty_parser::{BareName, BuiltInStyle, TypeQualifier, VariableInfo};
22
use rusty_variant::Variant;
33

4+
use crate::core::ConstLookup;
5+
46
pub trait SingleNameTrait {
57
fn get_compact(&self, qualifier: TypeQualifier) -> Option<&VariableInfo>;
68

@@ -13,13 +15,11 @@ pub trait SingleNameTrait {
1315
fn insert_compact(&mut self, variable_info: VariableInfo);
1416
}
1517

16-
pub trait ManyNamesTrait {
18+
pub trait ManyNamesTrait: ConstLookup {
1719
fn get_compact(&self, bare_name: &BareName, qualifier: TypeQualifier) -> Option<&VariableInfo>;
1820

1921
fn get_extended(&self, bare_name: &BareName) -> Option<&VariableInfo>;
2022

21-
fn get_const_value(&self, bare_name: &BareName) -> Option<&Variant>;
22-
2323
fn collect_var_info(
2424
&self,
2525
bare_name: &BareName,

0 commit comments

Comments
 (0)