diff --git a/nac3core/src/codegen/mod.rs b/nac3core/src/codegen/mod.rs index 09d65494..ddbe6d94 100644 --- a/nac3core/src/codegen/mod.rs +++ b/nac3core/src/codegen/mod.rs @@ -1,7 +1,7 @@ use crate::{ - codegen::classes::{ListType, NDArrayType, ProxyType, RangeType}, + codegen::classes::{ListType, ProxyType, RangeType}, symbol_resolver::{StaticValue, SymbolResolver}, - toplevel::{helper::PrimDef, numpy::unpack_ndarray_var_tys, TopLevelContext, TopLevelDef}, + toplevel::{helper::PrimDef, TopLevelContext, TopLevelDef}, typecheck::{ type_inferencer::{CodeLocation, PrimitiveStore}, typedef::{CallId, FuncArg, Type, TypeEnum, Unifier}, @@ -33,7 +33,7 @@ use std::sync::{ Arc, }; use std::thread; -use structs::{cslice::CSlice, exception::Exception}; +use structs::{cslice::CSlice, exception::Exception, ndarray::NpArray}; pub mod builtin_fns; pub mod classes; @@ -476,12 +476,9 @@ fn get_llvm_type<'ctx, G: CodeGenerator + ?Sized>( } TObj { obj_id, .. } if *obj_id == PrimDef::NDArray.id() => { - let (dtype, _) = unpack_ndarray_var_tys(unifier, ty); - let element_type = get_llvm_type( - ctx, module, generator, unifier, top_level, type_cache, dtype, - ); - - NDArrayType::new(generator, ctx, element_type).as_base_type().into() + let sizet = generator.get_sizet(ctx); + let pndarray_model = PointerModel(StructModel(NpArray { sizet })); + pndarray_model.get_type(ctx).into() } _ => unreachable!(