Code Duplication    Length = 16-21 lines in 3 locations

src/Rule/OrRule.php 1 location

@@ 203-218 (lines=16) @@
200
                        });
201
                        $operands = [reset($operands)];
202
                    }
203
                    elseif (InRule::operator == $operator) {
204
                        $first_in = reset($operands);
205
206
                        foreach ($operands as $i => $next_in) {
207
                            if ($first_in === $next_in) {
208
                                continue;
209
                            }
210
211
                            $first_in->setPossibilities( array_merge(
212
                                $first_in->getPossibilities(),
213
                                $next_in->getPossibilities()
214
                            ) );
215
216
                            unset($operands[$i]);
217
                        }
218
                    }
219
                }
220
                catch (\Exception $e) {
221
                    VisibilityViolator::setHiddenProperty($e, 'message', $e->getMessage() . "\n" . var_export([

src/Rule/AndRule.php 2 locations

@@ 428-448 (lines=21) @@
425
                            }
426
                        }
427
                    }
428
                    elseif (InRule::operator == $operator) {
429
                        $first_in = reset($operands);
430
431
                        foreach ($operands as $i => $next_in) {
432
                            if ($first_in === $next_in) {
433
                                continue;
434
                            }
435
436
                            $first_in->setPossibilities( array_intersect(
437
                                $first_in->getPossibilities(),
438
                                $next_in->getPossibilities()
439
                            ) );
440
441
                            unset($operands[$i]);
442
                        }
443
444
                        // [field in []] <=> false
445
                        if ( ! $first_in->getPossibilities()) {
446
                            return [];
447
                        }
448
                    }
449
                    elseif (NotInRule::operator == $operator) {
450
                        $first_not_in = reset($operands);
451
@@ 449-464 (lines=16) @@
446
                            return [];
447
                        }
448
                    }
449
                    elseif (NotInRule::operator == $operator) {
450
                        $first_not_in = reset($operands);
451
452
                        foreach ($operands as $i => $next_not_in) {
453
                            if ($first_not_in === $next_not_in) {
454
                                continue;
455
                            }
456
457
                            $first_not_in->setPossibilities( array_merge(
458
                                $first_not_in->getPossibilities(),
459
                                $next_not_in->getPossibilities()
460
                            ) );
461
462
                            unset($operands[$i]);
463
                        }
464
                    }
465
                }
466
                catch (\Exception $e) {
467
                    VisibilityViolator::setHiddenProperty($e, 'message', $e->getMessage() . "\n" . var_export([