Code Duplication    Length = 16-21 lines in 3 locations

src/Rule/AndRule.php 2 locations

@@ 415-435 (lines=21) @@
412
                            }
413
                        }
414
                    }
415
                    elseif (InRule::operator == $operator) {
416
                        $first_in = reset($operands);
417
418
                        foreach ($operands as $i => $next_in) {
419
                            if ($first_in === $next_in) {
420
                                continue;
421
                            }
422
423
                            $first_in->setPossibilities( array_intersect(
424
                                $first_in->getPossibilities(),
425
                                $next_in->getPossibilities()
426
                            ) );
427
428
                            unset($operands[$i]);
429
                        }
430
431
                        // [field in []] <=> false
432
                        if ( ! $first_in->getPossibilities()) {
433
                            return [];
434
                        }
435
                    }
436
                    elseif (NotInRule::operator == $operator) {
437
                        $first_not_in = reset($operands);
438
@@ 436-451 (lines=16) @@
433
                            return [];
434
                        }
435
                    }
436
                    elseif (NotInRule::operator == $operator) {
437
                        $first_not_in = reset($operands);
438
439
                        foreach ($operands as $i => $next_not_in) {
440
                            if ($first_not_in === $next_not_in) {
441
                                continue;
442
                            }
443
444
                            $first_not_in->setPossibilities( array_merge(
445
                                $first_not_in->getPossibilities(),
446
                                $next_not_in->getPossibilities()
447
                            ) );
448
449
                            unset($operands[$i]);
450
                        }
451
                    }
452
                }
453
                catch (\Exception $e) {
454
                    VisibilityViolator::setHiddenProperty($e, 'message', $e->getMessage() . "\n" . var_export([

src/Rule/OrRule.php 1 location

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