DFAType (@NotNull NegatingGotoInstruction negation) { if (mixins.isEmpty()) { return this; } final Set<ConditionInstruction> conditionsToNegate = negation.getCondition().getDependentConditions(); if (ContainerUtil.and(mixins, mixin -> !conditionsToNegate.contains(mixin.myCondition))) { return this; } DFAType result = copy(); for (ListIterator<Mixin> iterator = result.mixins.listIterator(); iterator.hasNext(); ) { Mixin mixin = iterator.next(); if (conditionsToNegate.contains(mixin.myCondition)) { iterator.set(mixin.negate()); } } return result; }