)]}'
{
  "log": [
    {
      "commit": "74546d84eb02dabcf888b0cbf028cb3241a59462",
      "tree": "d8a03525710d2bebe866c5b465352024a8758703",
      "parents": [
        "b89303466294f9a6e885beb43e5967fb589433f7"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jun 12 17:03:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 12 17:04:29 2026"
      },
      "message": "Recommend `Precondition` APIs instead of manually throwing runtime exceptions when testing against input parameters.\n\nFlume results: unknown commit\n\nPiperOrigin-RevId: 931204960\n"
    },
    {
      "commit": "b89303466294f9a6e885beb43e5967fb589433f7",
      "tree": "45a7c3928c945856d1734f20f34806f6afbab512",
      "parents": [
        "60b448e8420fafa68f533f8ab9dc29d82d78d10e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Jun 12 12:56:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 12 12:56:57 2026"
      },
      "message": "Migrate UnrecognisedJavadocTag to new setMessage method\n\nPiperOrigin-RevId: 931107575\n"
    },
    {
      "commit": "60b448e8420fafa68f533f8ab9dc29d82d78d10e",
      "tree": "929b72da0cc58783f43e846e11c245f96874f4c1",
      "parents": [
        "e4b37f40b7800136c98c49656b88a7b0cb1a0ff6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Jun 12 12:26:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 12 12:27:07 2026"
      },
      "message": "Add overload of Description.Builder.setMessage in Error Prone\n\nAdds a new overload of Description.Builder.setMessage that accepts a format string and formatting arguments (varargs), and is annotated with @FormatMethod/@FormatString.\n\nUpdates all call sites in the Error Prone codebase to use the new overload instead of passing the result of String.format.\n\nPiperOrigin-RevId: 931097008\n"
    },
    {
      "commit": "e4b37f40b7800136c98c49656b88a7b0cb1a0ff6",
      "tree": "4365740110d51974feda7005e1a5cfff5cafbff8",
      "parents": [
        "4525e7919cbb578e92eb81d86e615424524f2efb"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Jun 12 12:22:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 12 12:23:05 2026"
      },
      "message": "Include the specific invalid javadoc tag in the diagnostic for UnrecognisedJavadocTag\n\nPiperOrigin-RevId: 931095544\n"
    },
    {
      "commit": "4525e7919cbb578e92eb81d86e615424524f2efb",
      "tree": "82221194f5e5d2dadd141baa853459f9e1927283",
      "parents": [
        "ff5d13cc5cf1e5f0db705fce19faaeb6a32e65a7"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jun 11 19:20:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 11 19:21:14 2026"
      },
      "message": "`TryFailRefactoring`: remove unused exception variable when the exception is not referenced in the `catch` block.\n\nPiperOrigin-RevId: 930671932\n"
    },
    {
      "commit": "ff5d13cc5cf1e5f0db705fce19faaeb6a32e65a7",
      "tree": "ee7103a169af296e7bf3552374387c946beaf5b0",
      "parents": [
        "aeb805209bc2718764f56b8db24efaa15565bf70"
      ],
      "author": {
        "name": "subhramit",
        "email": "subhramit.bb@live.in",
        "time": "Thu Jun 11 19:05:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 11 19:06:52 2026"
      },
      "message": "Fix `NullTernary` false positive by handling `yield` better in `TargetType`.\n\nFixes https://github.com/google/error-prone/pull/5860\nFixes https://github.com/google/error-prone/pull/5753\n\nRELNOTES\u003dn/a\nPiperOrigin-RevId: 930664441\n"
    },
    {
      "commit": "aeb805209bc2718764f56b8db24efaa15565bf70",
      "tree": "497ff535e75610e5ac34a72f95f855f048d2ed0c",
      "parents": [
        "b2854359504487fb9decae212f9a2868292f70ba"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jun 10 22:20:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 22:21:23 2026"
      },
      "message": "Allow binary expressions (like string concatenation and safe arithmetic) inside `assertThrows` lambda if their operands don\u0027t need hoisting.\nThis avoids unnecessary refactoring of what are almost always harmless expressions.\n\nPiperOrigin-RevId: 930108341\n"
    },
    {
      "commit": "b2854359504487fb9decae212f9a2868292f70ba",
      "tree": "2eac765ec5c7da5f49c0dd45a05d3f1a9ff7bc9a",
      "parents": [
        "6ad4adf8eaa3af0fa6f56165d5dd9bdf5249ea0b"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Jun 10 17:37:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 17:38:51 2026"
      },
      "message": "[RefactorSwitch] flip flag to enable simplification of switches\n\nPiperOrigin-RevId: 929944051\n"
    },
    {
      "commit": "6ad4adf8eaa3af0fa6f56165d5dd9bdf5249ea0b",
      "tree": "8f34b7567ca8ff74464b357a9bf83f7aeaea2fc7",
      "parents": [
        "d39b58338fc605fc3b0dc1a8b11384e22e6addcd"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jun 10 16:02:28 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 16:03:11 2026"
      },
      "message": "Fix an infinite recursion bug in `PreferCharsetOverload`.\n\nSee also unknown commit\n\nPiperOrigin-RevId: 929887275\n"
    },
    {
      "commit": "d39b58338fc605fc3b0dc1a8b11384e22e6addcd",
      "tree": "81dc5a99dd86af04eb79a94b62600a2904bd1904",
      "parents": [
        "a1c7a7c92dc78dacd356e3c3f5714a4b493cde46"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jun 10 13:26:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 13:27:58 2026"
      },
      "message": "Introduce `PreferCharsetOverload`, a new Error Prone check.\n\nThis check suggests using overloads that accept `java.nio.charset.Charset` instead of those that accept a `String` encoding name.\n\nThe checker identifies method and constructor invocations where a `String` parameter is likely used to specify a charset (based on parameter names like `charset`, `encoding`, `cs`). It then looks for an overload where this `String` parameter is replaced by a `Charset`.\n\nThe suggested fixes include:\n\n*   Replacing constant charset names (e.g., `\"UTF-8\"`) with the corresponding `StandardCharsets` constant (e.g., `UTF_8`).\n*   Removing redundant calls to `Charset.name()`, `displayName()`, or `toString()` when a `Charset` instance is already available.\n*   Wrapping other `String` expressions with `Charset.forName()` as a fallback.\n\nPiperOrigin-RevId: 929813068\n"
    },
    {
      "commit": "a1c7a7c92dc78dacd356e3c3f5714a4b493cde46",
      "tree": "aa721e4c8d3a08aa83e959106feb3a3310f95383",
      "parents": [
        "b44363413ead916b37f2a7a82d91a7ab1efe06a3"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jun 10 12:24:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 12:25:32 2026"
      },
      "message": "Fix a crash in AssertThrowsMinimizer\n\nPiperOrigin-RevId: 929784982\n"
    },
    {
      "commit": "b44363413ead916b37f2a7a82d91a7ab1efe06a3",
      "tree": "2675bf3ee2f6a9dfed3e47e4ba321337de6736c4",
      "parents": [
        "b12b5f206d0f9f4a9f4c647839096a7a571c0961"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jun 10 11:07:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 11:07:42 2026"
      },
      "message": "Update JDK version from 27 to 28 in CI workflow"
    },
    {
      "commit": "b12b5f206d0f9f4a9f4c647839096a7a571c0961",
      "tree": "04d261f3c8855b055321adb4f649f612f91ece02",
      "parents": [
        "a7ca02a09c4b7c343eaf3eae6badbf3cf14568c4"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Jun 10 00:45:36 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 10 00:46:24 2026"
      },
      "message": "In `StringCharset`, move the description from `explanation` to `summary`.\n\nPiperOrigin-RevId: 929501139\n"
    },
    {
      "commit": "a7ca02a09c4b7c343eaf3eae6badbf3cf14568c4",
      "tree": "cf3cc987b0e64bb75db68cbd7db5a22a14e0351c",
      "parents": [
        "6b565177d4dd90b09abc646e4639caa117637c18"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Jun 09 19:18:55 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 09 19:19:43 2026"
      },
      "message": "Update `AssertThrowsUtils` to emit `var thrown \u003d assertThrows(...)` instead of `MyException thrown \u003d assertThrows(...)`. This aligns with best practices []\n\nPiperOrigin-RevId: 929335928\n"
    },
    {
      "commit": "6b565177d4dd90b09abc646e4639caa117637c18",
      "tree": "e9ac58919e3d36828c118d7193fdc1a2d6f50fec",
      "parents": [
        "d36e74f6a7bde44a23dcc6f8c729f4bf909455f6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Jun 09 17:09:26 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 09 17:12:22 2026"
      },
      "message": "Fix handling of nested tags in  UnrecognisedJavadocTag\n\nPiperOrigin-RevId: 929262364\n"
    },
    {
      "commit": "d36e74f6a7bde44a23dcc6f8c729f4bf909455f6",
      "tree": "8c68cd85c121652ed31a74aaad08f57e9b61e894",
      "parents": [
        "c3581e93a0db15e35f8f7b3b6bb5cfe5eadbe8dc"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Jun 09 15:22:12 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 09 15:22:59 2026"
      },
      "message": "Remove translation of the `fail()` message into `assertThrows()`. We already filter out constant failure messages (since they don\u0027t provide any value), but there\u0027s another decent sized chunk of users who want to include the value produced by the lambda, and that\u0027s just not something `assertThrows()` can support (see b/114409026#comment19).\n\nPiperOrigin-RevId: 929208061\n"
    },
    {
      "commit": "c3581e93a0db15e35f8f7b3b6bb5cfe5eadbe8dc",
      "tree": "497d483cfe88bb63d3024799cb77e7907492dfa4",
      "parents": [
        "da1f32b7908e5da8376fff4e57296ef7a84a4e81"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Jun 09 13:47:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 09 13:48:44 2026"
      },
      "message": "Fix JavacFileManager compiler crash during speculative recompiles in modular projects\n\nPiperOrigin-RevId: 929164894\n"
    },
    {
      "commit": "da1f32b7908e5da8376fff4e57296ef7a84a4e81",
      "tree": "e1b3f3e4e69f6a0df892feb5ec6e1122525e4eb9",
      "parents": [
        "dee62f74041f8944377880476ec4babb12863b37"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jun 08 15:05:27 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jun 08 15:06:32 2026"
      },
      "message": "Remove assignments from `assertThrows()` lambdas. A large percentage of remaining usages of the try/fail pattern assign the result of the statement to a variable, only to never use it (the assignment never happens because the statement throws).\n\nPiperOrigin-RevId: 928568034\n"
    },
    {
      "commit": "dee62f74041f8944377880476ec4babb12863b37",
      "tree": "01250279d1a635b94dd768ed9ac515b17374438b",
      "parents": [
        "493944857cd9f4af7e0846481f7ebcc027c17663"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jun 08 05:34:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jun 08 05:35:15 2026"
      },
      "message": "Update `AssertThrowsBlockToExpression` to re-write single `VariableTree`s into `ExpressionTree`s so they can be unblockified.\n\nPiperOrigin-RevId: 928336066\n"
    },
    {
      "commit": "493944857cd9f4af7e0846481f7ebcc027c17663",
      "tree": "02fa269344ca31dd6dbbde46219a6f366b728762",
      "parents": [
        "30fd05a4d19da16fd141b060a42557f2e772b9d2"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jun 05 18:16:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 05 18:17:10 2026"
      },
      "message": "Only hoist the last statement into the `assertThrows()` lambda.\n\nPiperOrigin-RevId: 927391038\n"
    },
    {
      "commit": "30fd05a4d19da16fd141b060a42557f2e772b9d2",
      "tree": "2c9332da18eb45efb71eda5d77b5a531991298bb",
      "parents": [
        "3f07787d3cc47aee13e71fa8b20cd2a0d1186abe"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jun 05 14:36:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jun 05 14:37:50 2026"
      },
      "message": "refactor: Rename JavaLangClash bug pattern to AvoidCommonTypeNames\n\nRename the `JavaLangClash` checker to `AvoidCommonTypeNames` to reflect a more general name, while keeping `JavaLangClash` as an alias (`altNames`) for backward compatibility (suppressions).\n\nUpdate the checker class, tests, registration, and documentation.\n\nPiperOrigin-RevId: 927292200\n"
    },
    {
      "commit": "3f07787d3cc47aee13e71fa8b20cd2a0d1186abe",
      "tree": "fa49572385053c8df1315417ccf325a48054cb99",
      "parents": [
        "da0af6d1eee5272d8d8e12ebec9d2d6e31784321"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jun 04 20:04:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 04 20:05:41 2026"
      },
      "message": "Fix broken Java Puzzlers PDF link.\n\nPiperOrigin-RevId: 926844508\n"
    },
    {
      "commit": "da0af6d1eee5272d8d8e12ebec9d2d6e31784321",
      "tree": "e31e1d9bdd27d0903ddbd2d0189490743b2b3b46",
      "parents": [
        "924cb63735c9e6e44b0362b8ed9fbcfdf1dc8d9d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Jun 04 14:21:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 04 14:22:02 2026"
      },
      "message": "Fix ASTHelpersSuggestions incorrect suggestion for Symbol.packge()\n\nASTHelpersSuggestions now conditionally appends `.orElseThrow()` to the suggested replacement `enclosingPackage(symbol)` if the call is dereferenced or used in a context that requires a value, since `enclosingPackage` returns `Optional` instead of `PackageSymbol`.\n\nIf the call is discarded (statement expression), it continues to suggest `enclosingPackage(symbol)`.\n\nPiperOrigin-RevId: 926675032\n"
    },
    {
      "commit": "924cb63735c9e6e44b0362b8ed9fbcfdf1dc8d9d",
      "tree": "32db9470e90c9560cc5f56caa525368b4629c709",
      "parents": [
        "d943fd8018cd15efb823615bb844d4e5f8372b32"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jun 04 13:54:26 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 04 13:55:30 2026"
      },
      "message": "Cache the list of `java.lang` simple names.\n\nPiperOrigin-RevId: 926664048\n"
    },
    {
      "commit": "d943fd8018cd15efb823615bb844d4e5f8372b32",
      "tree": "468d9ddc94c2822effa421491d3c4b01f542dcc7",
      "parents": [
        "7dc0e56ff035e16206174f1b4dc3a2e3d06810ee"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Jun 04 13:41:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jun 04 13:42:55 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 926658844\n"
    },
    {
      "commit": "7dc0e56ff035e16206174f1b4dc3a2e3d06810ee",
      "tree": "383cdabd371f55c5fce794e01e9f448f6b882083",
      "parents": [
        "8bc7e55fd32616ea53eabef58598d9c7212deb4a"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Jun 03 19:17:43 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 03 19:18:30 2026"
      },
      "message": "For unused variables, suggest the \"preserve side effects\" fix as the primary fix on methods that are `@CanIgnoreReturnValue`.\n\nI thought of this during unknown commit, when all the default fix suggestions were to remove side-effect-ful calls to the `expectFailure` API (which I ended up annotating with `@CanIgnoreReturnValue`).\n\nIdeally, I might consult the cirvlist, not just annotations on the method. That would be even more appealing if we were able to peel off parts of the cirvlist into a \"riulist.\" It would also become more important if we were to stop reannotating `@CIRV` annotations into JDK APIs.\n\nPiperOrigin-RevId: 926188508\n"
    },
    {
      "commit": "8bc7e55fd32616ea53eabef58598d9c7212deb4a",
      "tree": "d18438eea0901b49bf920c8b053f62635517fa89",
      "parents": [
        "fbdfcd6c01f2ec3e1aea0c0803d0cb87dd0cd1f9"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Wed Jun 03 12:37:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jun 03 12:38:58 2026"
      },
      "message": "Update bugpatterns/threadsafety tests to use Java text blocks.\n\nPiperOrigin-RevId: 925964023\n"
    },
    {
      "commit": "fbdfcd6c01f2ec3e1aea0c0803d0cb87dd0cd1f9",
      "tree": "a221c9804d5e5ce04f44c8e213c01c230ee70dc0",
      "parents": [
        "3b5af5402975c4d525cd39d376cdb577f39dbf30"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue Jun 02 20:44:24 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 02 20:45:04 2026"
      },
      "message": "[ErrorProne] Introduce checker for implicitly-boxing `Comparator.comparing` key extractors\n\nWhen the `keyExtractor` function provided to `Comparator.comparing` produces a numerical primitive, the primitives are boxed for the comparison just to satisfy the `Function` type; the comparison result is unchanged. This is completely wasted object churn, and very simple to correct by switching to the appropriate choice of `comparingInt`, `comparingLong`, or `comparingDouble`.\n\nPiperOrigin-RevId: 925554716\n"
    },
    {
      "commit": "3b5af5402975c4d525cd39d376cdb577f39dbf30",
      "tree": "c13ee891fd3144d4e80b16c139f6c1eebe0b5661",
      "parents": [
        "5d1df3d6c3b9b80fca0289e4a236f26eccba077c"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue Jun 02 16:04:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jun 02 16:05:41 2026"
      },
      "message": "Update bugpatterns/nullness tests to use Java text blocks.\n\nNewlines and such were added to satisfy[]\n\nPiperOrigin-RevId: 925384032\n"
    },
    {
      "commit": "5d1df3d6c3b9b80fca0289e4a236f26eccba077c",
      "tree": "303ab6df09fe05e31ee6055baeda0d440da434e5",
      "parents": [
        "8dfbfad9648b43ff5535b85d1c1a84be0edc0a1b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri May 29 15:57:34 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 29 15:59:06 2026"
      },
      "message": "Handle new AST nodes for `var` types in refaster\n\nAfter https://bugs.openjdk.org/browse/JDK-8268850, VariableTree#getType will return null for implicit lambda parameter types.\n\nPiperOrigin-RevId: 923440562\n"
    },
    {
      "commit": "8dfbfad9648b43ff5535b85d1c1a84be0edc0a1b",
      "tree": "c83b49a4a2cd328fe94d971512dc48f5789a420e",
      "parents": [
        "74ba4216abb08eeabea96ea6ea237c7d384eb1c1"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu May 28 18:19:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 28 18:19:55 2026"
      },
      "message": "Allow `\u003d\u003d` for classes that provably don\u0027t override `equals`.\n\n(a counterproposal to https://github.com/google/error-prone/commit/a116aaf30fc485b5b0c876e434e3b8df526a2ecb)\n\nPiperOrigin-RevId: 922877170\n"
    },
    {
      "commit": "74ba4216abb08eeabea96ea6ea237c7d384eb1c1",
      "tree": "b786ee1143b67e872c8e158f39fb83348ca7f179",
      "parents": [
        "a116aaf30fc485b5b0c876e434e3b8df526a2ecb"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu May 28 11:26:20 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 28 11:27:05 2026"
      },
      "message": "Internal change\n\nPiperOrigin-RevId: 922690277\n"
    },
    {
      "commit": "a116aaf30fc485b5b0c876e434e3b8df526a2ecb",
      "tree": "e865898267374b8eb596b06c9c19e82d23f0f059",
      "parents": [
        "c29ebc0dacccc665d9fab027825c8b31e88aaad0"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 26 18:14:13 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 26 18:15:24 2026"
      },
      "message": "Match on more types in ReferenceEquality\n\nPiperOrigin-RevId: 921575366\n"
    },
    {
      "commit": "c29ebc0dacccc665d9fab027825c8b31e88aaad0",
      "tree": "be4f3afa53ce42df0bee73e266970c6e82a62c64",
      "parents": [
        "e47929cbb0a85c04449850c44d261fb746edd9a7"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 26 17:59:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 26 18:00:09 2026"
      },
      "message": "More javadoc cleanup to ErrorProne checks.\n\nPiperOrigin-RevId: 921566157\n"
    },
    {
      "commit": "e47929cbb0a85c04449850c44d261fb746edd9a7",
      "tree": "85d759f270e46f3e788b131b199fe4ef4adffa5d",
      "parents": [
        "420f7d2c521d1772094398b90fa6a54b6a0fcbbc"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 26 17:39:14 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 26 17:40:08 2026"
      },
      "message": "Add `VarWithPrimitive` to discourage `var` with any primitive type.\n\nUsing `var` with primitive types (e.g., `var x \u003d 0;`, `var y \u003d getAgeAsLong();`) provides little benefit in readability and can hide the actual types.\n\nThis change:\n- Matches any variable declared with `var` that infers to a primitive type.\n- Sets the severity to `SUGGESTION`.\n- Leaves the check disabled by default in Tricorder/blaze for now.\n\nSee https://openjdk.org/projects/amber/guides/lvti-style-guide#G7\n\nPiperOrigin-RevId: 921553438\n"
    },
    {
      "commit": "420f7d2c521d1772094398b90fa6a54b6a0fcbbc",
      "tree": "cf7b49f13d61f050381681f6a6d733a9e68d2e32",
      "parents": [
        "bfbb454810a570353dcb68f8540b2c7a5c23a2b6"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 26 17:23:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 26 17:25:32 2026"
      },
      "message": "Add `NonCanonicalStaticMemberImport` to Klippy.\n\nThere\u0027s about 3k static imports of `org.mockito.Mockito.any` (and friends), and I\u0027d like to see those changed to the canonical import (`org.mockito.ArgumentMatchers.any`).\n\nPiperOrigin-RevId: 921543139\n"
    },
    {
      "commit": "bfbb454810a570353dcb68f8540b2c7a5c23a2b6",
      "tree": "5cb98898c7dd9c53b51dde7cc541b93cdd655da6",
      "parents": [
        "a2a3aa4a01f1db4377078d5160ad002147f6b328"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 26 16:51:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 26 16:53:06 2026"
      },
      "message": "Re-write `NonCanonicalStaticMemberImportTest` to use `BugCheckerRefactoringTestHelper` and add a test for `Mockito.any()`.\n\nPiperOrigin-RevId: 921524081\n"
    },
    {
      "commit": "a2a3aa4a01f1db4377078d5160ad002147f6b328",
      "tree": "371457d77c28b6e6ad695c1cb93895a3b570dc89",
      "parents": [
        "31f99c9ab1a0d03b8442e062e86385cede0c0edb"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Sat May 23 01:24:07 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat May 23 01:25:05 2026"
      },
      "message": "Minor improvement to `EqualsIncompatibleType` wording.\n\nI felt that \"any Integer is not equal to any String\" didn\u0027t read all that well, and also the paragraph had \"However\" beginning two consecutive sentences.\n\nPiperOrigin-RevId: 919952732\n"
    },
    {
      "commit": "31f99c9ab1a0d03b8442e062e86385cede0c0edb",
      "tree": "3a87567686ad81f8292012208b94cfd2ce880236",
      "parents": [
        "85037e0f26ebb8b7d83ecb18bdb6daf656c857a4"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri May 22 13:38:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 22 13:39:27 2026"
      },
      "message": "Discourage `java.util.regex.Matcher#{hitEnd,requireEnd}` in JdkObsolete\n\nPiperOrigin-RevId: 919647644\n"
    },
    {
      "commit": "85037e0f26ebb8b7d83ecb18bdb6daf656c857a4",
      "tree": "92585ba3a17df3f7c327068b78e04b843516ef27",
      "parents": [
        "c292e5eca9a2babbc506dda0022be5a05ecdc130"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu May 21 22:44:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 21 22:45:28 2026"
      },
      "message": "Add some additional tests to `SingleTestParameterTest` and `PreferTestParameterTest`.\n\nThey are similar and related, but currently do not overlap.\n\nPiperOrigin-RevId: 919292966\n"
    },
    {
      "commit": "c292e5eca9a2babbc506dda0022be5a05ecdc130",
      "tree": "d4538e0a76219ee61308e58f37faf816150be058",
      "parents": [
        "2b6f0bd61a53c4ec45155025d07ef75c68d782df"
      ],
      "author": {
        "name": "Nick Glorioso",
        "email": "glorioso@google.com",
        "time": "Thu May 21 20:43:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 21 20:45:11 2026"
      },
      "message": "Add further tests of type substitution inlining.\n\nPiperOrigin-RevId: 919232730\n"
    },
    {
      "commit": "2b6f0bd61a53c4ec45155025d07ef75c68d782df",
      "tree": "e0efa6d423f6256e09e9e5f460f07983f56a57ae",
      "parents": [
        "2ba8884b17b8aa56f236895b0a99f43c4a0a15b6"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed May 20 22:04:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed May 20 22:05:14 2026"
      },
      "message": "Improve varargs handling in `AbstractToString`.\n\nPiperOrigin-RevId: 918671370\n"
    },
    {
      "commit": "2ba8884b17b8aa56f236895b0a99f43c4a0a15b6",
      "tree": "98dfaab8ed3b11016164a4eb9575fe84ac80705f",
      "parents": [
        "f14358d1bd7697d6355d5f13ed1a9e1422520a29"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed May 20 14:56:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed May 20 14:57:32 2026"
      },
      "message": "[MissingCasesInEnumSwitch] corrects false positive finding by aligning exhaustiveness logic to `IfChainToSwitch`\n\nFixes: https://github.com/google/error-prone/issues/5798\nPiperOrigin-RevId: 918449437\n"
    },
    {
      "commit": "f14358d1bd7697d6355d5f13ed1a9e1422520a29",
      "tree": "9592b036f9fd3ec6f08495f010e54126cf0d15a7",
      "parents": [
        "581ee15e9eb5aed34cc4e5eb76a6c76a19ee9978"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 19 22:27:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 22:28:31 2026"
      },
      "message": "Add `PreferTestParameter`, which suggests using `@TestParameter` instead of `@TestParameters` for exhaustive `boolean` and `enum` parameters on single-element parameterized tests.\n\nPiperOrigin-RevId: 918059231\n"
    },
    {
      "commit": "581ee15e9eb5aed34cc4e5eb76a6c76a19ee9978",
      "tree": "f72631201704800e93d9e578e78a1d0dbac71f13",
      "parents": [
        "b55c3e59e00dfab668b4a5fa780fd83953d2b1d7"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue May 19 19:04:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 19:05:33 2026"
      },
      "message": "Make `AbstractToString` cover method references.\n\nPiperOrigin-RevId: 917955274\n"
    },
    {
      "commit": "b55c3e59e00dfab668b4a5fa780fd83953d2b1d7",
      "tree": "28ab88e3f350d40aa74e8dcb456d7340c13f7ca3",
      "parents": [
        "058f57dc1a1dca9ecbc1bc974e908553c242f069"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue May 19 16:16:57 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 16:17:58 2026"
      },
      "message": "PUBLIC: Improve warning re. JUnit3 in `JdkObsolete`.\n\nPiperOrigin-RevId: 917870620\n"
    },
    {
      "commit": "058f57dc1a1dca9ecbc1bc974e908553c242f069",
      "tree": "eb36f667de7dfa59e6fbe8ae747614c4e8dda789",
      "parents": [
        "650e8eae0a2e106d361e1d22d9f2b950ca5f8dd4"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 19 15:11:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 15:14:11 2026"
      },
      "message": "Remove some logic for generating fixes inside List implementation classes\n\nPiperOrigin-RevId: 917843675\n"
    },
    {
      "commit": "650e8eae0a2e106d361e1d22d9f2b950ca5f8dd4",
      "tree": "63d323aa7a3054c3d088c8bfbf01d7bf6d6580f3",
      "parents": [
        "de512cdb7a0c407d5863fce0c75c11ac4ba0cbda"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Tue May 19 15:10:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 15:11:15 2026"
      },
      "message": "[MissingCasesInEnumSwitch] test-only change.  Reproduces a false positive finding which will be fixed in the child CL.\n\nReproduces: https://github.com/google/error-prone/issues/5798\nPiperOrigin-RevId: 917842828\n"
    },
    {
      "commit": "de512cdb7a0c407d5863fce0c75c11ac4ba0cbda",
      "tree": "1bfbaf596a906a0b8772ea07b4e6371041314686",
      "parents": [
        "fc23f9798ee4d279a261ebb6f3ac39f77643817d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 19 14:21:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 14:21:52 2026"
      },
      "message": "Detect ambiguous calls to `List.remove(int|Integer)`\n\nhttps://github.com/google/error-prone/issues/5794\n\nPiperOrigin-RevId: 917820131\n"
    },
    {
      "commit": "fc23f9798ee4d279a261ebb6f3ac39f77643817d",
      "tree": "d57c438c757eb3791224204e5d41d63d4c9bd882",
      "parents": [
        "4b08043992062aed71e43519386a60ef7366caca"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue May 19 01:38:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 19 01:39:50 2026"
      },
      "message": "Enable `AbstractToString:JoinerIterable`.\n\n#coding-mcp\n\nStartblock:\n  diffbase\nPiperOrigin-RevId: 917533619\n"
    },
    {
      "commit": "4b08043992062aed71e43519386a60ef7366caca",
      "tree": "0aad119056fec9c0975f2df47fe7358a5729246d",
      "parents": [
        "960e04b8c6269512bab29bc7eac1fa6669961d1a"
      ],
      "author": {
        "name": "Chaoren Lin",
        "email": "aoe@google.com",
        "time": "Mon May 18 13:24:43 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 18 13:25:32 2026"
      },
      "message": "Allow loading cirvlist.txt file from resource.\n\nWe need an alternative for loading from resources if we want to remove SSTable support.\n\nTested:\n    TAP train for global presubmit queue\n    []\nPiperOrigin-RevId: 917192996\n"
    },
    {
      "commit": "960e04b8c6269512bab29bc7eac1fa6669961d1a",
      "tree": "0e802e26de2aadb80f1bae74d5f613894b730383",
      "parents": [
        "8d4c117d2fa4417959480a30b9a37cac3258610b"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Thu May 14 14:58:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 14 14:59:38 2026"
      },
      "message": "Add gRPC\u0027s AbstractStub to WellKnownThreadSafety for EP and AL\n\nPiperOrigin-RevId: 915431942\n"
    },
    {
      "commit": "8d4c117d2fa4417959480a30b9a37cac3258610b",
      "tree": "ed75f1419149515d9a152f4e0a4a15e9b910129f",
      "parents": [
        "80b31017fefcbc10888443886280c37262823268"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed May 13 07:17:59 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed May 13 07:18:39 2026"
      },
      "message": "JUnit3 test methods in fact _can_ be `static` (and will still get run by the test runner!).\n\nPiperOrigin-RevId: 914692547\n"
    },
    {
      "commit": "80b31017fefcbc10888443886280c37262823268",
      "tree": "256ee5690761d0bf4c4a6e6c36742e96d72cb1bb",
      "parents": [
        "8c01629629349e01581bb6ad0dc5aa8328978147"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue May 12 18:15:51 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 12 18:16:49 2026"
      },
      "message": "For constructors, put the class name in the error message instead of `\u003cinit\u003e`.\n\nPiperOrigin-RevId: 914381432\n"
    },
    {
      "commit": "8c01629629349e01581bb6ad0dc5aa8328978147",
      "tree": "c1fe429d825433bb1e86515ae3a5d699853e0b0c",
      "parents": [
        "eb86349f0d0c189442d45a9ac9297d4652e0b235"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Mon May 11 16:26:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 16:27:16 2026"
      },
      "message": "[ErrorProne] Support if tag used by Android\n\nPiperOrigin-RevId: 913737877\n"
    },
    {
      "commit": "eb86349f0d0c189442d45a9ac9297d4652e0b235",
      "tree": "a42df3a16cdd3d44cd82e6855eb0eea10dbb6db2",
      "parents": [
        "a4e705dc6e2d9c3633e9e533cda8b9092bfffc52"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon May 11 13:32:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 13:36:36 2026"
      },
      "message": "Make `MemoizeConstantVisitorStateLookups` suggest `typeFromString`.\n\nDemo of (tweaked) output on Error Prone itself: unknown commit\n\nAlso, IntelliJ suggested that I make `CallSite` into a `record`, so I went for it :)\n\nPiperOrigin-RevId: 913668052\n"
    },
    {
      "commit": "a4e705dc6e2d9c3633e9e533cda8b9092bfffc52",
      "tree": "23f9e414b67cd15c1b725a39fb1af50ef2047b13",
      "parents": [
        "a897160c13da508a483da3b3ac7c197e454ed3d6"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon May 11 13:32:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 13:35:42 2026"
      },
      "message": "Migrate from `sym.getKind() \u003d\u003d ElementKind.CONSTRUCTOR` to `sym.isConstructor()`.\n\nPiperOrigin-RevId: 913667880\n"
    },
    {
      "commit": "a897160c13da508a483da3b3ac7c197e454ed3d6",
      "tree": "cb427610d9242db895ee71e16c6acda21c402b95",
      "parents": [
        "d058354f3fec0c176f05b94718adbd643efefccf"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon May 11 13:31:35 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 13:32:32 2026"
      },
      "message": "Look up `Future` with `Elements` instead of `Symtab`.\n\nThis ensures(?) that we find it even if it hasn\u0027t been needed previously.\n\nPiperOrigin-RevId: 913667726\n"
    },
    {
      "commit": "d058354f3fec0c176f05b94718adbd643efefccf",
      "tree": "a7dcbb614ebf47030bed2e6720f2390b6298b76c",
      "parents": [
        "478f1910f9a8da4b9e419ce98aca918ea7174223"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon May 11 12:41:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 12:42:18 2026"
      },
      "message": "Use `-\u003e` switches for suggested fixes in AbstractUseSwitch checks\n\nPiperOrigin-RevId: 913651720\n"
    },
    {
      "commit": "478f1910f9a8da4b9e419ce98aca918ea7174223",
      "tree": "874e8a0b6484646170e608207e0e842bef9f18a1",
      "parents": [
        "6f96cef90bd39f2c5a2a9dcae98f188c841b57a3"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon May 11 09:35:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 11 09:36:32 2026"
      },
      "message": "Handle `(null)` as well as `null` in TypeEqualsChecker\n\nThe check allows `\u003d\u003d` comparison on `TypeMirror`s for null checks, but not for comparing two non-null instances. The handling of `null` here was specifically looking for null literals, and didn\u0027t allow parenthesized null literals like `(null)`.\n\nPiperOrigin-RevId: 913587039\n"
    },
    {
      "commit": "6f96cef90bd39f2c5a2a9dcae98f188c841b57a3",
      "tree": "b77929f2515135ce0ecf545cc1a86a149bc56e55",
      "parents": [
        "e140d4cb6fead3626fd29279999086b3f69ecba2"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 08 20:07:33 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 08 20:08:22 2026"
      },
      "message": "Refactor `ChainingConstructorIgnoresParameter` to not store mutable state in `BugChecker` fields.\n\nCheckers shouldn\u0027t do that; I just didn\u0027t know better at the time.\n\nFuture work in this vein: `FloggerRequiredModifiers`.\n\nThis CL also fixes a [bug](http://sponge2/682f43a9-c73c-4a4f-9924-d8f09888ef06) that caused a `@SuppressWarnings` annotation on a callee constructor to suppress warnings in its caller.\n\nPiperOrigin-RevId: 912658003\n"
    },
    {
      "commit": "e140d4cb6fead3626fd29279999086b3f69ecba2",
      "tree": "01fa6fc2a8d9c5a33d0cdfeb4b9b2653fa20b086",
      "parents": [
        "de7f23b3c83b06f8a81dfe2a7590dc96280dec90"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 08 03:17:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 08 03:18:55 2026"
      },
      "message": "Apply `MemoizeConstantVisitorStateLookups` again after unknown commit.\n\nPiperOrigin-RevId: 912288160\n"
    },
    {
      "commit": "de7f23b3c83b06f8a81dfe2a7590dc96280dec90",
      "tree": "7c85ddd12fa4f8039cbded6da63e700f08107098",
      "parents": [
        "12332686f7560b7f207c28f8cd1f2e4a616408d8"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 08 01:51:40 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 08 01:52:43 2026"
      },
      "message": "Use `typeFromString`.\n\nPiperOrigin-RevId: 912263400\n"
    },
    {
      "commit": "12332686f7560b7f207c28f8cd1f2e4a616408d8",
      "tree": "c2df25227eb7282828af8480bca737cc42d06899",
      "parents": [
        "8c0352058eddcf12bee822a4a2c49a0412a20e5d"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 08 00:47:53 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 08 00:48:54 2026"
      },
      "message": "Avoid static imports that would be hidden by members of enclosing classes.\n\nI had thought that I\u0027d seen this in unknown commit, but that CL was from Refaster, which I think has its own bug in this area (b/23212589 / b/224585203).\n\nPiperOrigin-RevId: 912245307\n"
    },
    {
      "commit": "8c0352058eddcf12bee822a4a2c49a0412a20e5d",
      "tree": "a1b76b31ae12e0509b0b51a89dd2cb0da151781b",
      "parents": [
        "6753f237bfa4bb14dc9c5953212d90d15461cd6e"
      ],
      "author": {
        "name": "Marcono1234",
        "email": "Marcono1234@users.noreply.github.com",
        "time": "Fri May 08 00:30:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 08 00:31:39 2026"
      },
      "message": "Remove duplicated doc for RecordAccessorInCompactConstructor\n\nThese sections are added automatically for the generated documentation.\n\nSee https://errorprone.info/bugpattern/RecordAccessorInCompactConstructor which currently has two \"The problem\" and \"Suppression\" sections.\n\nFixes #5778\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5778 from Marcono1234:patch-1 b87949baff7ca2b31616cbe7e6649341f57aa2c2\nPiperOrigin-RevId: 912239270\n"
    },
    {
      "commit": "6753f237bfa4bb14dc9c5953212d90d15461cd6e",
      "tree": "284f6ff23e158ed1fc450ccd6aa052adeafd4667",
      "parents": [
        "dd32d1d15db394dbb03067f312063eb00d6b1b7b"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu May 07 23:14:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 07 23:15:23 2026"
      },
      "message": "Use more records.\n\nI noticed an IntelliJ suggestion for this in one file in unknown commit, so I decided to turn it loose.\n\nNotes:\n- If anything gets us in trouble here, I would expect it to be a performance regression or behavioral bug from suddenly having a value-based `equals` implementation.\n   - Out of fear of that, I reverted a proposed change to `ResultingStore` in `AbstractNullnessPropagationTransfer`. But I don\u0027t have confidence that (a) that would have been a problem or (b) that nothing else in this CL will be a problem.\n   - Gemini notices that, in `RefactoringCollection`, `DelegatingDescriptionListener` does end up in a `HashMultimap`, but it seems unlikely that we care about equality there. (Perhaps we should be using a `ListMultimap` there, anyway, including to preserve ordering (though we could also accomplish that with `LinkedHashMultimap` if we wanted to keep to `SetMultimap`).\n- IntelliJ was even ready to update documentation (`Immutable.md` and `ImmutableEnumChecker.md`), but I reverted that.)\n- I reverted the change to `CompilerBasedAbstractTest`, since that would created a record with an array member, upsetting [ArrayRecordComponent](http://errorprone.info/bugpattern/ArrayRecordComponent), which wasn\u0027t completely trivial to fix.\n- I wonder if any sort of named class has been overkill in some cases here. Like, maybe `RefasterSuppressionHelper` would be just as well off with a static method that returns an instance of anonymous type? Maybe some of the matchers could be implemented with lambdas? I didn\u0027t get into that.\n- I\u0027m still not entirely sure what to think of using `record` for classes that aren\u0027t what I think of as \"value types,\" like `DelegatingDescriptionListener` in `RefactoringCollection` or the aforementioned matchers. Since most of the types here are implementation details, I don\u0027t worry about them as much as I worried in b/380275991, but I\u0027m still personally not sure what to think.\nPiperOrigin-RevId: 912209326\n"
    },
    {
      "commit": "dd32d1d15db394dbb03067f312063eb00d6b1b7b",
      "tree": "c919bb5dba47779e51aee324721e5dd9aaa366b0",
      "parents": [
        "ffc26a9a7c35612e00c681c96c344ea7dc073645"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu May 07 22:04:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 07 22:05:53 2026"
      },
      "message": "Suggest Truth in preference to tolerance-based equality for exact floating-point comparisons.\n\nPiperOrigin-RevId: 912171796\n"
    },
    {
      "commit": "ffc26a9a7c35612e00c681c96c344ea7dc073645",
      "tree": "27d6475f09e92c2add22bd9a1537002dacb94d9a",
      "parents": [
        "5c89f74c1353a2c6ffeb794375bb0f626c539ab3"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu May 07 21:03:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 07 21:04:07 2026"
      },
      "message": "Fix a bug in `JUnitMatchers.isJunit3TestCase`; JUnit3 test cases must _NOT_ be `static`.\n\nAlso stop using `isJunit3TestCase` in `JUnit4TestNotRun` since this change means miss flagging `public static void testThisIsAStaticTest() {}` as missing a `@Test`.\n\nPiperOrigin-RevId: 912141742\n"
    },
    {
      "commit": "5c89f74c1353a2c6ffeb794375bb0f626c539ab3",
      "tree": "68bb02725386c8f082ca9d884d8afbaa2c74434f",
      "parents": [
        "6c7ce387fd93620433ca39562d7d62b0445a25f2"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu May 07 15:09:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu May 07 15:11:10 2026"
      },
      "message": "Detect constructors by type instead of by name.\n\n...as suggested by https://github.com/typetools/checker-framework/pull/7705.\n\nRELNOTES\u003dn/a\nPiperOrigin-RevId: 911968656\n"
    },
    {
      "commit": "6c7ce387fd93620433ca39562d7d62b0445a25f2",
      "tree": "13b2a7d226dfb62b17e58ebb140ccfd797f1f795",
      "parents": [
        "f73eb27f0d2792c0be2bb638f8ec5cb938dc4200"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed May 06 10:06:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed May 06 10:07:29 2026"
      },
      "message": "Detect conflicts between record components and explicit accessor methods\n\nhttps://github.com/google/error-prone/issues/5177\n\nPiperOrigin-RevId: 911220057\n"
    },
    {
      "commit": "f73eb27f0d2792c0be2bb638f8ec5cb938dc4200",
      "tree": "915c467c4134f79f7c4e772d221c1d2b8e591bfa",
      "parents": [
        "734fe122ce8459a6397d82beaba557e52c13ef44"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue May 05 16:58:29 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 05 16:59:18 2026"
      },
      "message": "Recognize when `join(Iterable)` calls `toString()` on arrays, etc.\n\nPiperOrigin-RevId: 910752376\n"
    },
    {
      "commit": "734fe122ce8459a6397d82beaba557e52c13ef44",
      "tree": "7c4f2d5587954c8ddd172e93b956131072029858",
      "parents": [
        "13bec964e8170049ef5d7accb2414f3d9bb477d1"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue May 05 01:50:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue May 05 01:51:13 2026"
      },
      "message": "Include the `link` from `@RestrictedApi` in the diagnostic message.\n\nThe Critique chip is not very useful without the link!\n\nIf a `RestrictedApi` annotation has a non-empty `link` attribute, the checker will now include this link in the diagnostic message by setting the description\u0027s link URL.\n\nPiperOrigin-RevId: 910364655\n"
    },
    {
      "commit": "13bec964e8170049ef5d7accb2414f3d9bb477d1",
      "tree": "69fb074a6d84b997fe316039f23ba00e83ffe82e",
      "parents": [
        "1750134a6bdaf86057df4293e6b915e259aae51e"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon May 04 19:17:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 04 19:18:58 2026"
      },
      "message": "Create a JUnit3 -\u003e JUnit4 migration tool.\n\nIt performs fairly well so far. E.g., unknown commit unknown commit\n\nPiperOrigin-RevId: 910171949\n"
    },
    {
      "commit": "1750134a6bdaf86057df4293e6b915e259aae51e",
      "tree": "452f9af815df2267f8858ee46a1c7b615f6c01fe",
      "parents": [
        "98ac22cabd02503eb6ee57d28f24bd3ccef6b44c"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon May 04 19:06:44 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 04 19:07:29 2026"
      },
      "message": "Forbid \"complex\" statements in `AssertThrowsMultipleStatements`.\n\nPiperOrigin-RevId: 910165339\n"
    },
    {
      "commit": "98ac22cabd02503eb6ee57d28f24bd3ccef6b44c",
      "tree": "09289774e0ff2cb7cbcbd6f59ddb00b2bae4a0b8",
      "parents": [
        "1c75a643a05277eead62a55811c3b72eec403255"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon May 04 15:32:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 04 15:33:23 2026"
      },
      "message": "Discourage @Override on record component declarations that don\u0027t override\nanything\n\nhttps://github.com/google/error-prone/issues/5174\n\nPiperOrigin-RevId: 910048919\n"
    },
    {
      "commit": "1c75a643a05277eead62a55811c3b72eec403255",
      "tree": "ce238646ea1ba1dbd477e7adbe67586b6df8c16e",
      "parents": [
        "f84df64bd5491f0b6f45a72315aa57427250b77e"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon May 04 13:16:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon May 04 13:17:04 2026"
      },
      "message": "Stop hoisting `/* paramName\u003d */` comments in front of the `assertThrows()` lambdas.\n\nPiperOrigin-RevId: 909989075\n"
    },
    {
      "commit": "f84df64bd5491f0b6f45a72315aa57427250b77e",
      "tree": "bc15ac2fc3f28dcd397f88e18b71577f7c4d558d",
      "parents": [
        "72364b35de6e07f64fc05e00373496da32098eeb"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 01 18:19:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 01 18:20:02 2026"
      },
      "message": "Extend `TypeParameterQualifier` to cover method references (`T::foo`).\n\nI could see an argument that one of the cases newly covered by this CL, `T::instanceMethod`, is less bad than the other, `T::staticMethod` (which I see as as bad as the already covered cases of `T.staticMethod()` and `T.Type`): At least instance-method dispatch depends on the actual runtime type. Still, that\u0027s different than depending on the _compile-time_ type argument. Plus, it\u0027s not as if javac will do overload resolution based on the compile-time type argument; it always uses the bound. That seems like more than enough reason to ban `T::instanceMethod`, too, especially when the resulting rule is easy to explain: Don\u0027t use a type variable as a qualifier ever. (I notice that Kotlin is [not having any of it](https://pl.kotl.in/KyaHuhH5n).)\n\nPiperOrigin-RevId: 908818269\n"
    },
    {
      "commit": "72364b35de6e07f64fc05e00373496da32098eeb",
      "tree": "5697896408420047cd31c9e39db90b85118a28eb",
      "parents": [
        "c0c371d9de0815749549c1315a43735f0952fd94"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri May 01 18:16:40 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 01 18:17:28 2026"
      },
      "message": "Expand NullNeedsCastForVarargs to cover `UsingCorrespondence`.\n\nThis CL also moves to a simpler and more robust way to look up the varargs element type.\n\nPiperOrigin-RevId: 908817127\n"
    },
    {
      "commit": "c0c371d9de0815749549c1315a43735f0952fd94",
      "tree": "2173fd7febc728587b33075ab9bf4fa6683be143",
      "parents": [
        "2e8a9b823fa934cf81f6516b3eefeb6cd05afef9"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri May 01 16:24:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 01 16:25:32 2026"
      },
      "message": "Add a[]\n\nPiperOrigin-RevId: 908768541\n"
    },
    {
      "commit": "2e8a9b823fa934cf81f6516b3eefeb6cd05afef9",
      "tree": "e13a85b8a41733109d7128bd368ad075e1681eaf",
      "parents": [
        "d4322c05f7ff4e7d015081f2ed9e5ca83de1c26f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri May 01 14:11:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri May 01 14:13:52 2026"
      },
      "message": "Ignore AutoValue-generated code in TypeEqualsChecker and TypeToString to avoid false positives\n\nThe AutoValue `toString` representation could be used as a key or for comparison in a way that\u0027s fragile, but some of these uses are harmless. The check also wouldn\u0027t report the use of `TypeMirror`s in records, so this is consistent with that.\n\nPiperOrigin-RevId: 908717753\n"
    },
    {
      "commit": "d4322c05f7ff4e7d015081f2ed9e5ca83de1c26f",
      "tree": "a7bf353c44ee528b971c25ad44816983809ded9a",
      "parents": [
        "7aaed940c9ebcf158ff672c7d818b8353dafbd7c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 30 16:42:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Apr 30 16:43:48 2026"
      },
      "message": "MisformattedTestData: fix the entire compilation unit with one finding\n\nPiperOrigin-RevId: 908226149\n"
    },
    {
      "commit": "7aaed940c9ebcf158ff672c7d818b8353dafbd7c",
      "tree": "4c7f10ad63429df9885f3b8ce40f75fcb6609436",
      "parents": [
        "42c93df8e6248abd3397b3626eacbe6d606f3de4"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Apr 30 14:11:06 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Apr 30 14:12:33 2026"
      },
      "message": "Discourage use of JUnit3 via static analysis.\n\nPutting this in `JdkObsolete` is a bit of a hack, but we already have non-JDK APIs in there (`org.apache.commons.io.IOUtils`), so...\n\nPiperOrigin-RevId: 908153869\n"
    },
    {
      "commit": "42c93df8e6248abd3397b3626eacbe6d606f3de4",
      "tree": "0a7babc524a22ebe72109378e5ca6ccf9ae51e23",
      "parents": [
        "af5cc889873ba970b3f42d1c069127193f0aede3"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Apr 29 16:18:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Apr 29 16:19:13 2026"
      },
      "message": "[IfChainToSwitch] support multiple `instanceof` patterns within the same `case`, such as `... if (x instanceof Foo || x instanceof Bar) ...`\n\nPiperOrigin-RevId: 907624777\n"
    },
    {
      "commit": "af5cc889873ba970b3f42d1c069127193f0aede3",
      "tree": "effd219c538aa8c6282799917b9a0d0b51f47fb9",
      "parents": [
        "8d20b5c889cc8d8e4d0b0c03df70174718374f37"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Apr 29 14:46:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Apr 29 14:46:53 2026"
      },
      "message": "Preserve comments in `TryFailRefactoring` and `MissingFail`.\n\nPiperOrigin-RevId: 907585072\n"
    },
    {
      "commit": "8d20b5c889cc8d8e4d0b0c03df70174718374f37",
      "tree": "84883fa60681e56ace68ae23c7ddb3d7001c1e87",
      "parents": [
        "36354c97570b6b1d068cdc7277e767a5fb92a24e"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Apr 28 19:01:55 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 28 19:02:39 2026"
      },
      "message": "Fix bug in `MissingFail` when there\u0027s 2 try/catch blocks with identical exception variable names.\n\nPiperOrigin-RevId: 907105616\n"
    },
    {
      "commit": "36354c97570b6b1d068cdc7277e767a5fb92a24e",
      "tree": "124a7cbd11da6019410d46ed4c85183bbca98581",
      "parents": [
        "0bae15baadd946e2163df79f60621f1af6c275de"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Apr 28 18:29:32 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 28 18:30:34 2026"
      },
      "message": "Refactor `TryFailRefactoring` to use `SuppressibleTreePathScanner`. This allows:\n  1. Automatically respecting local `@SuppressWarnings` annotations on nested elements.\n  2. Maintaining the active `TreePath` during traversal to enable more robust context checks.\n\nPiperOrigin-RevId: 907088642\n"
    },
    {
      "commit": "0bae15baadd946e2163df79f60621f1af6c275de",
      "tree": "433bd74b8ee3af1bbea48b22467d8726f9ad4f9e",
      "parents": [
        "dd37bb3fce309cdbb8c2799615f010f840208499"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Apr 28 15:17:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 28 15:18:01 2026"
      },
      "message": "Pick a fresh name for the exception variable (if necessary) in `AssertThrowsUtils`.\n\nPiperOrigin-RevId: 906988165\n"
    },
    {
      "commit": "dd37bb3fce309cdbb8c2799615f010f840208499",
      "tree": "60190744157c86767fe2d26a0aa7c205ac746064",
      "parents": [
        "a87eded53a2e8b485fc741b40f28607ec65e20d2"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Apr 28 13:07:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 28 13:08:36 2026"
      },
      "message": "Add a test demonstrating the bug in `TryFailRefactoring` when there are 2 try/fails in scope with the same exception variable name.\n\nPiperOrigin-RevId: 906933779\n"
    },
    {
      "commit": "a87eded53a2e8b485fc741b40f28607ec65e20d2",
      "tree": "2475e567e5a7605a17cddcdb26d8100808e52cf9",
      "parents": [
        "ae3490c174a07667629018958becc4caa5482872"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Apr 27 18:46:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Apr 27 18:47:07 2026"
      },
      "message": "Add `IfChainToSwitchTest` tests (patched from CL/904760508).\n\nSee[]\n\nPiperOrigin-RevId: 906470387\n"
    },
    {
      "commit": "ae3490c174a07667629018958becc4caa5482872",
      "tree": "d064aa98494d26965169cde047feac8f73327c80",
      "parents": [
        "cd68904b3f34bf14cec919cfc092116232980988"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Apr 27 17:41:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Apr 27 17:42:37 2026"
      },
      "message": "Expand regex checks to cover Truth\u0027s `StringSubject`.\n\nI\u0027ve fixed the single new hit (in Truth itself) in unknown commit.\n\nPiperOrigin-RevId: 906436566\n"
    },
    {
      "commit": "cd68904b3f34bf14cec919cfc092116232980988",
      "tree": "dab771851e56809caa7bbbf9777eaba1735ee846",
      "parents": [
        "598d7b52d8732b54c9d4efee87d30c546f1535d3"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Apr 27 16:48:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Apr 27 16:49:16 2026"
      },
      "message": "Update behavior of `Matchers.packageStartsWith(String)` so that `packageStartsWith(\"com.google\")` will match:\n\n* `com.google`\n* `com.google.common`\n* `com.google.common.collect`\n\n...but not `com.googlebutnotreallygoogle`.\n\nPlus some other minor cleanups to `MatchersTest`.\n\nAnd finally, disable `MockitoInternalUsage` in `third_party/looker_migration_libs/mockito/v4_6_1/BUILD`.\n\nPiperOrigin-RevId: 906408524\n"
    },
    {
      "commit": "598d7b52d8732b54c9d4efee87d30c546f1535d3",
      "tree": "879619fda36f949a9c3fa958d38b1b013e7edbcf",
      "parents": [
        "43fcf95632a109190b72df93f7c291dd145d1c07"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri Apr 24 19:45:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Apr 24 19:47:19 2026"
      },
      "message": "Extend DuplicateAssertion to cover longer Truth assertion chains.\n\nFlume: unknown commit\n\n#coding-mcp\n\nPiperOrigin-RevId: 905174355\n"
    },
    {
      "commit": "43fcf95632a109190b72df93f7c291dd145d1c07",
      "tree": "6add3aa4e5f57ae71ce7d97f307014c4bc3cb9d7",
      "parents": [
        "cc0413436cc3a01260efd7b6c1acb903dec90f30"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Apr 23 18:02:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Apr 23 18:03:38 2026"
      },
      "message": "Link to the latest version of `guava-testlib`.\n\nCompare unknown commit (though here I\u0027m using `javadoc.io` instead of `www.javadoc.io`).\n\nPiperOrigin-RevId: 904540050\n"
    },
    {
      "commit": "cc0413436cc3a01260efd7b6c1acb903dec90f30",
      "tree": "c98d4c36d5ace67c4db0b4ed35af7702e60b22f3",
      "parents": [
        "769cd2026b51ee47d7941fccd9746fdb3c9b2f8c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 23 17:00:51 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Apr 23 17:01:47 2026"
      },
      "message": "Fix a crash in GetClassOnAnnotation\n\nFixes https://github.com/google/error-prone/issues/5743\n\nPiperOrigin-RevId: 904509097\n"
    },
    {
      "commit": "769cd2026b51ee47d7941fccd9746fdb3c9b2f8c",
      "tree": "4529a9692d96c627341bb2f287e9ae382c5cd014",
      "parents": [
        "88c1420464df8a6fe58009ca27a6b2a281ca5595"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 23 14:41:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Apr 23 14:42:25 2026"
      },
      "message": "Discourage using `toString` and `.equals` to test `TypeMirror`s for equality\n\n`TypeMirror` doesn\u0027t define `.equals`, and the string representation may contain type annotations. Using `Types#isSameType` is a more robust way to compare `TypeMirror`s.\n\nPiperOrigin-RevId: 904451662\n"
    },
    {
      "commit": "88c1420464df8a6fe58009ca27a6b2a281ca5595",
      "tree": "3b2a8ab75d0187975a42716386931e2641da83b1",
      "parents": [
        "7a8059eaf8cc1802df2fb78f231bcaec2a24900f"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Apr 21 23:22:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 21 23:23:55 2026"
      },
      "message": "Update comments for the test support added in https://github.com/google/error-prone/commit/018b56163d2e1e2b9ada32b6504c2ae2c8f049c8.\n\nSpecifically: Now that the whole check runs over test code, we don\u0027t need to segregate the test-specific hard-coded rules from the regular hard-coded rules.\nPiperOrigin-RevId: 903485600\n"
    },
    {
      "commit": "7a8059eaf8cc1802df2fb78f231bcaec2a24900f",
      "tree": "91be5f36a3769bcc519c33502fb2cca27869af1b",
      "parents": [
        "0124cb15dac7c124879ea13152ff0a21fb57bda0"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Apr 21 18:36:36 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 21 18:38:37 2026"
      },
      "message": "Remove references to EasyMock, which was deleted 3+ years ago (unknown commit).\nPush `MOCKED_VAR` up to the base class.\n\nPiperOrigin-RevId: 903340783\n"
    },
    {
      "commit": "0124cb15dac7c124879ea13152ff0a21fb57bda0",
      "tree": "5670b7853e27089d8ed67443e33c4205f6386276",
      "parents": [
        "2925bdff3f3522ab4fcf10f83e1496268cd4d3f6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Apr 21 07:33:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Apr 21 07:34:19 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 903045386\n"
    },
    {
      "commit": "2925bdff3f3522ab4fcf10f83e1496268cd4d3f6",
      "tree": "267e2c3699ccdf4ffdc53523040638845f1e24d7",
      "parents": [
        "a7016465eaff9d871a12818344b6ae7f7212d4be"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Apr 20 13:05:59 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Apr 20 13:07:09 2026"
      },
      "message": "Handle `null` in `hasDirectAnnotationWithSimpleName`\n\nAnd use pattern switches and other small cleanups.\n\nhttps://github.com/google/error-prone/pull/4307\n\nPiperOrigin-RevId: 902595762\n"
    },
    {
      "commit": "a7016465eaff9d871a12818344b6ae7f7212d4be",
      "tree": "593544196a59a1640540ba49152ff1c18e24e70f",
      "parents": [
        "a8c85fae8f0b080f830a235f19b18b9589084138"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Apr 20 12:48:55 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Apr 20 12:49:42 2026"
      },
      "message": "Don\u0027t treat non-final enum fields as constant\n\nhttps://github.com/google/error-prone/issues/5710\n\nPiperOrigin-RevId: 902589448\n"
    }
  ],
  "next": "a8c85fae8f0b080f830a235f19b18b9589084138"
}
