From 966c9c5147356706f9c7efb3b723b6b98315645e Mon Sep 17 00:00:00 2001 From: google-java-format Team Date: Mon, 12 Oct 2026 13:06:40 -0700 Subject: [PATCH] Automated rollback of commit 5f7a56980c6f2731e033004458e2866d15c441de. ## Reason for rollback Breaks gws.all Search Release TAP Project Target `//java/com/google/gws/common/impl/geo/antiscraping:antiscraping_class_unloading_test` is currently failing at head, this rollback fixes the failure. [] following[] Triage bug: [b/572843931](http://b/572843931) ## Evidence & Verification Matrix | Check | Target State | Result | Sponge / Evidence | | :--- | :--- | :--- | :--- | | 1. HEAD Verification | main @ HEAD | FAILED | http://sponge2/6275dedb-582f-4274-8ef7-dd3efc981c61 | | 2. Rollback Verification | HEAD with https://github.com/google/google-java-format/commit/5f7a56980c6f2731e033004458e2866d15c441de rolled back | PASSED | http://sponge2/1b1b55fd-62f8-49d9-ac66-7bd2df83e6a1 | | 3. Pre-Culprit State | main @ unknown commit | PASSED | Build Rabbit: passed at unknown commit | | 4. Culprit Introduction | main @ https://github.com/google/google-java-format/commit/5f7a56980c6f2731e033004458e2866d15c441de | FAILED | Build Rabbit: failed at https://github.com/google/google-java-format/commit/5f7a56980c6f2731e033004458e2866d15c441de | Search Build Monitor team members can access the jetski conversation for this agent at [] Full triage log (agent conversation and triage script output): [] ## Original change description ``` Overall LGTM: true Reviewers: lizlooney (approved) Support value classes and value records in google-java-format. Recognize the `value` contextual modifier in `JavaInputAstVisitor` and `ModifierOrderer` when formatting Project Valhalla value classes and value records on JDKs that support them. PiperOrigin-RevId: 998105643 --- .../java/JavaInputAstVisitor.java | 3 +- .../java/ModifierOrderer.java | 4 +- .../googlejavaformat/java/FormatterTest.java | 37 ------------------- .../java/ModifierOrdererTest.java | 10 ----- 4 files changed, 2 insertions(+), 52 deletions(-) diff --git a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java index 9e067cf08..d138011f0 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java +++ b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java @@ -2643,8 +2643,7 @@ private static boolean isModifier(String token) { "default", "sealed", "non", - "-", - "value" -> + "-" -> true; default -> false; }; diff --git a/core/src/main/java/com/google/googlejavaformat/java/ModifierOrderer.java b/core/src/main/java/com/google/googlejavaformat/java/ModifierOrderer.java index 5bb3e1503..140b5647d 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/ModifierOrderer.java +++ b/core/src/main/java/com/google/googlejavaformat/java/ModifierOrderer.java @@ -19,7 +19,6 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.getLast; -import com.google.common.base.Enums; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; import com.google.common.collect.Range; @@ -185,7 +184,7 @@ private static void addTrivia(StringBuilder replacement, ImmutableList switch (token.getTok().getText()) { case "sealed" -> Modifier.SEALED; - case "value" -> Enums.getIfPresent(Modifier.class, "VALUE").orNull(); default -> null; }; }; diff --git a/core/src/test/java/com/google/googlejavaformat/java/FormatterTest.java b/core/src/test/java/com/google/googlejavaformat/java/FormatterTest.java index c0f2ab177..71a286f50 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/FormatterTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/FormatterTest.java @@ -16,11 +16,9 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; -import static com.google.common.truth.TruthJUnit.assume; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertThrows; -import com.google.common.base.Enums; import com.google.common.io.CharStreams; import com.google.googlejavaformat.java.JavaFormatterOptions.Style; import java.io.ByteArrayInputStream; @@ -31,7 +29,6 @@ import java.io.StringWriter; import java.nio.file.Files; import java.nio.file.Path; -import javax.lang.model.element.Modifier; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -872,38 +869,4 @@ public void maxLineLengthOutOfRange() { assertThat(Style.builder().maxLineLength(999).build().maxLineLength()).isEqualTo(999); } - - @Test - public void valueClassAndRecord() throws Exception { - assume().that(Enums.getIfPresent(Modifier.class, "VALUE").isPresent()).isTrue(); - String input = - """ - value final public class PointValueClass { - final int x; - final int y; - - PointValueClass(int x, int y) { - this.x = x; - this.y = y; - } - } - - value public record PointValueRecord(int x, int y) {} - """; - String expected = - """ - public final value class PointValueClass { - final int x; - final int y; - - PointValueClass(int x, int y) { - this.x = x; - this.y = y; - } - } - - public value record PointValueRecord(int x, int y) {} - """; - assertThat(new Formatter().formatSource(input)).isEqualTo(expected); - } } diff --git a/core/src/test/java/com/google/googlejavaformat/java/ModifierOrdererTest.java b/core/src/test/java/com/google/googlejavaformat/java/ModifierOrdererTest.java index df5c2ae62..1cb165435 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/ModifierOrdererTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/ModifierOrdererTest.java @@ -17,12 +17,9 @@ package com.google.googlejavaformat.java; import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.TruthJUnit.assume; -import com.google.common.base.Enums; import com.google.common.collect.Range; import java.util.Arrays; -import javax.lang.model.element.Modifier; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -111,11 +108,4 @@ public void sealedClass() throws FormatterException { assertThat(ModifierOrderer.reorderModifiers("non-sealed sealed public").getText()) .isEqualTo("public sealed non-sealed"); } - - @Test - public void valueClass() throws FormatterException { - assume().that(Enums.getIfPresent(Modifier.class, "VALUE").isPresent()).isTrue(); - assertThat(ModifierOrderer.reorderModifiers("value final public").getText()) - .isEqualTo("public final value"); - } }