@@ -25,6 +25,7 @@ enum JitValue {
2525 Int ( Value ) ,
2626 Float ( Value ) ,
2727 Bool ( Value ) ,
28+ None ,
2829}
2930
3031impl JitValue {
@@ -41,12 +42,14 @@ impl JitValue {
4142 JitValue :: Int ( _) => Some ( JitType :: Int ) ,
4243 JitValue :: Float ( _) => Some ( JitType :: Float ) ,
4344 JitValue :: Bool ( _) => Some ( JitType :: Bool ) ,
45+ JitValue :: None => None ,
4446 }
4547 }
4648
4749 fn into_value ( self ) -> Option < Value > {
4850 match self {
4951 JitValue :: Int ( val) | JitValue :: Float ( val) | JitValue :: Bool ( val) => Some ( val) ,
52+ JitValue :: None => None ,
5053 }
5154 }
5255}
@@ -122,6 +125,7 @@ impl<'a, 'b> FunctionCompiler<'a, 'b> {
122125 Ok ( self . builder . ins ( ) . bint ( types:: I8 , val) )
123126 }
124127 JitValue :: Bool ( val) => Ok ( val) ,
128+ JitValue :: None => Ok ( self . builder . ins ( ) . iconst ( types:: I8 , 0 ) ) ,
125129 }
126130 }
127131
@@ -193,6 +197,10 @@ impl<'a, 'b> FunctionCompiler<'a, 'b> {
193197 self . stack . push ( JitValue :: Bool ( val) ) ;
194198 Ok ( ( ) )
195199 }
200+ BorrowedConstant :: None => {
201+ self . stack . push ( JitValue :: None ) ;
202+ Ok ( ( ) )
203+ }
196204 _ => Err ( JitCompileError :: NotSupported ) ,
197205 }
198206 }
0 commit comments