)]}'
{
  "commit": "3761e3a09deb2774e4accb11a909a76ef152713a",
  "tree": "d38d6b46ca90e68672bdb8536eb6d7de41fa0f5f",
  "parents": [
    "ab1b6f3da03944e9bfa93f09993d71fd75f590df"
  ],
  "author": {
    "name": "Paul King",
    "email": "paulk@asert.com.au",
    "time": "Sun Apr 12 20:09:01 2026 +1000"
  },
  "committer": {
    "name": "Paul King",
    "email": "paulk@asert.com.au",
    "time": "Fri May 01 14:17:30 2026 +1000"
  },
  "message": "GEP-16: `val` keyword for final declarations\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "803afd8bc3c23ab8c693bd73b381ea828fcca014",
      "old_mode": 33188,
      "old_path": "src/antlr/GroovyLexer.g4",
      "new_id": "7f4ff706fab10671ff93bad9e9f644bf8444c26f",
      "new_mode": 33188,
      "new_path": "src/antlr/GroovyLexer.g4"
    },
    {
      "type": "modify",
      "old_id": "8501b7658e856af33a5e3feb37002b45e6a657de",
      "old_mode": 33188,
      "old_path": "src/antlr/GroovyParser.g4",
      "new_id": "507ab32df971fea09241c16aa9ee9ce7adc01d76",
      "new_mode": 33188,
      "new_path": "src/antlr/GroovyParser.g4"
    },
    {
      "type": "modify",
      "old_id": "ab506a3483f770c074216638adf7adaeffb48f39",
      "old_mode": 33188,
      "old_path": "src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java",
      "new_id": "013b4e5a1af3c68a3ae319e43cea3c89a19677b2",
      "new_mode": 33188,
      "new_path": "src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "e76e1b48499d961285295ebbc55d61cf7b45bb53",
      "old_mode": 33188,
      "old_path": "src/main/java/org/codehaus/groovy/ast/ModifierNode.java",
      "new_id": "079364c4abc868ee38559d2f05434b64c2b7b2af",
      "new_mode": 33188,
      "new_path": "src/main/java/org/codehaus/groovy/ast/ModifierNode.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9444001ccb84e1aa23a381c391b1ce80b2fb475",
      "new_mode": 33188,
      "new_path": "src/test-resources/core/Val_01x.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0748f66b32bbc850abae74c417bb499c105057ec",
      "new_mode": 33188,
      "new_path": "src/test-resources/fail/Val_01x.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed6e519f7d6d575d7f001bda1dedb9e7f166854d",
      "new_mode": 33188,
      "new_path": "src/test-resources/fail/Val_02x.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9751976344d3ea76d3617cb556b315c39e66b394",
      "new_mode": 33188,
      "new_path": "src/test-resources/fail/Val_03x.groovy"
    },
    {
      "type": "modify",
      "old_id": "d6d6f6311074e47d35d8442fe0dfa022d99a7198",
      "old_mode": 33188,
      "old_path": "src/test/groovy/bugs/Groovy5358.groovy",
      "new_id": "9c7fcec5e857b64879b06ab62ab3b2183cd02556",
      "new_mode": 33188,
      "new_path": "src/test/groovy/bugs/Groovy5358.groovy"
    },
    {
      "type": "modify",
      "old_id": "4c434e6a29eff5595c5e5dd11c651af6e6f61539",
      "old_mode": 33188,
      "old_path": "src/test/groovy/groovy/transform/stc/LambdaTest.groovy",
      "new_id": "37eab1575c179aaf94c0215c59cb7e70a2b1f969",
      "new_mode": 33188,
      "new_path": "src/test/groovy/groovy/transform/stc/LambdaTest.groovy"
    },
    {
      "type": "modify",
      "old_id": "575b54bda694532795a630035374b1f09792777e",
      "old_mode": 33188,
      "old_path": "src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy",
      "new_id": "3ca7c7b28cc05f798feeec963e45a0e6ac6aefff",
      "new_mode": 33188,
      "new_path": "src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy"
    },
    {
      "type": "modify",
      "old_id": "788f47e8eff16563f4ea593b0db3adb6fb7d68fb",
      "old_mode": 33188,
      "old_path": "src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy",
      "new_id": "bbe0175f72c94c1c9b146271ee72f4ea8b2f223f",
      "new_mode": 33188,
      "new_path": "src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy"
    },
    {
      "type": "modify",
      "old_id": "25dcc7d3936f3cf0c3aa82d56b62019ccc2b90d8",
      "old_mode": 33188,
      "old_path": "subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/SmartDocumentFilter.java",
      "new_id": "9d639328add4218522f74d6a03ff8a5887d060d6",
      "new_mode": 33188,
      "new_path": "subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/SmartDocumentFilter.java"
    }
  ]
}
