Fix warnings and issues

This commit is contained in:
Sofia 2025-07-25 00:32:28 +03:00
parent 023d3b75b6
commit ea8a833bdf
11 changed files with 13 additions and 52 deletions

View File

@ -1,9 +1,9 @@
// Arithmetic, function calls and imports! // Arithmetic, function calls and imports!
pub fn OneHalf(var1: f32) -> f32 { pub fn test() -> u8 {
return var1 * 1.5; return 5;
} }
pub fn main() -> bool { pub fn main() -> bool {
return 7.5 > 5.001; return 7.5 > (test() as f16);
} }

View File

@ -61,5 +61,5 @@ fn main() {
dbg!(&context); dbg!(&context);
context.compile(); context.compile(None, Vec::new());
} }

View File

@ -8,7 +8,7 @@ use std::{
}; };
use llvm_sys::{ use llvm_sys::{
LLVMAttributeIndex, LLVMIntPredicate, LLVMLinkage, LLVMRealPredicate, LLVMValueKind, LLVMIntPredicate, LLVMLinkage, LLVMRealPredicate, LLVMValueKind,
analysis::LLVMVerifyModule, analysis::LLVMVerifyModule,
core::*, core::*,
debuginfo::*, debuginfo::*,

View File

@ -1,4 +1,4 @@
use std::{cell::RefCell, collections::hash_map::Values, rc::Rc}; use std::{cell::RefCell, rc::Rc};
use crate::builder::InstructionValue; use crate::builder::InstructionValue;

View File

@ -6,8 +6,8 @@ use reid_lib::{
}; };
use crate::mir::{ use crate::mir::{
self, CustomTypeKey, FunctionCall, FunctionDefinition, FunctionDefinitionKind, IfExpression, self, CustomTypeKey, FunctionCall, FunctionDefinitionKind, IfExpression, SourceModuleId,
SourceModuleId, TypeDefinition, TypeKind, WhileStatement, TypeKind, WhileStatement,
}; };
#[derive(Debug)] #[derive(Debug)]

View File

@ -8,8 +8,6 @@ use crate::{
}, },
}; };
use super::TypeKind;
impl mir::Context { impl mir::Context {
pub fn from(modules: Vec<mir::Module>, base: PathBuf) -> mir::Context { pub fn from(modules: Vec<mir::Module>, base: PathBuf) -> mir::Context {
let mut map = ModuleMap::new(); let mut map = ModuleMap::new();

View File

@ -1,4 +1,4 @@
use std::{cell::RefCell, collections::HashMap, hash::Hash, mem, rc::Rc}; use std::{cell::RefCell, collections::HashMap, mem, rc::Rc};
use reid_lib::{ use reid_lib::{
builder::{InstructionValue, TypeValue}, builder::{InstructionValue, TypeValue},

View File

@ -2,42 +2,9 @@ use reid_lib::{builder::InstructionValue, Instr};
use crate::{ use crate::{
codegen::{ErrorKind, Scope, StackValue, StackValueKind}, codegen::{ErrorKind, Scope, StackValue, StackValueKind},
mir::{BinaryOperator, BinopDefinition, FunctionDefinition, FunctionDefinitionKind, TypeKind}, mir::{BinopDefinition, FunctionDefinition, TypeKind},
}; };
fn intrinsic(
name: &str,
ret_ty: TypeKind,
params: Vec<(&str, TypeKind)>,
fun: impl IntrinsicFunction + 'static,
) -> FunctionDefinition {
FunctionDefinition {
name: name.into(),
is_pub: false,
is_imported: false,
return_type: ret_ty,
parameters: params.into_iter().map(|(n, ty)| (n.into(), ty)).collect(),
kind: FunctionDefinitionKind::Intrinsic(Box::new(fun)),
}
}
fn intrinsic_binop(
op: BinaryOperator,
lhs: TypeKind,
rhs: TypeKind,
ret_ty: TypeKind,
fun: impl IntrinsicFunction + 'static,
) -> BinopDefinition {
BinopDefinition {
lhs: ("lhs".to_string(), lhs),
op,
rhs: ("rhs".to_owned(), rhs),
return_type: ret_ty,
fn_kind: FunctionDefinitionKind::Intrinsic(Box::new(fun)),
meta: Default::default(),
}
}
pub fn form_intrinsics() -> Vec<FunctionDefinition> { pub fn form_intrinsics() -> Vec<FunctionDefinition> {
let intrinsics = Vec::new(); let intrinsics = Vec::new();

View File

@ -1,8 +1,4 @@
use std::{ use std::{fmt::Debug, ops::AddAssign, str::Chars};
fmt::Debug,
ops::{Add, AddAssign},
str::Chars,
};
static BINARY_NUMERICS: &[char] = &['0', '1']; static BINARY_NUMERICS: &[char] = &['0', '1'];
static OCTAL_NUMERICS: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7']; static OCTAL_NUMERICS: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7'];

View File

@ -1,7 +1,7 @@
//! This module contains relevant code for [`Pass`] and shared code between //! This module contains relevant code for [`Pass`] and shared code between
//! passes. Passes can be performed on Reid MIR to e.g. typecheck the code. //! passes. Passes can be performed on Reid MIR to e.g. typecheck the code.
use std::collections::{HashMap, HashSet}; use std::collections::HashMap;
use std::convert::Infallible; use std::convert::Infallible;
use std::error::Error as STDError; use std::error::Error as STDError;

View File

@ -13,7 +13,7 @@ use std::{
use crate::{mir::TypeKind, util::try_all}; use crate::{mir::TypeKind, util::try_all};
use super::{ use super::{
pass::{self, Pass, PassResult, PassState, ScopeBinopDef, ScopeBinopKey}, pass::{Pass, PassResult, PassState, ScopeBinopKey},
typecheck::{ErrorKind, ErrorTypedefKind}, typecheck::{ErrorKind, ErrorTypedefKind},
typerefs::{ScopeTypeRefs, TypeRef, TypeRefs}, typerefs::{ScopeTypeRefs, TypeRef, TypeRefs},
BinopDefinition, Block, CustomTypeKey, ExprKind, Expression, FunctionDefinition, BinopDefinition, Block, CustomTypeKey, ExprKind, Expression, FunctionDefinition,