Skip to content

Commit f91df75

Browse files
committed
refactor(linter): Refactor types module into smaller modules
1 parent 9f531df commit f91df75

6 files changed

Lines changed: 49 additions & 40 deletions

File tree

rusty_linter/src/core/mod.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,31 @@
11
mod casting;
22
mod const_value_resolver;
33
mod error;
4+
mod name_context;
45
mod qb_casting;
56
mod qualify_variant;
67
mod ref_to_value_visitor;
8+
mod resolved_param_type;
9+
mod signature;
710
mod string_length;
11+
mod subprogram_name;
812
mod traits;
913
mod type_resolver;
1014
mod type_resolver_impl;
11-
mod types;
1215
mod visitor;
1316

1417
pub use self::casting::*;
1518
pub use self::const_value_resolver::*;
1619
pub use self::error::*;
20+
pub use self::name_context::*;
1721
pub use self::qb_casting::*;
1822
pub use self::qualify_variant::*;
1923
pub use self::ref_to_value_visitor::*;
24+
pub use self::resolved_param_type::*;
25+
pub use self::signature::*;
2026
pub use self::string_length::*;
27+
pub use self::subprogram_name::*;
2128
pub use self::traits::*;
2229
pub use self::type_resolver::*;
2330
pub use self::type_resolver_impl::*;
24-
pub use self::types::*;
2531
pub use self::visitor::*;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
2+
pub enum NameContext {
3+
Global,
4+
Sub,
5+
Function,
6+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use rusty_parser::{BareName, BuiltInStyle, TypeQualifier};
2+
3+
/// A resolved parameter type.
4+
#[derive(PartialEq)]
5+
pub enum ResolvedParamType {
6+
/// A built-in type.
7+
/// The type qualifier indicates the type.
8+
/// The style indicates how the parameter was declared:
9+
/// Compact: e.g. `A$` or Extended e.g. `A AS STRING`
10+
BuiltIn(TypeQualifier, BuiltInStyle),
11+
12+
/// A user defined type.
13+
UserDefined(BareName),
14+
15+
/// An array type.
16+
/// Dimensions are not allowed for parameter types.
17+
Array(Box<Self>),
18+
}
19+
20+
/// A collection of resolved parameter types.
21+
pub type ResolvedParamTypes = Vec<ResolvedParamType>;
Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,9 @@
11
use std::collections::HashMap;
22

33
use rusty_common::Positioned;
4-
use rusty_parser::{BareName, BuiltInStyle, Name, TypeQualifier};
4+
use rusty_parser::{BareName, TypeQualifier};
55

6-
/// Holds the resolved name of a subprogram.
7-
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
8-
pub enum SubprogramName {
9-
/// The resolved qualified name of a function.
10-
Function(Name),
11-
12-
/// The resolved name of a sub.
13-
Sub(BareName),
14-
}
15-
16-
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
17-
pub enum NameContext {
18-
Global,
19-
Sub,
20-
Function,
21-
}
22-
23-
/// A resolved parameter type.
24-
#[derive(PartialEq)]
25-
pub enum ResolvedParamType {
26-
/// A built-in type.
27-
/// The type qualifier indicates the type.
28-
/// The style indicates how the parameter was declared:
29-
/// Compact: e.g. `A$` or Extended e.g. `A AS STRING`
30-
BuiltIn(TypeQualifier, BuiltInStyle),
31-
32-
/// A user defined type.
33-
UserDefined(BareName),
34-
35-
/// An array type.
36-
/// Dimensions are not allowed for parameter types.
37-
Array(Box<Self>),
38-
}
39-
40-
/// A collection of resolved parameter types.
41-
pub type ResolvedParamTypes = Vec<ResolvedParamType>;
6+
use crate::core::ResolvedParamTypes;
427

438
/// The signature of a FUNCTION or SUB.
449
/// Consists of the resolved parameter types and, in case of a FUNCTION, the return type.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use rusty_parser::{BareName, Name};
2+
3+
/// Holds the resolved name of a subprogram.
4+
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
5+
pub enum SubprogramName {
6+
/// The resolved qualified name of a function.
7+
Function(Name),
8+
9+
/// The resolved name of a sub.
10+
Sub(BareName),
11+
}

rusty_linter/src/pre_linter/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ where
188188
}
189189

190190
/// This is the same as [Parameter],
191-
/// but the memebers are references.
191+
/// but the members are references.
192192
/// It's needed due to the recursive implementation of `RefToValueVisitor`
193193
/// and the recursive (`Box`) implementation of `ParamType::Array`.
194194
struct RefParamName<'a>(&'a BareName, &'a ParamType);

0 commit comments

Comments
 (0)