Code Duplication    Length = 22-26 lines in 2 locations

src/SDL/Reflection/Builder/Processable/ExtendBuilder.php 2 locations

@@ 118-143 (lines=26) @@
115
     */
116
    private function extendFields(HasFields $original, HasFields $extend): void
117
    {
118
        foreach ($extend->getFields() as $extendField) {
119
            if ($original->hasField($extendField->getName())) {
120
                /**
121
                 * Check field type.
122
                 * @var FieldDefinition $field
123
                 */
124
                $field = $original->getField($extendField->getName());
125
126
                $this->getValidator(Inheritance::class)->validate($extendField, $field);
127
128
                $this->dataFieldExtender()->call($field, $extendField);
129
130
                /**
131
                 * Check field arguments
132
                 */
133
                $this->extendArguments($field, $extendField);
134
                continue;
135
            }
136
137
            $callee = function () use ($extendField): void {
138
                /** @var BaseFieldsContainer $this */
139
                $this->fields[$extendField->getName()] = $extendField;
140
            };
141
142
            $callee->call($original);
143
        }
144
    }
145
146
    /**
@@ 179-200 (lines=22) @@
176
     */
177
    private function extendArguments($original, $extend): void
178
    {
179
        foreach ($extend->getArguments() as $extendArgument) {
180
            if ($original->hasArgument($extendArgument->getName())) {
181
                /**
182
                 * Check field type.
183
                 * @var ArgumentDefinition $argument
184
                 */
185
                $argument = $original->getArgument($extendArgument->getName());
186
187
                $this->getValidator(Inheritance::class)->validate($extendArgument, $argument);
188
189
                $this->dataArgumentExtender()->call($argument, $extendArgument);
190
191
                continue;
192
            }
193
194
            $callee = function () use ($extendArgument): void {
195
                /** @var BaseArgumentsContainer $this */
196
                $this->arguments[$extendArgument->getName()] = $extendArgument;
197
            };
198
199
            $callee->call($original);
200
        }
201
    }
202
203
    /**