From e6faa47b6f3533d9a1a2efe4914da9b5aa6709ae Mon Sep 17 00:00:00 2001
From: Klaas Eikelboom <klaas.eikelboom@civicoop.org>
Date: Tue, 23 Jan 2024 19:42:25 +0100
Subject: [PATCH] Prevent fatal PHP 8.1 error with CompareFieldFilter.

---
 CHANGELOG.md                                               | 2 ++
 Civi/DataProcessor/FilterHandler/AbstractFilterHandler.php | 3 ++-
 Civi/DataProcessor/FilterHandler/CompareFieldFilter.php    | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c953413f..50c1c55e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
 # Version 1.96 (in development)
 
+* Prevent fatal PHP 8.1 error with CompareFieldFilter.
+
 # Version 1.95
 
 * Added mixin for smarty templates. So it works with CiviCRM 5.69 and newer.
diff --git a/Civi/DataProcessor/FilterHandler/AbstractFilterHandler.php b/Civi/DataProcessor/FilterHandler/AbstractFilterHandler.php
index 964fcd91..1901bd13 100644
--- a/Civi/DataProcessor/FilterHandler/AbstractFilterHandler.php
+++ b/Civi/DataProcessor/FilterHandler/AbstractFilterHandler.php
@@ -10,6 +10,7 @@ use Civi\DataProcessor\DataFlow\CombinedDataFlow\CombinedSqlDataFlow;
 use Civi\DataProcessor\DataFlow\CombinedDataFlow\SubqueryDataFlow;
 use Civi\DataProcessor\DataFlow\SqlDataFlow;
 use Civi\DataProcessor\DataFlow\SqlTableDataFlow;
+use Civi\DataProcessor\DataSpecification\FieldSpecification;
 use Civi\DataProcessor\Exception\FilterRequiredException;
 use Civi\DataProcessor\FilterCollection\FilterCollection;
 use Civi\DataProcessor\ProcessorType\AbstractProcessorType;
@@ -70,7 +71,7 @@ abstract class AbstractFilterHandler {
   /**
    * @return \Civi\DataProcessor\DataSpecification\FieldSpecification
    */
-  abstract public function getFieldSpecification();
+  abstract public function getFieldSpecification(): FieldSpecification;
 
   /**
    * Initialize the filter
diff --git a/Civi/DataProcessor/FilterHandler/CompareFieldFilter.php b/Civi/DataProcessor/FilterHandler/CompareFieldFilter.php
index d17441ad..d653bbbd 100644
--- a/Civi/DataProcessor/FilterHandler/CompareFieldFilter.php
+++ b/Civi/DataProcessor/FilterHandler/CompareFieldFilter.php
@@ -197,7 +197,7 @@ class CompareFieldFilter extends AbstractFieldFilterHandler {
   /**
    * @return \Civi\DataProcessor\DataSpecification\FieldSpecification
    */
-  public function getFieldSpecification() {
+  public function getFieldSpecification(): FieldSpecification{
     return $this->fieldSpecification;
   }
 
-- 
GitLab