From 04ad255125191cdd2ba463e9699fa6f184bf7244 Mon Sep 17 00:00:00 2001 From: Connor Tsui Date: Mon, 27 Jul 2026 10:12:16 -0400 Subject: [PATCH] Require explicit `is_strict` declarations for scalar functions Removes the default `is_strict` implementation on `ScalarFnVTable` so every scalar function must declare its strictness deliberately instead of silently inheriting the conservative `false`. Signed-off-by: Connor Tsui --- vortex-array/src/scalar_fn/vtable.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/vortex-array/src/scalar_fn/vtable.rs b/vortex-array/src/scalar_fn/vtable.rs index 41f1ea25fc7..1ce1dc93066 100644 --- a/vortex-array/src/scalar_fn/vtable.rs +++ b/vortex-array/src/scalar_fn/vtable.rs @@ -229,13 +229,10 @@ pub trait ScalarFnVTable: 'static + Sized + Clone + Send + Sync { /// /// Nullary functions are vacuously strict because they have no input values. /// - /// Conservatively defaults to `false` (non-strict). + /// Every implementation must declare its strictness explicitly. /// /// This method only checks the expression itself, not its children. - fn is_strict(&self, options: &Self::Options) -> bool { - _ = options; - false - } + fn is_strict(&self, options: &Self::Options) -> bool; /// Returns whether this expression is semantically fallible. Conservatively defaults to /// `true`.