Clean up and fix some warnings

This commit is contained in:
Sofia 2025-07-20 22:36:38 +03:00
parent 550fec2827
commit 893eaaa865
10 changed files with 18 additions and 41 deletions

View File

@ -43,6 +43,7 @@ Currently missing relevant features (TODOs) are:
Smaller features:
- Easier way to initialize arrays with a single value
- Lexical scopes for Debug Information
### Why "Reid"

View File

@ -1029,7 +1029,7 @@ impl ConstValue {
ConstValue::U32(val) => LLVMConstInt(t, *val as u64, 1),
ConstValue::U64(val) => LLVMConstInt(t, *val as u64, 1),
ConstValue::U128(val) => LLVMConstInt(t, *val as u64, 1),
ConstValue::StringPtr(val) => LLVMBuildGlobalStringPtr(
ConstValue::StringPtr(val) => LLVMBuildGlobalString(
module.builder_ref,
into_cstring(val).as_ptr(),
c"string".as_ptr(),

View File

@ -47,7 +47,7 @@ pub struct DebugTypeHolder {
#[derive(Debug, Clone)]
pub struct DebugSubprogramHolder {
pub(crate) value: DebugProgramValue,
pub(crate) _value: DebugProgramValue,
pub(crate) data: DebugSubprogramData,
}
@ -151,19 +151,11 @@ impl DebugInformation {
value
}
fn check_metadata(&self, scope: &DebugScopeValue, metadata: &DebugMetadata) {
match &metadata {
DebugMetadata::ParamVar(debug_param_variable) => todo!(),
DebugMetadata::LocalVar(debug_local_variable) => todo!(),
DebugMetadata::VarAssignment => todo!(),
}
}
pub fn subprogram(&self, kind: DebugSubprogramData) -> DebugProgramValue {
let mut subprogram = self.programs.borrow_mut();
let value = DebugProgramValue(subprogram.len() + 1);
subprogram.push(DebugSubprogramHolder {
value: value.clone(),
_value: value.clone(),
data: kind,
});
value
@ -185,7 +177,7 @@ impl DebugInformation {
self.types.clone()
}
pub fn get_locations(&self) -> Rc<RefCell<Vec<DebugLocationHolder>>> {
pub(crate) fn get_locations(&self) -> Rc<RefCell<Vec<DebugLocationHolder>>> {
self.locations.clone()
}

View File

@ -10,9 +10,8 @@ use crate::{
builder::*,
debug_information::{
DebugArrayType, DebugBasicType, DebugFieldType, DebugLocation, DebugLocationValue,
DebugMetadataHolder, DebugMetadataValue, DebugPointerType, DebugProgramValue,
DebugScopeValue, DebugStructType, DebugSubprogramType, DebugTypeData, DebugTypeHolder,
DebugTypeValue,
DebugMetadataValue, DebugPointerType, DebugProgramValue, DebugScopeValue, DebugStructType,
DebugSubprogramType, DebugTypeData, DebugTypeHolder, DebugTypeValue,
},
};
@ -244,8 +243,6 @@ impl Debug for DebugTypeHolder {
impl Debug for DebugTypeData {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DebugTypeData::Basic(ty) => Debug::fmt(ty, f),
DebugTypeData::Subprogram(ty) => Debug::fmt(ty, f),
DebugTypeData::Basic(ty) => Debug::fmt(ty, f),
DebugTypeData::Subprogram(ty) => Debug::fmt(ty, f),
DebugTypeData::Pointer(ty) => Debug::fmt(ty, f),

View File

@ -5,17 +5,17 @@
use std::{fmt::Debug, marker::PhantomData};
use builder::{BlockValue, Builder, FunctionValue, InstructionValue, ModuleValue, TypeValue};
use debug::PrintableModule;
use debug_information::{
DebugFileData, DebugInformation, DebugLocationValue, DebugMetadataValue, DebugProgramValue,
InstructionDebugRecordData,
};
use fmt::PrintableModule;
use util::match_types;
pub mod builder;
pub mod compile;
mod debug;
pub mod debug_information;
mod fmt;
mod util;
#[derive(Debug)]

View File

@ -1,14 +1,14 @@
use std::{array, collections::HashMap, fmt::format, mem};
use std::{collections::HashMap, mem};
use reid_lib::{
builder::{InstructionValue, TypeValue},
compile::CompiledModule,
debug_information::{
DebugArrayType, DebugBasicType, DebugFieldType, DebugFileData, DebugInformation,
DebugLocalVariable, DebugLocation, DebugMetadata, DebugMetadataValue, DebugParamVariable,
DebugPointerType, DebugProgramValue, DebugRecordKind, DebugScopeValue, DebugStructType,
DebugSubprogramData, DebugSubprogramOptionals, DebugSubprogramType, DebugTypeData,
DebugTypeValue, DwarfEncoding, DwarfFlags, InstructionDebugRecordData,
DebugLocalVariable, DebugLocation, DebugMetadata, DebugParamVariable, DebugPointerType,
DebugProgramValue, DebugRecordKind, DebugStructType, DebugSubprogramData,
DebugSubprogramOptionals, DebugSubprogramType, DebugTypeData, DebugTypeValue,
DwarfEncoding, DwarfFlags, InstructionDebugRecordData,
},
Block, CmpPredicate, ConstValue, Context, CustomTypeKind, Function, FunctionFlags, Instr,
Module, NamedStruct, TerminatorKind as Term, Type,
@ -130,6 +130,7 @@ impl StackValueKind {
}
}
#[allow(dead_code)]
fn map<F>(&self, lambda: F) -> StackValueKind
where
F: FnOnce(InstructionValue) -> InstructionValue,
@ -478,7 +479,6 @@ impl mir::Statement {
mir::StmtKind::Let(NamedVariableRef(ty, name, _), mutable, expression) => {
let value = expression.codegen(scope, &state).unwrap();
dbg!(&name);
let alloca = scope
.block
.build(
@ -664,7 +664,6 @@ impl mir::Expression {
.functions
.get(&call.name)
.expect("function not found!");
dbg!(&self, &callee.ir.value());
let val = scope
.block

View File

@ -1,7 +1,3 @@
use reid_lib::debug_information::{
DebugBasicType, DebugLocation, DebugTypeData, DwarfEncoding, DwarfFlags,
};
use super::{typecheck::ErrorKind, typerefs::TypeRefs, VagueType as Vague, *};
#[derive(Debug, Clone)]

View File

@ -9,7 +9,7 @@ use crate::{
token_stream::TokenRange,
};
mod display;
mod fmt;
pub mod r#impl;
pub mod linker;
pub mod pass;

View File

@ -144,8 +144,6 @@ impl Block {
let mut ret_type_ref = outer_refs.from_type(&ty).unwrap();
// Narow return type to declared type if hard return
dbg!(&kind, ty);
if kind == ReturnKind::Hard {
if let Some(hint) = &state.scope.return_type_hint {
ret_type_ref.narrow(&mut outer_refs.from_type(&hint).unwrap());
@ -394,16 +392,10 @@ impl Expression {
var.0 = hint.as_type();
}
dbg!(&var.0);
dbg!(&var.0.resolve_weak(type_refs.types));
let a = match &var.0.resolve_weak(type_refs.types) {
match &var.0.resolve_weak(type_refs.types) {
Borrow(type_kind) => Ok(type_refs.from_type(&type_kind).unwrap()),
_ => Err(ErrorKind::AttemptedDerefNonBorrow(var.1.clone())),
};
dbg!(&a);
a
}
}
}
}