From b48bb21a96d1409838585a60caf6edb1b34237a5 Mon Sep 17 00:00:00 2001 From: LJ Date: Thu, 17 Apr 2025 16:41:03 -0700 Subject: [PATCH] Bug fix: avoid holding reference in future. --- src/builder/analyzer.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/builder/analyzer.rs b/src/builder/analyzer.rs index 33348fe08..a489c5e85 100644 --- a/src/builder/analyzer.rs +++ b/src/builder/analyzer.rs @@ -714,6 +714,9 @@ impl AnalyzerContext<'_> { .data .add_field(reactive_op.name.clone(), &output_type)?; let reactive_op = reactive_op.clone(); + let logic_fingerprinter = Fingerprinter::default() + .with(&op.op)? + .with(&output_type.without_attrs())?; async move { trace!("Start building executor for transform op `{}`", reactive_op.name); let executor = executor.await.with_context(|| { @@ -725,10 +728,8 @@ impl AnalyzerContext<'_> { let function_exec_info = AnalyzedFunctionExecInfo { enable_cache, behavior_version, - fingerprinter: Fingerprinter::default() - .with(&op.op)? - .with(&behavior_version)? - .with(&output_type.without_attrs())?, + fingerprinter: logic_fingerprinter + .with(&behavior_version)?, output_type: output_type.typ.clone(), }; if function_exec_info.enable_cache