diff options
Diffstat (limited to 'src/hir/from_ast.cpp')
-rw-r--r-- | src/hir/from_ast.cpp | 15 |
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, |