private void applyFromSnapshot(@NotNull ExtractMethodSnapshot from) {
    myMethodName = from.myMethodName;
    myStatic = from.myStatic;
    myIsChainedConstructor = from.myIsChainedConstructor;
    myMethodVisibility = from.myMethodVisibility;
    myNullability = from.myNullability;
    myReturnType = from.myReturnType != null ? from.myReturnType.getType() : null;
    myOutputVariables = ContainerUtil.map2Array(from.myOutputVariables, new PsiVariable[0], SmartPsiElementPointer::getElement);
    LOG.assertTrue(!ArrayUtil.contains(null, myOutputVariables));

    myOutputVariable = ArrayUtil.getFirstElement(myOutputVariables);
    myArtificialOutputVariable = from.myArtificialOutputVariable != null ? from.myArtificialOutputVariable.getElement() : null;

    myVariableDatum = ContainerUtil.map2Array(from.myVariableDatum, new VariableData[0], VariableDataSnapshot::getData);
    LOG.assertTrue(!ArrayUtil.contains(null, myVariableDatum));
  }
private void applyFromSnapshot(@NotNull ExtractMethodSnapshot from)