Fix warnings, cleanup
This commit is contained in:
parent
61d3ea61ee
commit
726251e39c
@ -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,
|
||||
|
@ -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()
|
||||
}
|
||||
|
||||
|
@ -546,7 +546,7 @@ impl ConstValue {
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq, PartialOrd, Ord, Debug)]
|
||||
enum TypeCategory {
|
||||
pub enum TypeCategory {
|
||||
SignedInteger,
|
||||
UnsignedInteger,
|
||||
Void,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
use std::ops::BitAnd;
|
||||
|
||||
use reid_lib::{builder::InstructionValue, CmpPredicate, ConstValue, Instr, Type};
|
||||
|
||||
use crate::{
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user