@@ -119,23 +119,26 @@ impl NativeClassManager {
119119 /// Returns the runnable compiled class for the given class hash, if it exists in class_cache.
120120 pub fn get_runnable ( & self , class_hash : & ClassHash ) -> Option < RunnableCompiledClass > {
121121 let cached_class = self . class_cache . get ( class_hash) ?;
122+ if let CompiledClasses :: V1 ( ..) = cached_class {
123+ // When `wait_on_native_compilation` is active, all V1 classes should have been compiled
124+ // to native synchronously. A V1 cache entry indicates a pipeline bug.
125+ // TODO(Yoni): make sure `wait_on_native_compilation` cannot be set to true while
126+ // `run_cairo_native` is false.
127+ assert ! (
128+ !self . wait_on_native_compilation( ) ,
129+ "Manager did not wait on native compilation."
130+ ) ;
131+ }
122132
123133 let cached_class = match cached_class {
124- CompiledClasses :: V1 ( _, _) => {
125- // TODO(Yoni): make sure `wait_on_native_compilation` cannot be set to true while
126- // `run_cairo_native` is false.
127- assert ! (
128- !self . wait_on_native_compilation( ) ,
129- "Manager did not wait on native compilation."
130- ) ;
131- cached_class
132- }
133134 CompiledClasses :: V1Native ( CachedCairoNative :: Compiled ( native) )
134135 if !self . run_class_with_cairo_native ( class_hash) =>
135136 {
136- CompiledClasses :: V1 ( native. casm ( ) , Arc :: new ( SierraContractClass :: default ( ) ) )
137+ CompiledClasses :: into_non_native_class ( native)
138+ }
139+ CompiledClasses :: V1Native ( ..) | CompiledClasses :: V1 ( ..) | CompiledClasses :: V0 ( ..) => {
140+ cached_class
137141 }
138- _ => cached_class,
139142 } ;
140143
141144 Some ( cached_class. to_runnable ( ) )
0 commit comments