diff --git a/nac3core/src/codegen/mod.rs b/nac3core/src/codegen/mod.rs index 244b8f8d..d65f09e9 100644 --- a/nac3core/src/codegen/mod.rs +++ b/nac3core/src/codegen/mod.rs @@ -33,7 +33,7 @@ use std::sync::{ Arc, }; use std::thread; -use structure::{cslice::CSlice, exception::Exception}; +use structure::{cslice::CSlice, exception::Exception, ndarray::NpArray}; pub mod builtin_fns; pub mod classes; @@ -45,6 +45,7 @@ pub mod irrt; pub mod llvm_intrinsics; pub mod model; pub mod numpy; +pub mod numpy_new; pub mod stmt; pub mod structure; @@ -493,12 +494,10 @@ 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, - ); + let tyctx = generator.type_context(ctx); - NDArrayType::new(generator, ctx, element_type).as_base_type().into() + let pndarray_model = PtrModel(StructModel(NpArray)); + pndarray_model.get_type(tyctx, ctx).as_basic_type_enum() } _ => unreachable!(