From c6bb313951ac03e8c419c6512ae7b5bd67b25a3e Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Mon, 29 Apr 2024 23:08:32 +0100
Subject: [PATCH] Issue #3444020 by andypost, smustgrave: [8.4] Fix implicitly
 nullable type declarations in composer plugin

(cherry picked from commit 031b4907aa402bac3d38809e073b6162c15630bf)
---
 .../Plugin/Scaffold/Operations/AppendOp.php   | 21 ++++++++++++-------
 .../Scaffold/Operations/OperationFactory.php  |  6 +++---
 2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/composer/Plugin/Scaffold/Operations/AppendOp.php b/composer/Plugin/Scaffold/Operations/AppendOp.php
index cd3ed05bdb36..9e97d6ebb37b 100644
--- a/composer/Plugin/Scaffold/Operations/AppendOp.php
+++ b/composer/Plugin/Scaffold/Operations/AppendOp.php
@@ -59,16 +59,21 @@ class AppendOp extends AbstractOperation {
   /**
    * Constructs an AppendOp.
    *
-   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath $prepend_path
-   *   The relative path to the prepend file.
-   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath $append_path
-   *   The relative path to the append file.
+   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath|null $prepend_path
+   *   (optional) The relative path to the prepend file.
+   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath|null $append_path
+   *   (optional) The relative path to the append file.
    * @param bool $force_append
-   *   TRUE if is okay to append to a file that was not scaffolded.
-   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath $default_path
-   *   The relative path to the default data.
+   *   (optional) TRUE if is okay to append to a file that was not scaffolded.
+   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath|null $default_path
+   *   (optional) The relative path to the default data.
    */
-  public function __construct(ScaffoldFilePath $prepend_path = NULL, ScaffoldFilePath $append_path = NULL, $force_append = FALSE, ScaffoldFilePath $default_path = NULL) {
+  public function __construct(
+    ?ScaffoldFilePath $prepend_path = NULL,
+    ?ScaffoldFilePath $append_path = NULL,
+    $force_append = FALSE,
+    ?ScaffoldFilePath $default_path = NULL,
+  ) {
     $this->forceAppend = $force_append;
     $this->prepend = $prepend_path;
     $this->append = $append_path;
diff --git a/composer/Plugin/Scaffold/Operations/OperationFactory.php b/composer/Plugin/Scaffold/Operations/OperationFactory.php
index 6346923b713c..5619db855828 100644
--- a/composer/Plugin/Scaffold/Operations/OperationFactory.php
+++ b/composer/Plugin/Scaffold/Operations/OperationFactory.php
@@ -122,13 +122,13 @@ protected function createAppendOp(PackageInterface $package, OperationData $oper
   /**
    * Checks to see if the specified scaffold file exists and has content.
    *
-   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath $file
-   *   Scaffold file to check.
+   * @param \Drupal\Composer\Plugin\Scaffold\ScaffoldFilePath|null $file
+   *   (optional) Scaffold file to check.
    *
    * @return bool
    *   True if the file exists and has content.
    */
-  protected function hasContent(ScaffoldFilePath $file = NULL) {
+  protected function hasContent(?ScaffoldFilePath $file = NULL) {
     if (!$file) {
       return FALSE;
     }
-- 
GitLab