)]}'
{
  "commit": "36594b69b94326014c331fe50a5a345ef4f8de16",
  "tree": "cecc275b17e4057a564317d90e582c5cb25da87f",
  "parents": [
    "d9f33a479f8012f7495d197e4b7417cba4d477fa"
  ],
  "author": {
    "name": "Ian Lance Taylor",
    "email": "iant@golang.org",
    "time": "Thu Feb 01 12:44:58 2018 -0800"
  },
  "committer": {
    "name": "Ian Lance Taylor",
    "email": "iant@golang.org",
    "time": "Mon Feb 05 01:55:57 2018 +0000"
  },
  "message": "compiler: update iota handling, fix using iota in array length\n\nCL 71750 changed the definition of how iota works.  This patch updates\ngccgo for the new definition.\n\nWe\u0027ve been mishandling iota appearing in a type that appears in a\nconst expression, as in `c \u003d len([iota]int{})`.  Correct that by copying\ntype expressions when we copy an expression.  For simplicity only copy\nwhen it can change the size of a type, as that is the only case where\niota in a type can affect the value of a constant (I think).  This is\nstill a bunch of changes, but almost all boilerplate.\n\nFixes golang/go#22341\n\nChange-Id: I7c96215ec0c373434facf2564e2911314b9e36ad\nReviewed-on: https://go-review.googlesource.com/91475\nReviewed-by: Than McIntosh \u003cthanm@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3bcc5ae1471c1d270c71f9035f505a7ee586ba25",
      "old_mode": 33188,
      "old_path": "go/expressions.cc",
      "new_id": "8555c052980812559fc21c62eb36150ce555f6a0",
      "new_mode": 33188,
      "new_path": "go/expressions.cc"
    },
    {
      "type": "modify",
      "old_id": "18fd91b054fff1790c65613f3eea8a0f31379aa3",
      "old_mode": 33188,
      "old_path": "go/expressions.h",
      "new_id": "d16a284b6b04c766430f7b0c6ee3c4ad11b0480c",
      "new_mode": 33188,
      "new_path": "go/expressions.h"
    },
    {
      "type": "modify",
      "old_id": "cc3791bb84da8f5c90b6e9906577b8c51ebf8df2",
      "old_mode": 33188,
      "old_path": "go/parse.cc",
      "new_id": "4891e758f792fe72dd42c7a2e32a5159cd9cb5da",
      "new_mode": 33188,
      "new_path": "go/parse.cc"
    },
    {
      "type": "modify",
      "old_id": "2ba84579e6c0dd29661d7de57eb1af8605026418",
      "old_mode": 33188,
      "old_path": "go/parse.h",
      "new_id": "f309ee05469a4cba48a5af2db0c28f9791e129a6",
      "new_mode": 33188,
      "new_path": "go/parse.h"
    },
    {
      "type": "modify",
      "old_id": "ea9d81d4e24dfd13d9e51a50b5a3efe4c8b60763",
      "old_mode": 33188,
      "old_path": "go/types.cc",
      "new_id": "34edf7628352eb7a8cd1359e76fa3c612439427f",
      "new_mode": 33188,
      "new_path": "go/types.cc"
    },
    {
      "type": "modify",
      "old_id": "4e060a4db110e3f86ca904e5beec7f134f5d895f",
      "old_mode": 33188,
      "old_path": "go/types.h",
      "new_id": "648773131ca6f43da3a6a466f763fde05bfd17cb",
      "new_mode": 33188,
      "new_path": "go/types.h"
    }
  ]
}
