summaryrefslogtreecommitdiff
path: root/src/hir/from_ast.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/from_ast.cpp')
-rw-r--r--src/hir/from_ast.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp
index df73d4ec..41ee37fd 100644
--- a/src/hir/from_ast.cpp
+++ b/src/hir/from_ast.cpp
@@ -463,10 +463,17 @@
return ::HIR::TypeRef( ::HIR::TypeRef::Data::make_Pointer({e.is_mut, box$(LowerHIR_Type(*e.inner))}) );
),
(Array,
- return ::HIR::TypeRef( ::HIR::TypeRef::Data::make_Array({
- box$( LowerHIR_Type(*e.inner) ),
- LowerHIR_Expr( e.size )
- }) );
+ if( e.size ) {
+ return ::HIR::TypeRef( ::HIR::TypeRef::Data::make_Array({
+ box$( LowerHIR_Type(*e.inner) ),
+ LowerHIR_Expr( e.size )
+ }) );
+ }
+ else {
+ return ::HIR::TypeRef( ::HIR::TypeRef::Data::make_Slice({
+ box$( LowerHIR_Type(*e.inner) )
+ }) );
+ }
),
(Path,