TypeDfaState (@NotNull final TypeDfaState state, @NotNull final Instruction instruction) { TypeDfaState newState; if (instruction.num() == 0) { newState = handleStartInstruction(); } else if (instruction instanceof ReadWriteVariableInstruction) { newState = handleReadWriteVariable(state, (ReadWriteVariableInstruction)instruction); } else if (instruction instanceof MixinTypeInstruction) { newState = handleMixin(state, (MixinTypeInstruction)instruction); } else if (instruction instanceof ArgumentsInstruction) { newState = handleArguments(state, (ArgumentsInstruction)instruction); } else if (instruction instanceof NegatingGotoInstruction) { newState = handleNegation(state, (NegatingGotoInstruction)instruction); } else { newState = state; } myCache.publishDescriptor(newState, instruction); return newState; }