Skip to content

Commit 61a3a5b

Browse files
committed
refactor: Merge HasFunctions and HasSubs into one trait
`HasSubprograms`
1 parent 9c2e68e commit 61a3a5b

10 files changed

Lines changed: 17 additions & 26 deletions

File tree

rusty_linter/src/converter/common/context.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@ impl TypeResolver for Context {
1616
}
1717
}
1818

19-
impl HasFunctions for Context {
19+
impl HasSubprograms for Context {
2020
fn functions(&self) -> &SignatureMap {
2121
self.pre_linter_result.functions()
2222
}
23-
}
24-
25-
impl HasSubs for Context {
2623
fn subs(&self) -> &SignatureMap {
2724
self.pre_linter_result.subs()
2825
}

rusty_linter/src/converter/dim_rules/validation.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::converter::common::Context;
22
use crate::core::IntoTypeQualifier;
3-
use crate::core::{HasFunctions, HasSubs, HasUserDefinedTypes};
3+
use crate::core::{HasSubprograms, HasUserDefinedTypes};
44
use crate::core::{LintError, LintErrorPos};
55
use crate::names::ManyNamesTrait;
66
use rusty_common::{AtPos, Position, Positioned};
@@ -24,7 +24,7 @@ where
2424
cannot_clash_with_local_constants(var_name, ctx, pos)
2525
}
2626

27-
fn cannot_clash_with_subs<T, C: HasSubs>(
27+
fn cannot_clash_with_subs<T, C: HasSubprograms>(
2828
var_name: &TypedName<T>,
2929
ctx: &C,
3030
pos: Position,

rusty_linter/src/converter/expr_rules/variable.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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, HasSubs, IntoQualified, IntoTypeQualifier, LintResult,
4+
qualifier_of_const_variant, HasSubprograms, IntoQualified, IntoTypeQualifier, LintResult,
55
};
66
use crate::core::{LintError, LintErrorPos};
77
use crate::names::ManyNamesTrait;

rusty_linter/src/converter/statement/const_rules.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::converter::common::Context;
22
use crate::core::ConstValueResolver;
3-
use crate::core::{qualifier_of_const_variant, CastVariant, HasFunctions, HasSubs, LintResult};
3+
use crate::core::{qualifier_of_const_variant, CastVariant, HasSubprograms, LintResult};
44
use crate::core::{LintError, LintErrorPos};
55
use rusty_common::*;
66
use rusty_parser::*;

rusty_linter/src/core/traits.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@ use rusty_parser::{
33
Expression, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier, UserDefinedTypes,
44
};
55

6-
pub trait HasFunctions {
6+
pub trait HasSubprograms {
77
fn functions(&self) -> &SignatureMap;
8-
}
9-
10-
pub trait HasSubs {
118
fn subs(&self) -> &SignatureMap;
129
}
1310

rusty_linter/src/post_linter/post_linter.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
use crate::core::HasSubprograms;
12
use crate::core::LintErrorPos;
2-
use crate::core::{HasFunctions, HasSubs};
33
use crate::post_linter::expression_reducer::ExpressionReducer;
44
use crate::post_linter::post_conversion_linter::PostConversionLinter;
55
use crate::post_linter::{
@@ -11,7 +11,7 @@ use rusty_parser::Program;
1111

1212
pub fn post_linter(
1313
result: Program,
14-
linter_context: &(impl HasFunctions + HasSubs),
14+
linter_context: &impl HasSubprograms,
1515
) -> Result<Program, LintErrorPos> {
1616
// lint
1717
apply_linters(&result, linter_context)?;
@@ -22,7 +22,7 @@ pub fn post_linter(
2222

2323
fn apply_linters(
2424
result: &Program,
25-
linter_context: &(impl HasFunctions + HasSubs),
25+
linter_context: &impl HasSubprograms,
2626
) -> Result<(), LintErrorPos> {
2727
let mut linter = for_next_counter_match_linter::ForNextCounterMatch {};
2828
linter.visit_program(result)?;

rusty_linter/src/post_linter/undefined_function_reducer.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::expression_reducer::*;
22
use crate::core::binary_cast;
3-
use crate::core::HasFunctions;
3+
use crate::core::HasSubprograms;
44
use crate::core::LintErrorPos;
55
use rusty_parser::Expression;
66

@@ -11,7 +11,7 @@ pub struct UndefinedFunctionReducer<'a, R> {
1111

1212
impl<'a, R> ExpressionReducer for UndefinedFunctionReducer<'a, R>
1313
where
14-
R: HasFunctions,
14+
R: HasSubprograms,
1515
{
1616
fn visit_expression(&mut self, expression: Expression) -> Result<Expression, LintErrorPos> {
1717
match expression {

rusty_linter/src/post_linter/user_defined_function_linter.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ fn has_at_least_one_arg(opt_args: Option<&Expressions>) -> bool {
152152

153153
impl<'a, R> UserDefinedFunctionLinter<'a, R>
154154
where
155-
R: HasFunctions,
155+
R: HasSubprograms,
156156
{
157157
fn visit_function(
158158
&self,
@@ -198,7 +198,7 @@ where
198198

199199
impl<'a, R> PostConversionLinter for UserDefinedFunctionLinter<'a, R>
200200
where
201-
R: HasFunctions,
201+
R: HasSubprograms,
202202
{
203203
fn visit_expression(&mut self, expr_pos: &ExpressionPos) -> Result<(), LintErrorPos> {
204204
let Positioned { element: e, pos } = expr_pos;

rusty_linter/src/post_linter/user_defined_sub_linter.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::post_conversion_linter::PostConversionLinter;
22
use super::user_defined_function_linter::lint_call_args;
3-
use crate::core::HasSubs;
3+
use crate::core::HasSubprograms;
44
use crate::core::{LintError, LintErrorPos};
55
use rusty_common::*;
66
use rusty_parser::Expressions;
@@ -11,7 +11,7 @@ pub struct UserDefinedSubLinter<'a, R> {
1111

1212
impl<'a, R> PostConversionLinter for UserDefinedSubLinter<'a, R>
1313
where
14-
R: HasSubs,
14+
R: HasSubprograms,
1515
{
1616
fn visit_sub_call(
1717
&mut self,

rusty_linter/src/pre_linter/pre_linter_result.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use rusty_parser::UserDefinedTypes;
22

33
use crate::{
4-
core::{HasFunctions, HasSubs, SignatureMap},
4+
core::{HasSubprograms, SignatureMap},
55
HasUserDefinedTypes,
66
};
77

@@ -32,13 +32,10 @@ impl From<PreLinterResult> for UserDefinedTypes {
3232
}
3333
}
3434

35-
impl HasFunctions for PreLinterResult {
35+
impl HasSubprograms for PreLinterResult {
3636
fn functions(&self) -> &SignatureMap {
3737
&self.functions
3838
}
39-
}
40-
41-
impl HasSubs for PreLinterResult {
4239
fn subs(&self) -> &SignatureMap {
4340
&self.subs
4441
}

0 commit comments

Comments
 (0)