Fix warnings, cleanup

This commit is contained in:
Sofia 2025-07-28 18:22:51 +03:00
parent 61d3ea61ee
commit 726251e39c
9 changed files with 13 additions and 58 deletions

View File

@ -569,42 +569,6 @@ impl TypeHolder {
}
impl FunctionHolder {
unsafe fn compile_debug_info(
&self,
di_builder: LLVMDIBuilderRef,
parent: LLVMMetadataRef,
file: LLVMMetadataRef,
types: &mut HashMap<DebugTypeValue, LLVMMetadataRef>,
func: LLVMFunction,
scope: DebugScopeHolder,
) -> LLVMMetadataRef {
unsafe {
let DebugScopeKind::Subprogram(subprogram) = scope.data.kind else {
panic!();
};
let mangled_length_ptr = &mut 0;
let mangled_name = LLVMGetValueName2(func.value_ref, mangled_length_ptr);
let mangled_length = *mangled_length_ptr;
LLVMDIBuilderCreateFunction(
di_builder,
parent,
into_cstring(subprogram.name.clone()).as_ptr(),
subprogram.name.clone().len(),
mangled_name,
mangled_length,
file,
subprogram.location.pos.line,
*types.get(&subprogram.ty).unwrap(),
subprogram.opts.is_local as i32,
subprogram.opts.is_definition as i32,
subprogram.opts.scope_line,
subprogram.opts.flags.as_llvm(),
subprogram.opts.is_optimized as i32,
)
}
}
unsafe fn compile_signature(
&self,
context: &LLVMContext,

View File

@ -208,11 +208,7 @@ impl DebugInformation {
self.metadata.clone()
}
// pub fn get_scopes(&self) -> Rc<RefCell<DebugScopeHolder>> {
// self.scope.clone()
// }
pub fn get_scope(&self) -> Rc<RefCell<DebugScopeHolder>> {
pub(crate) fn get_scope(&self) -> Rc<RefCell<DebugScopeHolder>> {
self.scope.clone()
}

View File

@ -546,7 +546,7 @@ impl ConstValue {
}
#[derive(PartialEq, Eq, PartialOrd, Ord, Debug)]
enum TypeCategory {
pub enum TypeCategory {
SignedInteger,
UnsignedInteger,
Void,

View File

@ -122,8 +122,8 @@ pub enum BinaryOperator {
And,
Or,
Xor,
BWAnd,
BWOr,
BitAnd,
BitOr,
LT,
LE,
GT,
@ -141,9 +141,8 @@ impl BinaryOperator {
Mult => 15,
Div => 20,
Mod => 20,
BWAnd => 90,
BWOr => 90,
BWXor => 90,
BitAnd => 90,
BitOr => 90,
BitshiftLeft => 100,
BitshiftRight => 100,
And => 150,

View File

@ -518,8 +518,8 @@ impl Parse for BinaryOperator {
}
(Some(Token::Hat), _) => BinaryOperator::Xor,
(Some(Token::Et), _) => BinaryOperator::BWAnd,
(Some(Token::Pipe), _) => BinaryOperator::BWOr,
(Some(Token::Et), _) => BinaryOperator::BitAnd,
(Some(Token::Pipe), _) => BinaryOperator::BitOr,
(Some(Token::LessThan), _) => BinaryOperator::LT,
(Some(Token::GreaterThan), _) => BinaryOperator::GT,

View File

@ -459,8 +459,8 @@ impl ast::BinaryOperator {
ast::BinaryOperator::BitshiftRight => mir::BinaryOperator::BitshiftRight,
ast::BinaryOperator::BitshiftLeft => mir::BinaryOperator::BitshiftLeft,
ast::BinaryOperator::Xor => mir::BinaryOperator::Xor,
ast::BinaryOperator::BWAnd => mir::BinaryOperator::BitAnd,
ast::BinaryOperator::BWOr => mir::BinaryOperator::BitOr,
ast::BinaryOperator::BitAnd => mir::BinaryOperator::BitAnd,
ast::BinaryOperator::BitOr => mir::BinaryOperator::BitOr,
}
}
}

View File

@ -1,5 +1,3 @@
use std::ops::BitAnd;
use reid_lib::{builder::InstructionValue, CmpPredicate, ConstValue, Instr, Type};
use crate::{

View File

@ -1,6 +1,6 @@
//! This module contains code relevant to doing a type checking pass on the MIR.
//! During typechecking relevant types are also coerced if possible.
use std::{collections::HashSet, convert::Infallible, hint, iter};
use std::{collections::HashSet, convert::Infallible, iter};
use crate::{mir::*, util::try_all};
use VagueType as Vague;
@ -750,9 +750,7 @@ impl Expression {
.into_iter()
.chain(iter::repeat(TypeKind::Vague(Vague::Unknown)));
for (i, (param, true_param_t)) in
function_call.parameters.iter_mut().zip(true_params_iter).enumerate()
{
for (param, true_param_t) in function_call.parameters.iter_mut().zip(true_params_iter) {
// Typecheck every param separately
let param_res = param.typecheck(state, &typerefs, HintKind::Coerce(true_param_t.clone()));
let param_t = state.or_else(param_res, TypeKind::Vague(Vague::Unknown), param.1);

View File

@ -285,7 +285,7 @@ impl Block {
let rhs_ref = state.ok(rhs_infer, rhs.1);
// Try to narrow the lhs with rhs
if let (Some(mut lhs_ref), Some(mut rhs_ref)) = (lhs_ref, rhs_ref) {
if let (Some(lhs_ref), Some(mut rhs_ref)) = (lhs_ref, rhs_ref) {
rhs_ref.narrow(&lhs_ref);
}
}