private static @NotNull String generateEqualsExpression(PsiRecordComponent component) {
    PsiType type = component.getType();
    if (type instanceof PsiPrimitiveType) {
      if (TypeConversionUtil.isIntegralNumberType(type) || type.equals(PsiTypes.booleanType())) {
        return "this." + component.getName() + "==that." + component.getName();
      }
      if (TypeConversionUtil.isFloatOrDoubleType(type)) {
        String method = type.equalsToText("float") ? "Float.floatToIntBits" : "Double.doubleToLongBits";
        return method + "(this." + component.getName() + ")==" + method + "(that." + component.getName() + ")";
      }
    }
    return CommonClassNames.JAVA_UTIL_OBJECTS + ".equals(this." + component.getName() + ",that." + component.getName() + ")";
  }
private static @NotNull String generateEqualsExpression(PsiRecordComponent component)