)]}'
{
  "commit": "a751f92b9fc21930547ea67347604fca0d0ed1e6",
  "tree": "b78c4a4d1f359391f5c17092dcd64ed4d9efb016",
  "parents": [
    "83c0a60b5c4b8ecc266e7a736ec154b9d256e2c1"
  ],
  "author": {
    "name": "Michael Staib",
    "email": "mstaib@google.com",
    "time": "Tue Feb 14 15:50:04 2017 +0000"
  },
  "committer": {
    "name": "Dmitry Lomov",
    "email": "dslomov@google.com",
    "time": "Tue Feb 14 15:52:37 2017 +0000"
  },
  "message": "Refactoring: Types report what class of labels they contain.\n\nCurrently label-type attributes are detected in many places across the\ncodebase by simply reference-comparing against each of the label types.\nThis CL aims to generalize most of these cases, moving the encoding of\nthis logic into a single place (Type/BuildType itself). Not all of these\ncases can be made general without further refactoring, and some perhaps\nshouldn\u0027t be - serialization and Skylark rule context, for example, need\nto do exotic things based on the type. But most sites can avoid having to\nenumerate all the types they work with explicitly.\n\nThis causes LABEL_DICT_UNARY to start being treated like the other label\ntypes, which means that CcToolchainSuiteRule and JavaRuntimeSuiteRule\nneed to include a set of allowed file types (none, in their case).\nSkylark will continue treating it as a dictionary from String to Label\nin its rule context, however, to avoid visible behavior changes.\n\n--\nPiperOrigin-RevId: 147471542\nMOS_MIGRATED_REVID\u003d147471542\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "937cf74c454930e16681532049db6b2a8085d470",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java",
      "new_id": "656ca2595fe80c406f0c8a9634d613231e3e19d5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java"
    },
    {
      "type": "modify",
      "old_id": "86d736d60a957da9a2e44b3e8362c843743ffacb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java",
      "new_id": "33f7d348f68f72c4851bd19e3b3e46993c0c9f91",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java"
    },
    {
      "type": "modify",
      "old_id": "338d4bfce8b1dbf85627e6207cbd4ccae9cdf9bc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java",
      "new_id": "a305e515d2d39bbcc7be7be83f4f7cad77b4adc2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java"
    },
    {
      "type": "modify",
      "old_id": "2288a76210b1a077e3ffa092f6bd4f731f1f0956",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/Attribute.java",
      "new_id": "f5e9b95eb9506f2e37a04277eaa57db44d400561",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/Attribute.java"
    },
    {
      "type": "modify",
      "old_id": "ae3b1214ed8f87c78c4a6987801242d9b9b6e20c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/BuildType.java",
      "new_id": "051b7e033fa321e69b0dfa8e02c5fe69427e039c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/BuildType.java"
    },
    {
      "type": "modify",
      "old_id": "a5d41ee631379719e2470285b4b46ba688eca45d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java",
      "new_id": "88fe6d41579d1ce33e5a684400400aaa9c096b96",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java"
    },
    {
      "type": "modify",
      "old_id": "abec0314766e4105c8e7dea6a91f1bb8cbceceb5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java",
      "new_id": "08113b6f20614e12cfeee97d9e9bbd6349fcde15",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java"
    },
    {
      "type": "modify",
      "old_id": "7e7b69cda103e853f0a17ed60732a1d150e35830",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java",
      "new_id": "8dfc1579d89c2f247199374a66d6ba9c91c8b4d2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java"
    },
    {
      "type": "modify",
      "old_id": "a08e6e093095f65db4e07914fe64f1d5707ab522",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java",
      "new_id": "55244b470a491825eb2f1f5d67c7eb08d6f4e70d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java"
    },
    {
      "type": "modify",
      "old_id": "8b28e91c29eb989064ec645ac5c8e4fcda0c7438",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java",
      "new_id": "22de4df4a3d6dc6753d49066bd9aa3159950717b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java"
    },
    {
      "type": "modify",
      "old_id": "dbbfc79c425bc65666e9fc3c3be089aaf5073acb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Type.java",
      "new_id": "387794b40f5d024a056a8db9d3052507655239a1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Type.java"
    },
    {
      "type": "modify",
      "old_id": "078d6af66986685b4dff7ffd785052b8c4561ea2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java",
      "new_id": "578db1b98f69a0138db21207ddad7090de15058d",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java"
    },
    {
      "type": "modify",
      "old_id": "7db103eba32f5dc8b73927c62f121cc2f147aef7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/testutil/BuildRuleWithDefaultsBuilder.java",
      "new_id": "e0e6b7740731e0e570ce4f384b5a208c77f46464",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/testutil/BuildRuleWithDefaultsBuilder.java"
    }
  ]
}
