@NotNull
  private static Frame<SourceValue> makePreFrame(@NotNull Frame<? extends Value> frame) {
    Frame<SourceValue> preFrame = new Frame<>(frame.getLocals(), frame.getMaxStackSize());
    for (int i = 0; i < frame.getLocals(); i++) {
      preFrame.setLocal(i, new PreValue(true, i, frame.getLocal(i).getSize()));
    }
    for (int i = 0; i < frame.getStackSize(); i++) {
      preFrame.push(new PreValue(false, i, frame.getStack(i).getSize()));
    }
    return preFrame;
  }
@NotNull
  private static Frame<SourceValue> makePreFrame(@NotNull Frame<? extends Value> frame)