public static UAssignOp create(UExpression variable, Kind operator, UExpression expression) {
    checkArgument(
        TAG.containsKey(operator),
        "Tree kind %s does not represent a compound assignment operator",
        operator);
    return new AutoValue_UAssignOp(variable, operator, expression);
  }
@Test
  public void equality() {
    new EqualsTester()
        .addEqualityGroup(
            UAssignOp.create(UFreeIdent.create("x"), Kind.PLUS_ASSIGNMENT, UFreeIdent.create("y")))
        .addEqualityGroup(
            UAssignOp.create(UFreeIdent.create("x"), Kind.PLUS_ASSIGNMENT, ULiteral.intLit(2)))
        .addEqualityGroup(
            UAssignOp.create(UFreeIdent.create("y"), Kind.PLUS_ASSIGNMENT, ULiteral.intLit(2)))
        .testEquals();
  }