FloatKind::{get_float_type -> float_type}

This commit is contained in:
lyken 2024-08-28 12:53:55 +08:00
parent cc5950e88c
commit 5f95d1530a
No known key found for this signature in database
GPG Key ID: 3BD5FC6AC8325DD8

View File

@ -9,7 +9,7 @@ use inkwell::{
use super::*; use super::*;
pub trait FloatKind<'ctx>: fmt::Debug + Clone + Copy { pub trait FloatKind<'ctx>: fmt::Debug + Clone + Copy {
fn get_float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx>; fn float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx>;
} }
#[derive(Debug, Clone, Copy, Default)] #[derive(Debug, Clone, Copy, Default)]
@ -18,13 +18,13 @@ pub struct Float32;
pub struct Float64; pub struct Float64;
impl<'ctx> FloatKind<'ctx> for Float32 { impl<'ctx> FloatKind<'ctx> for Float32 {
fn get_float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx> { fn float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx> {
ctx.f32_type() ctx.f32_type()
} }
} }
impl<'ctx> FloatKind<'ctx> for Float64 { impl<'ctx> FloatKind<'ctx> for Float64 {
fn get_float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx> { fn float_type(&self, ctx: &'ctx Context) -> FloatType<'ctx> {
ctx.f64_type() ctx.f64_type()
} }
} }
@ -33,7 +33,7 @@ impl<'ctx> FloatKind<'ctx> for Float64 {
pub struct AnyFloat<'ctx>(FloatType<'ctx>); pub struct AnyFloat<'ctx>(FloatType<'ctx>);
impl<'ctx> FloatKind<'ctx> for AnyFloat<'ctx> { impl<'ctx> FloatKind<'ctx> for AnyFloat<'ctx> {
fn get_float_type(&self, _ctx: &'ctx Context) -> FloatType<'ctx> { fn float_type(&self, _ctx: &'ctx Context) -> FloatType<'ctx> {
self.0 self.0
} }
} }
@ -52,7 +52,7 @@ impl<'ctx, N: FloatKind<'ctx>> Float<'ctx, N> {
impl<'ctx, N: FloatKind<'ctx>> ModelBase<'ctx> for Float<'ctx, N> { impl<'ctx, N: FloatKind<'ctx>> ModelBase<'ctx> for Float<'ctx, N> {
fn llvm_type_impl(&self, _size_t: IntType<'ctx>, ctx: &'ctx Context) -> BasicTypeEnum<'ctx> { fn llvm_type_impl(&self, _size_t: IntType<'ctx>, ctx: &'ctx Context) -> BasicTypeEnum<'ctx> {
self.kind.get_float_type(ctx).into() self.kind.float_type(ctx).into()
} }
fn check_type_impl( fn check_type_impl(
@ -65,7 +65,7 @@ impl<'ctx, N: FloatKind<'ctx>> ModelBase<'ctx> for Float<'ctx, N> {
return Err(ModelError(format!("Expecting FloatType, but got {ty:?}"))); return Err(ModelError(format!("Expecting FloatType, but got {ty:?}")));
}; };
let expected_ty = self.kind.get_float_type(ctx); let expected_ty = self.kind.float_type(ctx);
if ty != expected_ty { if ty != expected_ty {
return Err(ModelError(format!("Expecting {expected_ty:?}, but got {ty:?}"))); return Err(ModelError(format!("Expecting {expected_ty:?}, but got {ty:?}")));
} }