2022-04-06 11:20:47 +00:00
|
|
|
// TODO: put layered environment here?
|
2022-04-28 16:33:26 +00:00
|
|
|
|
|
|
|
use inkwell::{
|
|
|
|
types::{BasicMetadataTypeEnum, BasicTypeEnum},
|
|
|
|
values::{BasicMetadataValueEnum, BasicValueEnum},
|
|
|
|
};
|
|
|
|
|
|
|
|
pub fn convert_type_to_metadata_type(
|
|
|
|
a: BasicTypeEnum,
|
|
|
|
) -> BasicMetadataTypeEnum {
|
|
|
|
use BasicMetadataTypeEnum as B;
|
|
|
|
use BasicTypeEnum as A;
|
|
|
|
match a {
|
|
|
|
A::IntType(a) => B::IntType(a),
|
|
|
|
A::ArrayType(a) => B::ArrayType(a),
|
|
|
|
A::FloatType(a) => B::FloatType(a),
|
|
|
|
A::StructType(a) => B::StructType(a),
|
|
|
|
A::VectorType(a) => B::VectorType(a),
|
|
|
|
A::PointerType(a) => B::PointerType(a),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn convert_value_to_metadata_value(
|
|
|
|
a: BasicValueEnum,
|
|
|
|
) -> BasicMetadataValueEnum {
|
|
|
|
use BasicMetadataValueEnum as B;
|
|
|
|
use BasicValueEnum as A;
|
|
|
|
match a {
|
|
|
|
A::ArrayValue(a) => B::ArrayValue(a),
|
|
|
|
A::IntValue(a) => B::IntValue(a),
|
|
|
|
A::FloatValue(a) => B::FloatValue(a),
|
|
|
|
A::PointerValue(a) => B::PointerValue(a),
|
|
|
|
A::StructValue(a) => B::StructValue(a),
|
|
|
|
A::VectorValue(a) => B::VectorValue(a),
|
|
|
|
}
|
|
|
|
}
|