From 04f121403a1a84564f52398ecfc35dcfa1ea8015 Mon Sep 17 00:00:00 2001 From: pca006132 Date: Fri, 8 Jan 2021 12:58:33 +0800 Subject: [PATCH] moved type check code to submodule --- nac3core/src/lib.rs | 8 +------- .../context/inference_context.rs | 2 +- nac3core/src/{ => type_check}/context/mod.rs | 0 .../context/top_level_context.rs | 2 +- .../{ => type_check}/expression_inference.rs | 17 +++++++++-------- nac3core/src/{ => type_check}/inference_core.rs | 11 ++++++----- nac3core/src/{ => type_check}/magic_methods.rs | 0 nac3core/src/type_check/mod.rs | 7 +++++++ nac3core/src/{ => type_check}/primitives.rs | 2 +- .../src/{ => type_check}/statement_check.rs | 17 ++++++++--------- nac3core/src/{ => type_check}/typedef.rs | 0 11 files changed, 34 insertions(+), 32 deletions(-) rename nac3core/src/{ => type_check}/context/inference_context.rs (99%) rename nac3core/src/{ => type_check}/context/mod.rs (100%) rename nac3core/src/{ => type_check}/context/top_level_context.rs (99%) rename nac3core/src/{ => type_check}/expression_inference.rs (99%) rename nac3core/src/{ => type_check}/inference_core.rs (99%) rename nac3core/src/{ => type_check}/magic_methods.rs (100%) create mode 100644 nac3core/src/type_check/mod.rs rename nac3core/src/{ => type_check}/primitives.rs (99%) rename nac3core/src/{ => type_check}/statement_check.rs (97%) rename nac3core/src/{ => type_check}/typedef.rs (100%) diff --git a/nac3core/src/lib.rs b/nac3core/src/lib.rs index 6e031979eb..25aa9c7960 100644 --- a/nac3core/src/lib.rs +++ b/nac3core/src/lib.rs @@ -5,13 +5,7 @@ extern crate num_bigint; extern crate inkwell; extern crate rustpython_parser; -pub mod expression_inference; -pub mod inference_core; -pub mod statement_check; -mod magic_methods; -pub mod primitives; -pub mod typedef; -pub mod context; +pub mod type_check; use std::error::Error; use std::fmt; diff --git a/nac3core/src/context/inference_context.rs b/nac3core/src/type_check/context/inference_context.rs similarity index 99% rename from nac3core/src/context/inference_context.rs rename to nac3core/src/type_check/context/inference_context.rs index bcea7e8b9c..7c34303109 100644 --- a/nac3core/src/context/inference_context.rs +++ b/nac3core/src/type_check/context/inference_context.rs @@ -1,5 +1,5 @@ +use super::super::typedef::*; use super::TopLevelContext; -use crate::typedef::*; use std::boxed::Box; use std::collections::HashMap; diff --git a/nac3core/src/context/mod.rs b/nac3core/src/type_check/context/mod.rs similarity index 100% rename from nac3core/src/context/mod.rs rename to nac3core/src/type_check/context/mod.rs diff --git a/nac3core/src/context/top_level_context.rs b/nac3core/src/type_check/context/top_level_context.rs similarity index 99% rename from nac3core/src/context/top_level_context.rs rename to nac3core/src/type_check/context/top_level_context.rs index 004b271e4b..d7c4ca23ca 100644 --- a/nac3core/src/context/top_level_context.rs +++ b/nac3core/src/type_check/context/top_level_context.rs @@ -1,4 +1,4 @@ -use crate::typedef::*; +use super::super::typedef::*; use std::collections::HashMap; use std::rc::Rc; diff --git a/nac3core/src/expression_inference.rs b/nac3core/src/type_check/expression_inference.rs similarity index 99% rename from nac3core/src/expression_inference.rs rename to nac3core/src/type_check/expression_inference.rs index 2405982c09..549943606d 100644 --- a/nac3core/src/expression_inference.rs +++ b/nac3core/src/type_check/expression_inference.rs @@ -1,8 +1,8 @@ -use crate::context::InferenceContext; -use crate::inference_core::resolve_call; -use crate::magic_methods::*; -use crate::primitives::*; -use crate::typedef::{Type, TypeEnum::*}; +use super::context::InferenceContext; +use super::inference_core::resolve_call; +use super::magic_methods::*; +use super::primitives::*; +use super::typedef::{Type, TypeEnum::*}; use rustpython_parser::ast::{ Comparison, Comprehension, ComprehensionKind, Expression, ExpressionType, Operator, UnaryOperator, @@ -370,9 +370,10 @@ fn infer_list_comprehension<'b: 'a, 'a>( #[cfg(test)] mod test { - use super::*; - use crate::context::*; - use crate::typedef::*; + use super::{ + super::{context::*, typedef::*}, + *, + }; use rustpython_parser::parser::parse_expression; use std::collections::HashMap; use std::rc::Rc; diff --git a/nac3core/src/inference_core.rs b/nac3core/src/type_check/inference_core.rs similarity index 99% rename from nac3core/src/inference_core.rs rename to nac3core/src/type_check/inference_core.rs index 8e7796a35c..ec8f403b5e 100644 --- a/nac3core/src/inference_core.rs +++ b/nac3core/src/type_check/inference_core.rs @@ -1,5 +1,5 @@ -use crate::context::InferenceContext; -use crate::typedef::{TypeEnum::*, *}; +use super::context::InferenceContext; +use super::typedef::{TypeEnum::*, *}; use std::collections::HashMap; fn find_subst( @@ -200,9 +200,10 @@ pub fn resolve_call( #[cfg(test)] mod tests { - use super::*; - use crate::context::TopLevelContext; - use crate::primitives::*; + use super::{ + super::{context::*, primitives::*}, + *, + }; use std::rc::Rc; fn get_inference_context(ctx: TopLevelContext) -> InferenceContext { diff --git a/nac3core/src/magic_methods.rs b/nac3core/src/type_check/magic_methods.rs similarity index 100% rename from nac3core/src/magic_methods.rs rename to nac3core/src/type_check/magic_methods.rs diff --git a/nac3core/src/type_check/mod.rs b/nac3core/src/type_check/mod.rs new file mode 100644 index 0000000000..dfad981a2b --- /dev/null +++ b/nac3core/src/type_check/mod.rs @@ -0,0 +1,7 @@ +pub mod context; +pub mod expression_inference; +pub mod inference_core; +mod magic_methods; +pub mod primitives; +pub mod statement_check; +pub mod typedef; diff --git a/nac3core/src/primitives.rs b/nac3core/src/type_check/primitives.rs similarity index 99% rename from nac3core/src/primitives.rs rename to nac3core/src/type_check/primitives.rs index ced24da392..0aa076ddf6 100644 --- a/nac3core/src/primitives.rs +++ b/nac3core/src/type_check/primitives.rs @@ -1,5 +1,5 @@ +use super::context::*; use super::typedef::{TypeEnum::*, *}; -use crate::context::*; use std::collections::HashMap; pub const TUPLE_TYPE: ParamId = ParamId(0); diff --git a/nac3core/src/statement_check.rs b/nac3core/src/type_check/statement_check.rs similarity index 97% rename from nac3core/src/statement_check.rs rename to nac3core/src/type_check/statement_check.rs index 9506763ae3..efaca14395 100644 --- a/nac3core/src/statement_check.rs +++ b/nac3core/src/type_check/statement_check.rs @@ -1,9 +1,9 @@ -use crate::context::InferenceContext; -use crate::expression_inference::{infer_expr, infer_simple_binding}; -use crate::inference_core::resolve_call; -use crate::magic_methods::binop_assign_name; -use crate::primitives::*; -use crate::typedef::{Type, TypeEnum::*}; +use super::context::InferenceContext; +use super::expression_inference::{infer_expr, infer_simple_binding}; +use super::inference_core::resolve_call; +use super::magic_methods::binop_assign_name; +use super::primitives::*; +use super::typedef::{Type, TypeEnum::*}; use rustpython_parser::ast::*; pub fn check_stmts<'b: 'a, 'a>( @@ -20,7 +20,7 @@ pub fn check_stmts<'b: 'a, 'a>( } StatementType::If { test, body, orelse } => { if check_if(ctx, test, body.as_slice(), orelse)? { - return Ok(true) + return Ok(true); } } StatementType::While { test, body, orelse } => { @@ -244,8 +244,7 @@ fn check_for_stmt<'b: 'a, 'a>( #[cfg(test)] mod test { - use super::*; - use crate::context::*; + use super::{super::context::*, *}; use indoc::indoc; use rustpython_parser::parser::parse_program; diff --git a/nac3core/src/typedef.rs b/nac3core/src/type_check/typedef.rs similarity index 100% rename from nac3core/src/typedef.rs rename to nac3core/src/type_check/typedef.rs