summaryrefslogtreecommitdiff
path: root/src/codegen/mod.rs
diff options
context:
space:
mode:
authorgnzlbg <gonzalobg88@gmail.com>2018-08-14 19:16:05 +0200
committergnzlbg <gonzalobg88@gmail.com>2018-08-14 19:16:05 +0200
commit122198bfbe30afd00cab87362c0026ded4c9743b (patch)
treea53cbc062daa7a85e3c9091fd121d5b22aed65f5 /src/codegen/mod.rs
parente9709955e168098b6d9b327081eda686bb6ee098 (diff)
map vector types to arrays and pass them by value
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r--src/codegen/mod.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 8c113f5a..acf45841 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -595,6 +595,7 @@ impl CodeGenerator for Type {
TypeKind::Float(..) |
TypeKind::Complex(..) |
TypeKind::Array(..) |
+ TypeKind::Vector(..) |
TypeKind::Pointer(..) |
TypeKind::BlockPointer |
TypeKind::Reference(..) |
@@ -3055,6 +3056,12 @@ impl TryToRustTy for Type {
[ #ty ; #len ]
})
}
+ TypeKind::Vector(item, len, _) => {
+ let ty = item.try_to_rust_ty(ctx, &())?;
+ Ok(quote! {
+ [ #ty ; #len ]
+ })
+ }
TypeKind::Enum(..) => {
let path = item.namespace_aware_canonical_path(ctx);
let path = Term::new(&path.join("::"), Span::call_site());