)]}'
{
  "commit": "07b15e6d996609129c5bd42d7669519cd959e4d5",
  "tree": "96024089ac25cf4120ae9c8aa1782e71b36c3107",
  "parents": [
    "1cd84ecf25ba495b70b5601babc45423427c7c9c"
  ],
  "author": {
    "name": "adonovan",
    "email": "adonovan@google.com",
    "time": "Thu Apr 09 18:32:33 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Apr 09 18:34:00 2020 -0700"
  },
  "message": "bazel syntax: fine-grained syntax locations\n\nThis change improves the precision with which the locations\nof source tokens are recorded in the syntax tree. Prior to\nthis change, every Node held a single LexerLocation object\nthat recorded the start and end offsets of the node, plus\na reference to the shared LineNumberTable (LNT), that maps\nthese offsets to Locations. This had a cost of one reference\nand one LexerLocation object per node.\n\nThis change causes every Node to record the offsets only of\nits salient tokens, plus a reference to the LNT. For example,\nin the expression \"1 + 2\", the only salient token is the plus\noperator; the start and end offsets can be computed inductively\nby delegating to x.getStartLocation and y.getEndLocation.\nSimilarly, in f(x), the salient tokens are \u0027(\u0027 and \u0027)\u0027.\nThis has a cost of 1 word plus approximately 1 int per Node.\nConsequently, we can record the exact position of operators\nthat fail, and do so using less memory than before.\n\nNow, when an expression such as \u0027f().g() + 1\u0027 fails,\nthe location in the error message will refer to the \u0027+\u0027\noperator or one of the two \u0027(\u0027 tokens. Before, all\nthree errors would be wrongly reported at the same place:\nf, since it is the start of all three subexpressions.\n\nOverview:\n- Every Node has a reference to the LNT, set immediately\n  after construction. (Morally it is part of the constructor\n  but it\u0027s fussy to set it that way.)\n- Every node defines getStartOffset and getEndOffset,\n  typically by delegating to its left and right subtrees.\n- Node end offsets are exclusive again. CL 170723732 was a mistake:\n  half-open intervals are mathematically simpler.\n  A client that wants to subtract one may do that.\n  But there are none.\n- Comprehension.{For,If} are now true Nodes.\n- StarlarkFile\u0027s extent is now (correctly) the entire file,\n  not just the range from the first statement to the last.\n- The parser provides offsets of salient tokens to the Node constructors.\n- IntegerLiteral now retains the raw token text in addition to the value.\n- Token is gone. Its four fields are now embedded in the Lexer.\n- Eval uses the following token positions in run-time error messages:\n\n     x+y   f(x)   x[i]   x.y   x[i:j]   k: v\n      ^     ^      ^      ^     ^        ^\n\n- Location is final. LexerLocation and LineAndColumn are gone.\n- Misparsed source represented as an Identifier now has the text of the\n  source instead of \"$error$\". This is more faithful and causes\n  the offsets to be correct.\n- The offsets of the orig Identifier in load(\"module\", local\u003d\"orig\")\n  coincide with the text \u0027orig\u0027, sans quotation marks.\n\nBenchmark: saves about 65MB (1% of live RAM) retained by the\nUsual Benchmark, a deps query.\n\nRELNOTES: N/A\nPiperOrigin-RevId: 305803031\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c4d39479ea345f5b614c991c495525778679f9d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java",
      "new_id": "79846fd475df0ae0f1a8d479dbfea1a60a77b4cb",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"
    },
    {
      "type": "modify",
      "old_id": "cc54b580d7cfa431173c6e4de5ef7911db482b5c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Argument.java",
      "new_id": "37d27386b8cb7201a5717e96a1dfa127790181a0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Argument.java"
    },
    {
      "type": "modify",
      "old_id": "d750ac7cc35d339274365c349c43165a05adcaa5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java",
      "new_id": "2b56c7c2cc0cd1eb70e451c5b2052d73175ed953",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java"
    },
    {
      "type": "modify",
      "old_id": "c301fbba6131027de6125dd27a0768e697b6b39b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BUILD",
      "new_id": "9833bde3c5ea7bc520439ca280822fdf60bca5e6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BUILD"
    },
    {
      "type": "modify",
      "old_id": "fef702dea176a37515cfc497d725cc48a9594d6a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java",
      "new_id": "aa0de06c234e4d81789e6c393d93dce7f0a5115b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java"
    },
    {
      "type": "modify",
      "old_id": "699bbffaeeeacd5f031a8bea48df9c54ea238809",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/CallExpression.java",
      "new_id": "64af9722896f72426c42e8f3ad67d80ac5de77f3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/CallExpression.java"
    },
    {
      "type": "modify",
      "old_id": "161c7a404df4ddc87e59f6f332526084ac660420",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Comment.java",
      "new_id": "ee7d6a7c46c26a7d45bebffd1532f3958a92f9f8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Comment.java"
    },
    {
      "type": "modify",
      "old_id": "771196ec8d835c8b24932a45bfb584b2e996e933",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java",
      "new_id": "4549bbc8e2d68bfba7a60dcd14c96f805324d9e6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Comprehension.java"
    },
    {
      "type": "modify",
      "old_id": "ffeb9eafecdc01ff77e566ba3a33fe8be0907fd0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java",
      "new_id": "8085d55cb98b93ae525a7a2b63fbb98c898d8418",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ConditionalExpression.java"
    },
    {
      "type": "modify",
      "old_id": "1fe77f5148987eaea20d96b7586d30f6cc0301ad",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java",
      "new_id": "d128c0eaffe172e39a52900268ee2ad1a44a30e7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DefStatement.java"
    },
    {
      "type": "modify",
      "old_id": "e0b1fa32f032888a88241593b38788cd3a8a8637",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java",
      "new_id": "c144d4a7a25845c3d3065231e84f7b6f47589d90",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DictExpression.java"
    },
    {
      "type": "modify",
      "old_id": "102f1c3f6ff3cd2ef8b7ba42cfaca063a1c530a3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java",
      "new_id": "65b2048dc3331e8c69660d9cd4a864f0543e0c41",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java"
    },
    {
      "type": "modify",
      "old_id": "d979b9b848b47eaecfd61287cc9c746bf39a44e3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Eval.java",
      "new_id": "fd245e8b0ee557e8b9432725f044c3c94eb4fb17",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Eval.java"
    },
    {
      "type": "modify",
      "old_id": "90edb7c6a2c2d70d51284ec6a235b9004d547489",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java",
      "new_id": "ee644930929fe187368bfe0c5a7d57eb97d91f50",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java"
    },
    {
      "type": "modify",
      "old_id": "8ba6bb165c3d3fc84a4b70f40ff42a0447f1e5cb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java",
      "new_id": "825017845667b1742e4e9893049295688bf9508b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java"
    },
    {
      "type": "modify",
      "old_id": "1ff2b21007696e6e12fe3e0537663751e7d7b5f1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java",
      "new_id": "8e54ff0336160b3f818dfa4f4730fdf9ac335bae",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ExpressionStatement.java"
    },
    {
      "type": "modify",
      "old_id": "b24a67235148603a28d9744bcb5ef7f91aa63e6a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java",
      "new_id": "163793479ba90c5e632c0ee265aee932ba4b4591",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/FlowStatement.java"
    },
    {
      "type": "modify",
      "old_id": "5b43f75b59f9c4ef8708a56ec310ca3816b9e09a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java",
      "new_id": "9b3fdb91f8072f175ae5191a42d6da137caebe31",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ForStatement.java"
    },
    {
      "type": "modify",
      "old_id": "76af45be3db6777a9dceba926fdabd64302243fb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Identifier.java",
      "new_id": "70af64eebca5ccb59fd89825a3aac661473c4d54",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Identifier.java"
    },
    {
      "type": "modify",
      "old_id": "378bfbda3fea2fc0e2a9138247e8ba73e1729902",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java",
      "new_id": "576905760d9747f4cd13bbefe3df4a30b1cabee2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java"
    },
    {
      "type": "modify",
      "old_id": "e3517d62af4802eb196f460095fa7dcb10a0e0cc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java",
      "new_id": "c5c9c8c17dd9e2278a7b941b4c168a13a26fd6f6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/IndexExpression.java"
    },
    {
      "type": "modify",
      "old_id": "e909536e806d9a1003785c3a569b0ae0b484364a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java",
      "new_id": "d5ae4ecf2667a84a9eba22387f88c74f03825526",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "34d78d3ce438c8f1c1fcb5a3c581d9ce6baad7f2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Lexer.java",
      "new_id": "9ec6be3a8f0a87d7c319cee4bd601956b60a8cab",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Lexer.java"
    },
    {
      "type": "modify",
      "old_id": "1967437b2d88e012b64af678e48570acb7f9003e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java",
      "new_id": "9c89581fd16f06336e46e907db77fa032a37010b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java"
    },
    {
      "type": "modify",
      "old_id": "9fd22ba9e0cf0082b9977e0c0dd0010b35c4c058",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ListExpression.java",
      "new_id": "7a4ef852922011d8cb6b066ecd802d8cdbc01b08",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ListExpression.java"
    },
    {
      "type": "modify",
      "old_id": "a73af95b6cb7b4b5e810db19ae28c973689172e2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java",
      "new_id": "765f92369f0229bc84e22f9198a408fb50ddb913",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/LoadStatement.java"
    },
    {
      "type": "modify",
      "old_id": "cf4ae62442c950f92b0ad26fac0ec3b9ed302cbe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Location.java",
      "new_id": "b453f2247db1e0616a7ff1dc5671217b55b96cf1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Location.java"
    },
    {
      "type": "modify",
      "old_id": "f6b0e0a8a669c89de4c8154bd6285914626085fe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Node.java",
      "new_id": "b7615909aa80d892c38d91aca761a56855326303",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Node.java"
    },
    {
      "type": "modify",
      "old_id": "cf0b068839905cf3c09d871293ae2225db9ac5a2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/NodePrinter.java",
      "new_id": "934d3b20d69a658a2f769374b5fcaebbe77cc1ea",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/NodePrinter.java"
    },
    {
      "type": "modify",
      "old_id": "c0d740515334693a5e21b02a6a6d9e9d9873dad7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java",
      "new_id": "bdccb35f4f1461786ed2228c13e82a66651d328f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/NodeVisitor.java"
    },
    {
      "type": "modify",
      "old_id": "19cf096695da0aadd6b24e9141fc119d04d50cf4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Parameter.java",
      "new_id": "21422d5c147f97f4b9e40d81157851686ab9dd9c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Parameter.java"
    },
    {
      "type": "modify",
      "old_id": "3ab5148470ab7a820fce7fbe187daacd9e050a0b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Parser.java",
      "new_id": "62e2e7e5ee392c35379a21fb94db5a56b82ec578",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Parser.java"
    },
    {
      "type": "modify",
      "old_id": "0f04b04980d31077f56f84fd911485dd79cd680a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java",
      "new_id": "3ba54ae06d20c5c9b219b0a8ccee4f7e9cb8931e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ReturnStatement.java"
    },
    {
      "type": "modify",
      "old_id": "7353e1bea83646053772490f46d265250fbecb44",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java",
      "new_id": "d78a850a90e332fb8ee9d288bf3b3800b87759fd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java"
    },
    {
      "type": "modify",
      "old_id": "b5d222df1edf3bae6ebf900721537ee50016331c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java",
      "new_id": "237cd194fd4f10d496820c0144c04b5c6000ee4b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java"
    },
    {
      "type": "modify",
      "old_id": "d38f85da0c37426171bc8df17961015fd0d1b948",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java",
      "new_id": "8ca6f1c03d651a08b06f5a7f02b6f81539f35dc8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java"
    },
    {
      "type": "delete",
      "old_id": "e836f9928947caf018f1ecc9134e660d6628ea7e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Token.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "aca3523bb62b90dec44d2502a1b8d6b2986664cc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java",
      "new_id": "e6fc450ef520aecd64bce1ddd1b871c998f3294e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/TokenKind.java"
    },
    {
      "type": "modify",
      "old_id": "4a58e9429b3a8af9c7651d6fe7b357f5cc94ac0d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java",
      "new_id": "59d387a2a7d437fc32863090db35eb0818781e30",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java"
    },
    {
      "type": "modify",
      "old_id": "53926471e25bba08228c044717d6cae850d3bddf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java",
      "new_id": "8e42109545930aa2696a7258f50045f22638bbd0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java"
    },
    {
      "type": "modify",
      "old_id": "9df6b28205589ca93e1a5f36a364ae59b3d041ae",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java",
      "new_id": "8758dc705f474d4a970b4ca7c536ead873d343d5",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java"
    },
    {
      "type": "modify",
      "old_id": "bb9fed65ee112c12ff9803cd72cd1e8b700c6ef2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java",
      "new_id": "77fdbda21ca894d1224162126e046fda3b3e6ee3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java"
    },
    {
      "type": "modify",
      "old_id": "8c725372e18767a5028012499dfc856855b1b572",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetTest.java",
      "new_id": "9c6714c17b3d06201a0d82890a53b7ba82257487",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetTest.java"
    },
    {
      "type": "modify",
      "old_id": "b0603cabe55afe9bdc427fb43705d8c208f89906",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java",
      "new_id": "37cc53429b7ad639f60a070b8a8f658af0c50ec8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java"
    },
    {
      "type": "modify",
      "old_id": "30f7786f83c2368200417a22154d6ff4cd580b7a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/buildtool/NoOutputActionTest.java",
      "new_id": "ca66e1b9fa4f0625f25715e3d1bc0ea99f6a0ca6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/buildtool/NoOutputActionTest.java"
    },
    {
      "type": "modify",
      "old_id": "d3fc968b98c252de45f35cb26bea97c4ba38efb1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java",
      "new_id": "aecc48a39a4ebdefdaa57cc7a8812d6055686c19",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "674382fa41a119428033a7c7c45ba15f39d491a5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java",
      "new_id": "85848e8ba529dca00c0dfc6fa0c1dd7e035637ee",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java"
    },
    {
      "type": "modify",
      "old_id": "4e3f7d499b80b9c699e62382ef801f1621142315",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java",
      "new_id": "03a58f18b4ad882f586f003f27c6d8641025399f",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java"
    },
    {
      "type": "modify",
      "old_id": "824b0eabeee679ade0373b018883d17660d8a6b4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java",
      "new_id": "33f8731e541cf27af59d2ec0e6fb57dc784019f1",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java"
    },
    {
      "type": "modify",
      "old_id": "ecdd4c8f5c94b598565594bbf8e47a14f0f113cb",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfoTest.java",
      "new_id": "1964ee9a77bf07463b4173e9dc2bb78b0298cbed",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfoTest.java"
    },
    {
      "type": "modify",
      "old_id": "069659ec2027989b2d43d0df2054f4dfed8f93f9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java",
      "new_id": "73bddfa9e42be47af2bc56a1637a83906d1e5022",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java"
    },
    {
      "type": "modify",
      "old_id": "83942639a77c0bb44ff7905d79f55600b749df92",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java",
      "new_id": "a4cc7193f06ec3dd93cc4ea638e7f5b6d53d0890",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "57d4724d66b4f1f1ebeb595c83cbfe0a8c6b42b9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java",
      "new_id": "e87f704736229e44a4174372d8ddff9e0d673aa8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java"
    },
    {
      "type": "modify",
      "old_id": "c5715536184ac5545dfa907c30582af1d9e2d211",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java",
      "new_id": "9e52524b580b7051e4a5f34adc8cdd76b1d4bd73",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java"
    },
    {
      "type": "modify",
      "old_id": "3b5ee29bfdd86882e8ac661faeb46479efa85cee",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ExceptionTest.java",
      "new_id": "a8ba83afb3c3de51b1b30153fd894255aa2bd37e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ExceptionTest.java"
    },
    {
      "type": "modify",
      "old_id": "831052c20d6181b7529bd56ec0f046af647097f8",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java",
      "new_id": "616a85ca4de1328e0364a1886c7ecdb23123f4c6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java"
    },
    {
      "type": "modify",
      "old_id": "70d76f47746d4a5dfc9d9288586290637f6a1022",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java",
      "new_id": "611674335003f8613dd95a4172c253afa196297f",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java"
    },
    {
      "type": "modify",
      "old_id": "ec8e418754e1be1bf30d3ce402adf9af4f738010",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java",
      "new_id": "77ad9dd5f5e321718200288b5c9a85766a493eba",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java"
    },
    {
      "type": "modify",
      "old_id": "cf420bba3da883a6e0597f772c342f5b52c752d1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/PrettyPrintTest.java",
      "new_id": "6293505ec8edd17402f8828bf9939c414225fc2c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/PrettyPrintTest.java"
    },
    {
      "type": "modify",
      "old_id": "7ffd09aedb01bdea06d02817d0ee665784ca10da",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkFileTest.java",
      "new_id": "28b1bbf4903dcb378e2b29d1ddde3b8d24a5c9cd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkFileTest.java"
    },
    {
      "type": "modify",
      "old_id": "83df6ce431f3233f9577f8d043999723947c0360",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkThreadDebuggingTest.java",
      "new_id": "de3442e7c034a0823d66d86a3e6590ade3c4b538",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkThreadDebuggingTest.java"
    },
    {
      "type": "modify",
      "old_id": "402dff61eb2f4f4becc5ed916db47e3040f3137f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java",
      "new_id": "747691dcab8a92d20032793111952c6b22567b99",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java"
    },
    {
      "type": "modify",
      "old_id": "5a97570b5a3c6ca6213b1b2d6c4467e54ec80167",
      "old_mode": 33261,
      "old_path": "src/test/shell/bazel/bazel_workspaces_test.sh",
      "new_id": "527fe0705d50ffcef5fb730df76c35caaadef343",
      "new_mode": 33261,
      "new_path": "src/test/shell/bazel/bazel_workspaces_test.sh"
    },
    {
      "type": "modify",
      "old_id": "43532a15faac42a13072098099d815776cb74301",
      "old_mode": 33261,
      "old_path": "src/test/shell/bazel/external_integration_test.sh",
      "new_id": "63ca019441fc19e6b0642574e226f3378ababc4d",
      "new_mode": 33261,
      "new_path": "src/test/shell/bazel/external_integration_test.sh"
    },
    {
      "type": "modify",
      "old_id": "1c29872c75947545f27c84f47b251ed895b8d7d9",
      "old_mode": 33261,
      "old_path": "src/test/shell/integration/ui_test.sh",
      "new_id": "c875880f2058bb4b2a5a294f5d85466af9f30e1e",
      "new_mode": 33261,
      "new_path": "src/test/shell/integration/ui_test.sh"
    },
    {
      "type": "modify",
      "old_id": "29d731ffc6a15cef0c59e147757adbb0d0b4f6a1",
      "old_mode": 33188,
      "old_path": "src/tools/skylark/java/com/google/devtools/skylark/common/LocationRange.java",
      "new_id": "e5414163e6789d817632ea7f607330b12c513e60",
      "new_mode": 33188,
      "new_path": "src/tools/skylark/java/com/google/devtools/skylark/common/LocationRange.java"
    }
  ]
}
