Skip to content

Commit 7f87d1f

Browse files
committed
Removed PreLinterResult
1 parent 20525f7 commit 7f87d1f

6 files changed

Lines changed: 20 additions & 49 deletions

File tree

rusty_linter/src/converter/mod.rs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,7 @@
11
//! Converter is the main logic of the linter, where most validation takes place,
22
//! as well as resolving variable types.
3-
mod common;
3+
//! To convert a program, invoke the convert method of the Convertible trait on it.
4+
pub mod common;
45
mod dim_rules;
56
mod expr_rules;
67
mod statement;
7-
8-
use rusty_parser::Program;
9-
10-
use crate::LinterContext;
11-
use crate::converter::common::Convertible;
12-
use crate::core::LintErrorPos;
13-
use crate::pre_linter::PreLinterResult;
14-
15-
pub fn convert(
16-
program: Program,
17-
pre_linter_result: PreLinterResult,
18-
) -> Result<(LinterContext, Program), LintErrorPos> {
19-
let mut context = LinterContext::new(pre_linter_result);
20-
program.convert(&mut context).map(|p| (context, p))
21-
}

rusty_linter/src/core/linter_context.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use rusty_parser::*;
22

33
use crate::core::*;
44
use crate::names::Names;
5-
use crate::pre_linter::PreLinterResult;
65

76
pub struct LinterContext {
87
pub functions: SignatureMap,
@@ -19,11 +18,15 @@ impl TypeResolver for LinterContext {
1918
}
2019

2120
impl LinterContext {
22-
pub fn new(pre_linter_result: PreLinterResult) -> Self {
21+
pub fn new(
22+
functions: SignatureMap,
23+
subs: SignatureMap,
24+
user_defined_types: UserDefinedTypes,
25+
) -> Self {
2326
Self {
24-
functions: pre_linter_result.functions,
25-
subs: pre_linter_result.subs,
26-
user_defined_types: pre_linter_result.user_defined_types,
27+
functions,
28+
subs,
29+
user_defined_types,
2730
resolver: TypeResolverImpl::new(),
2831
names: Names::new(),
2932
}

rusty_linter/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ pub use self::core::{
1313
CastVariant, LintError, LinterContext, QBNumberCast, ScopeName, qualifier_of_variant
1414
};
1515
pub use self::names::Names;
16-
use crate::converter::convert;
16+
use crate::converter::common::Convertible;
1717
use crate::core::LintErrorPos;
1818
use crate::post_linter::post_linter;
1919
use crate::pre_linter::pre_lint_program;
2020

2121
pub fn lint(program: Program) -> Result<(Program, LinterContext), LintErrorPos> {
2222
// first pass, get user defined types and functions/subs
23-
let pre_linter_result = pre_lint_program(&program)?;
23+
let mut context = pre_lint_program(&program)?;
2424
// convert to fully typed
25-
let (context, program) = convert(program, pre_linter_result)?;
25+
let program = program.convert(&mut context)?;
2626
// lint and reduce
2727
post_linter(program, &context).map(|program| (program, context))
2828
}

rusty_linter/src/pre_linter/main.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use rusty_common::*;
22
use rusty_parser::*;
33

44
use crate::core::*;
5+
use crate::pre_linter::ConstantMap;
56
use crate::pre_linter::sub_program_context::SubprogramContext;
6-
use crate::pre_linter::{ConstantMap, PreLinterResult};
77

88
// CONST -> stored in global_constants
99
// DEFINT -> stored in resolver
@@ -20,17 +20,17 @@ struct MainContext {
2020
declaration_pos: Position,
2121
}
2222

23-
pub fn pre_lint_program(program: &Program) -> Result<PreLinterResult, LintErrorPos> {
23+
pub fn pre_lint_program(program: &Program) -> Result<LinterContext, LintErrorPos> {
2424
let mut visitor = GlobalVisitor::new(MainContext::default());
2525
visitor.visit(program)?;
2626
let ctx = visitor.delegate();
2727
ctx.post_visit_functions()?;
2828
ctx.post_visit_subs()?;
29-
Ok(PreLinterResult {
30-
functions: ctx.functions.implementations(),
31-
subs: ctx.subs.implementations(),
32-
user_defined_types: ctx.user_defined_types,
33-
})
29+
Ok(LinterContext::new(
30+
ctx.functions.implementations(),
31+
ctx.subs.implementations(),
32+
ctx.user_defined_types,
33+
))
3434
}
3535

3636
impl SetPosition for MainContext {

rusty_linter/src/pre_linter/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
mod constant_map;
22
mod main;
3-
mod pre_linter_result;
43
mod sub_program_context;
54
mod user_defined_type_visitor;
65

76
pub use self::constant_map::*;
87
pub use self::main::*;
9-
pub use self::pre_linter_result::*;

rusty_linter/src/pre_linter/pre_linter_result.rs

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)