public static <P extends XBreakpointProperties> XLineBreakpoint<P> addLineBreakpoint(XBreakpointManager breakpointManager,
                                                                                       XLineBreakpointType<P>.XLineBreakpointVariant variant,
                                                                                       VirtualFile file,
                                                                                       int line,
                                                                                       Boolean temporary) {
    var properties = variant.createProperties();
    var type = variant.getType();
    var breakpoint = addLineBreakpoint(breakpointManager, type, properties, file, line, temporary);
    if (!type.variantAndBreakpointMatch(breakpoint, variant)) {
      LOG.error("breakpoint doesn't match source variant, " + type + ", " + variant.getClass());
    }
    return breakpoint;
  }
public static <P extends XBreakpointProperties> XLineBreakpoint<P> addLineBreakpoint(XBreakpointManager breakpointManager,
                                                                                       XLineBreakpointType<P>.XLineBreakpointVariant variant,
                                                                                       VirtualFile file,
                                                                                       int line,
                                                                                       Boolean temporary)