@@ -415,7 +415,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
415
415
unsafe fn connect_child_with_tx < ' l , ' tx : ' l > (
416
416
& ' l self ,
417
417
tx : Option < & ' l B :: ReadTransaction < ' tx > > ,
418
- parent_task : TaskId ,
418
+ parent_task : Option < TaskId > ,
419
419
child_task : TaskId ,
420
420
turbo_tasks : & ' l dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
421
421
) {
@@ -426,7 +426,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
426
426
427
427
fn connect_child (
428
428
& self ,
429
- parent_task : TaskId ,
429
+ parent_task : Option < TaskId > ,
430
430
child_task : TaskId ,
431
431
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
432
432
) {
@@ -444,9 +444,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
444
444
consistency : ReadConsistency ,
445
445
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
446
446
) -> Result < Result < RawVc , EventListener > > {
447
- if let Some ( reader) = reader {
448
- self . assert_not_persistent_calling_transient ( reader, task_id, /* cell_id */ None ) ;
449
- }
447
+ self . assert_not_persistent_calling_transient ( reader, task_id, /* cell_id */ None ) ;
450
448
451
449
let mut ctx = self . execute_context ( turbo_tasks) ;
452
450
let mut task = ctx. task ( task_id, TaskDataCategory :: All ) ;
@@ -754,9 +752,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
754
752
options : ReadCellOptions ,
755
753
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
756
754
) -> Result < Result < TypedCellContent , EventListener > > {
757
- if let Some ( reader) = reader {
758
- self . assert_not_persistent_calling_transient ( reader, task_id, Some ( cell) ) ;
759
- }
755
+ self . assert_not_persistent_calling_transient ( reader, task_id, Some ( cell) ) ;
760
756
761
757
fn add_cell_dependency < B : BackingStorage > (
762
758
backend : & TurboTasksBackendInner < B > ,
@@ -1268,7 +1264,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
1268
1264
fn get_or_create_persistent_task (
1269
1265
& self ,
1270
1266
task_type : CachedTaskType ,
1271
- parent_task : TaskId ,
1267
+ parent_task : Option < TaskId > ,
1272
1268
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
1273
1269
) -> TaskId {
1274
1270
if let Some ( task_id) = self . task_cache . lookup_forward ( & task_type) {
@@ -1328,10 +1324,12 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
1328
1324
fn get_or_create_transient_task (
1329
1325
& self ,
1330
1326
task_type : CachedTaskType ,
1331
- parent_task : TaskId ,
1327
+ parent_task : Option < TaskId > ,
1332
1328
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
1333
1329
) -> TaskId {
1334
- if !parent_task. is_transient ( ) {
1330
+ if let Some ( parent_task) = parent_task
1331
+ && !parent_task. is_transient ( )
1332
+ {
1335
1333
self . panic_persistent_calling_transient (
1336
1334
self . lookup_task_type ( parent_task) . as_deref ( ) ,
1337
1335
Some ( & task_type) ,
@@ -2264,7 +2262,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
2264
2262
& self ,
2265
2263
task_id : TaskId ,
2266
2264
collectible_type : TraitTypeId ,
2267
- reader_id : TaskId ,
2265
+ reader_id : Option < TaskId > ,
2268
2266
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
2269
2267
) -> AutoMap < RawVc , i32 , BuildHasherDefault < FxHasher > , 1 > {
2270
2268
let mut ctx = self . execute_context ( turbo_tasks) ;
@@ -2312,13 +2310,15 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
2312
2310
. entry ( RawVc :: TaskCell ( collectible. task , collectible. cell ) )
2313
2311
. or_insert ( 0 ) += count;
2314
2312
}
2315
- let _ = task. add ( CachedDataItem :: CollectiblesDependent {
2316
- collectible_type,
2317
- task : reader_id,
2318
- value : ( ) ,
2319
- } ) ;
2313
+ if let Some ( reader_id) = reader_id {
2314
+ let _ = task. add ( CachedDataItem :: CollectiblesDependent {
2315
+ collectible_type,
2316
+ task : reader_id,
2317
+ value : ( ) ,
2318
+ } ) ;
2319
+ }
2320
2320
}
2321
- {
2321
+ if let Some ( reader_id ) = reader_id {
2322
2322
let mut reader = ctx. task ( reader_id, TaskDataCategory :: Data ) ;
2323
2323
let target = CollectiblesRef {
2324
2324
task : task_id,
@@ -2480,7 +2480,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
2480
2480
fn connect_task (
2481
2481
& self ,
2482
2482
task : TaskId ,
2483
- parent_task : TaskId ,
2483
+ parent_task : Option < TaskId > ,
2484
2484
turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
2485
2485
) {
2486
2486
self . assert_not_persistent_calling_transient ( parent_task, task, None ) ;
@@ -2737,13 +2737,15 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
2737
2737
2738
2738
fn assert_not_persistent_calling_transient (
2739
2739
& self ,
2740
- parent_id : TaskId ,
2740
+ parent_id : Option < TaskId > ,
2741
2741
child_id : TaskId ,
2742
2742
cell_id : Option < CellId > ,
2743
2743
) {
2744
- if !parent_id. is_transient ( ) && child_id. is_transient ( ) {
2744
+ if !parent_id. is_none_or ( |id| id . is_transient ( ) ) && child_id. is_transient ( ) {
2745
2745
self . panic_persistent_calling_transient (
2746
- self . lookup_task_type ( parent_id) . as_deref ( ) ,
2746
+ parent_id
2747
+ . and_then ( |id| self . lookup_task_type ( id) )
2748
+ . as_deref ( ) ,
2747
2749
self . lookup_task_type ( child_id) . as_deref ( ) ,
2748
2750
cell_id,
2749
2751
) ;
@@ -2828,7 +2830,7 @@ impl<B: BackingStorage> Backend for TurboTasksBackend<B> {
2828
2830
fn get_or_create_persistent_task (
2829
2831
& self ,
2830
2832
task_type : CachedTaskType ,
2831
- parent_task : TaskId ,
2833
+ parent_task : Option < TaskId > ,
2832
2834
turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
2833
2835
) -> TaskId {
2834
2836
self . 0
@@ -2838,7 +2840,7 @@ impl<B: BackingStorage> Backend for TurboTasksBackend<B> {
2838
2840
fn get_or_create_transient_task (
2839
2841
& self ,
2840
2842
task_type : CachedTaskType ,
2841
- parent_task : TaskId ,
2843
+ parent_task : Option < TaskId > ,
2842
2844
turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
2843
2845
) -> TaskId {
2844
2846
self . 0
@@ -2963,7 +2965,7 @@ impl<B: BackingStorage> Backend for TurboTasksBackend<B> {
2963
2965
& self ,
2964
2966
task_id : TaskId ,
2965
2967
collectible_type : TraitTypeId ,
2966
- reader : TaskId ,
2968
+ reader : Option < TaskId > ,
2967
2969
turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
2968
2970
) -> AutoMap < RawVc , i32 , BuildHasherDefault < FxHasher > , 1 > {
2969
2971
self . 0
@@ -3035,7 +3037,7 @@ impl<B: BackingStorage> Backend for TurboTasksBackend<B> {
3035
3037
parent_task : TaskId ,
3036
3038
turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
3037
3039
) {
3038
- self . 0 . connect_task ( task, parent_task, turbo_tasks) ;
3040
+ self . 0 . connect_task ( task, Some ( parent_task) , turbo_tasks) ;
3039
3041
}
3040
3042
3041
3043
fn create_transient_task (
0 commit comments