)]}'
{
  "commit": "36a5c6a8a6d3dc45fbccd63e2fb38ef6911f33ce",
  "tree": "28d1fc6d75a64837b12f0698becf9d6096ea1fe5",
  "parents": [
    "85bf7a8fb4750610858ce72f1ebd39fb94013b27"
  ],
  "author": {
    "name": "Tim King",
    "email": "taking@google.com",
    "time": "Thu Aug 25 11:09:24 2022 -0400"
  },
  "committer": {
    "name": "Tim King",
    "email": "taking@google.com",
    "time": "Fri Nov 18 18:55:10 2022 +0000"
  },
  "message": "go/ssa: build generic function bodies\n\nssa now always builds the bodies of generic functions and methods.\nWithin the bodies of generic functions, parameterized types may appear\nin Instructions.\n\nWhen ssa.InstantiateGenerics is on, calls to generic functions\nwith ground (non-parameterized) types are built as instantiations of the\ngeneric function bodies. Otherwise, calls to generic functions are built\nas a wrapper function that delegates to the generic function body.\n\nThe ChangeType instruction can now represent a coercion to or from a\nparameterized type to an instance of the type.\n\n*ssa.Const values may now represent the zero value of any type.\n\nThe build mode of go/analysis/passes/buildssa is again\nssa.BuilderMode(0) (i.e. ssa.InstantiateGenerics is off).\n\nThis change is a stack of already reviewed CLs.\n\nFixes golang/go#48525\n\nChange-Id: Ib516eba43963674c804a63e3dcdae6d4116353c9\nReviewed-on: https://go-review.googlesource.com/c/tools/+/425496\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Zvonimir Pavlinovic \u003czpavlinovic@google.com\u003e\nRun-TryBot: Tim King \u003ctaking@google.com\u003e\ngopls-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4ec0e73ff2c63c42a036549bf7176313a1a3a09a",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/buildssa/buildssa.go",
      "new_id": "02b7b18b3f542aa5fe535f0956f90f58cae656b4",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/buildssa/buildssa.go"
    },
    {
      "type": "modify",
      "old_id": "8db18c73adefba3fad0dc64777e09d3669c6950a",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/nilness/nilness.go",
      "new_id": "61fa30a52375c96853b4a30ecbae8d2aa55114f1",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/nilness/nilness.go"
    },
    {
      "type": "modify",
      "old_id": "aa7f9a8f8592e4dd0567f535ef5e15d728cb3f6e",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/nilness/testdata/src/a/a.go",
      "new_id": "0629e08d89ee31e6e28044a9bf770cf77d62e673",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/nilness/testdata/src/a/a.go"
    },
    {
      "type": "modify",
      "old_id": "2b2036595a63ee7e4b8d291dc9102bc870d572fa",
      "old_mode": 33188,
      "old_path": "go/analysis/passes/nilness/testdata/src/c/c.go",
      "new_id": "c9a05a714ff42ffb9b7f99e2426b626a7ee314fc",
      "new_mode": 33188,
      "new_path": "go/analysis/passes/nilness/testdata/src/c/c.go"
    },
    {
      "type": "modify",
      "old_id": "352ce0c76edc52b356900538e072bc444300a892",
      "old_mode": 33188,
      "old_path": "go/callgraph/callgraph.go",
      "new_id": "905623753d64ab10212326942db96f75ac9b4812",
      "new_mode": 33188,
      "new_path": "go/callgraph/callgraph.go"
    },
    {
      "type": "modify",
      "old_id": "170040426b80db1adc813f3f54266970f0348d95",
      "old_mode": 33188,
      "old_path": "go/callgraph/cha/cha.go",
      "new_id": "7075a73cbe8df5e92421241cfb822aa57d457891",
      "new_mode": 33188,
      "new_path": "go/callgraph/cha/cha.go"
    },
    {
      "type": "modify",
      "old_id": "79250a56ca1c24e46c1a70b6494e19f2024fea51",
      "old_mode": 33188,
      "old_path": "go/callgraph/cha/testdata/generics.go",
      "new_id": "0323c7582b60fa8aadf9f0d000c2725fe3fcf163",
      "new_mode": 33188,
      "new_path": "go/callgraph/cha/testdata/generics.go"
    },
    {
      "type": "modify",
      "old_id": "c7fae75bbde04e36f94240e0c21a32421a1ec23e",
      "old_mode": 33188,
      "old_path": "go/callgraph/static/static.go",
      "new_id": "62d2364bf2cf41a59e3d0b3ee274f53c971a4745",
      "new_mode": 33188,
      "new_path": "go/callgraph/static/static.go"
    },
    {
      "type": "modify",
      "old_id": "c0b5775907ff06c65e3a1c7b0f6bbda07557d7ee",
      "old_mode": 33188,
      "old_path": "go/callgraph/vta/utils.go",
      "new_id": "d1831983ad650b204088a3f237679f6c7b96d3c2",
      "new_mode": 33188,
      "new_path": "go/callgraph/vta/utils.go"
    },
    {
      "type": "modify",
      "old_id": "9839bd3f3cda24c3ada735142be0a99860ce978a",
      "old_mode": 33188,
      "old_path": "go/callgraph/vta/vta.go",
      "new_id": "583936003373776c9946385cd5573b40832634e6",
      "new_mode": 33188,
      "new_path": "go/callgraph/vta/vta.go"
    },
    {
      "type": "modify",
      "old_id": "35ad8abdb12f4ff88ce182b62b1c43787f4ab09a",
      "old_mode": 33188,
      "old_path": "go/pointer/analysis.go",
      "new_id": "e3c85ede4f754e6ab599d275d13dbec37aa63d69",
      "new_mode": 33188,
      "new_path": "go/pointer/analysis.go"
    },
    {
      "type": "modify",
      "old_id": "9a4cc0af4a2754c6f4d0518af38633f80f5c8229",
      "old_mode": 33188,
      "old_path": "go/pointer/api.go",
      "new_id": "64de1100351ac0b961a309ce04707ece1b7f5caf",
      "new_mode": 33188,
      "new_path": "go/pointer/api.go"
    },
    {
      "type": "modify",
      "old_id": "d41346e699f96195d9115e61b680c94b75e8b8d8",
      "old_mode": 33188,
      "old_path": "go/pointer/doc.go",
      "new_id": "aca343b88e31ab39206aa49d0696ef9c5a97ec42",
      "new_mode": 33188,
      "new_path": "go/pointer/doc.go"
    },
    {
      "type": "modify",
      "old_id": "09705948d9c9993bfcdfd7d67163b6ecfc6cfe81",
      "old_mode": 33188,
      "old_path": "go/pointer/gen.go",
      "new_id": "bee656b623760764a0256ae1c9909dd9910b189f",
      "new_mode": 33188,
      "new_path": "go/pointer/gen.go"
    },
    {
      "type": "modify",
      "old_id": "05fe981f86e124072d326ccd8437c2f64f506efd",
      "old_mode": 33188,
      "old_path": "go/pointer/pointer_test.go",
      "new_id": "1fa54f6e8f7e5f7baa301d7885dc98fa1a558ba7",
      "new_mode": 33188,
      "new_path": "go/pointer/pointer_test.go"
    },
    {
      "type": "modify",
      "old_id": "efb11b0009611b180f4458f14c5c0a83778ea7d7",
      "old_mode": 33188,
      "old_path": "go/pointer/reflect.go",
      "new_id": "3762dd8d401c5d847ba15830e533bd8ad576b8e1",
      "new_mode": 33188,
      "new_path": "go/pointer/reflect.go"
    },
    {
      "type": "modify",
      "old_id": "5fec1fc4ed5d9a5a5b690604b7f3e3717cc26737",
      "old_mode": 33188,
      "old_path": "go/pointer/util.go",
      "new_id": "17728aa06ac1d722f7b4edc5654fbd4bac8c4e5a",
      "new_mode": 33188,
      "new_path": "go/pointer/util.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c35253c73cf2253451c65eb773a7735f2909226",
      "new_mode": 33188,
      "new_path": "go/ssa/TODO"
    },
    {
      "type": "modify",
      "old_id": "8ec8f6e310b82074838f797df91441cffcfbdaeb",
      "old_mode": 33188,
      "old_path": "go/ssa/builder.go",
      "new_id": "04deb7b06335977f1130672783c4121dbb04f149",
      "new_mode": 33188,
      "new_path": "go/ssa/builder.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dda53e1541fb3342082d831976682feb6bd6ad80",
      "new_mode": 33188,
      "new_path": "go/ssa/builder_generic_test.go"
    },
    {
      "type": "modify",
      "old_id": "84bdd4c41abdc88ee45b88100e56ea6865d2f847",
      "old_mode": 33188,
      "old_path": "go/ssa/builder_go120_test.go",
      "new_id": "04fb11a2d224861fc74a1a9c1779ac9520e4ce5a",
      "new_mode": 33188,
      "new_path": "go/ssa/builder_go120_test.go"
    },
    {
      "type": "modify",
      "old_id": "6fc844187dba715e6860a9a41a41e9ae6f1afc0a",
      "old_mode": 33188,
      "old_path": "go/ssa/builder_test.go",
      "new_id": "a80d8d5ab73e0c360eb8870156a61b61df90f810",
      "new_mode": 33188,
      "new_path": "go/ssa/builder_test.go"
    },
    {
      "type": "modify",
      "old_id": "dc182d9616c3556aeff9f78c112c561071cb46b7",
      "old_mode": 33188,
      "old_path": "go/ssa/const.go",
      "new_id": "3468eac7e13bc730bda5675f8c51730765eb286c",
      "new_mode": 33188,
      "new_path": "go/ssa/const.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "131fe1aced2d2dddf87d7325bd3c84db332bbf68",
      "new_mode": 33188,
      "new_path": "go/ssa/const_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "54bc4a8e6d56d20c0c3bb4bf98537e9733e918ae",
      "new_mode": 33188,
      "new_path": "go/ssa/coretype.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4ed290fd85f4e1768ba1a978f6bad59890c19a7",
      "new_mode": 33188,
      "new_path": "go/ssa/coretype_test.go"
    },
    {
      "type": "modify",
      "old_id": "345d9acfbbd2c90a64acabab0a79c29b27cf74cb",
      "old_mode": 33188,
      "old_path": "go/ssa/create.go",
      "new_id": "ccb20e79683e67bd5060a59dc701b268b3e3323f",
      "new_mode": 33188,
      "new_path": "go/ssa/create.go"
    },
    {
      "type": "modify",
      "old_id": "f6537acc97f274d396a8a2797245fb6351f4413b",
      "old_mode": 33188,
      "old_path": "go/ssa/emit.go",
      "new_id": "b041491b6e8b3685390cdf21f6b36923c262f2ff",
      "new_mode": 33188,
      "new_path": "go/ssa/emit.go"
    },
    {
      "type": "modify",
      "old_id": "c598ff836d385b129377cc375824c9305a70da1f",
      "old_mode": 33188,
      "old_path": "go/ssa/func.go",
      "new_id": "57f5f718f733610e173d693856b16b27c52e6a0e",
      "new_mode": 33188,
      "new_path": "go/ssa/func.go"
    },
    {
      "type": "modify",
      "old_id": "049b53487d56a9deedc69257afdb6b396d4313a3",
      "old_mode": 33188,
      "old_path": "go/ssa/instantiate.go",
      "new_id": "f73594bb41bf24c9b308a4f2e3048d7a35750f03",
      "new_mode": 33188,
      "new_path": "go/ssa/instantiate.go"
    },
    {
      "type": "modify",
      "old_id": "0da8c63042e2e95a25d4ac0527f3ee334068097f",
      "old_mode": 33188,
      "old_path": "go/ssa/instantiate_test.go",
      "new_id": "cd33e7e659e6f4263b210e2699272acef8a97712",
      "new_mode": 33188,
      "new_path": "go/ssa/instantiate_test.go"
    },
    {
      "type": "modify",
      "old_id": "2b21aad708b70c753e9e0733751f501f4940d98f",
      "old_mode": 33188,
      "old_path": "go/ssa/interp/interp.go",
      "new_id": "58cac464241a22bd4daacabe7a6cde42e80147d1",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/interp.go"
    },
    {
      "type": "modify",
      "old_id": "51a74015c95728feaf984af083604a0b3a665e52",
      "old_mode": 33188,
      "old_path": "go/ssa/interp/interp_test.go",
      "new_id": "c893d83e7536bb4e0394e58b1ad536e8e3ec167d",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/interp_test.go"
    },
    {
      "type": "modify",
      "old_id": "8f031384f03aa62b8faac2cda2f29a9af3835ea1",
      "old_mode": 33188,
      "old_path": "go/ssa/interp/ops.go",
      "new_id": "188899d69f32cd74f38d4a93c2406e0553b59084",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/ops.go"
    },
    {
      "type": "modify",
      "old_id": "69937f9d3c7be6dcaf48db7728658b730a62dc25",
      "old_mode": 33188,
      "old_path": "go/ssa/interp/testdata/boundmeth.go",
      "new_id": "47b94068591abd378a2a9892e06cb87142871fad",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/testdata/boundmeth.go"
    },
    {
      "type": "modify",
      "old_id": "43c0543eabf0cdc7b53d7ae4b60db26bb0e86f2c",
      "old_mode": 33188,
      "old_path": "go/ssa/interp/testdata/slice2array.go",
      "new_id": "84e6b73300852650c0b011be29df7fbbd3f8b965",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/testdata/slice2array.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "792a7558f61530baad2477864ed3a5bd80239c91",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/testdata/typeassert.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "509c78a36ecfb8beb0a5758386448fff111f3ba8",
      "new_mode": 33188,
      "new_path": "go/ssa/interp/testdata/zeros.go"
    },
    {
      "type": "modify",
      "old_id": "c350481db76590e6da63d0d1fd7e750d08661855",
      "old_mode": 33188,
      "old_path": "go/ssa/lift.go",
      "new_id": "945536bbbf42ceb7ea6bdb4a655e6f95b9121456",
      "new_mode": 33188,
      "new_path": "go/ssa/lift.go"
    },
    {
      "type": "modify",
      "old_id": "455b1e50fa4a33a46953990833c65472b14f793f",
      "old_mode": 33188,
      "old_path": "go/ssa/lvalue.go",
      "new_id": "51122b8e85e79f0b6083577b7341ab0c0f97ce7f",
      "new_mode": 33188,
      "new_path": "go/ssa/lvalue.go"
    },
    {
      "type": "modify",
      "old_id": "6954e17b77240f0e92a0a7c3add0bb0dd9b3e341",
      "old_mode": 33188,
      "old_path": "go/ssa/methods.go",
      "new_id": "4185618cdd6492d282a8c3fd72e503ba14f48c15",
      "new_mode": 33188,
      "new_path": "go/ssa/methods.go"
    },
    {
      "type": "modify",
      "old_id": "956718cd723e77ed8c2b864e94add55e88a002b6",
      "old_mode": 33188,
      "old_path": "go/ssa/parameterized.go",
      "new_id": "b11413c81843ecd64a60bcafb0229fe3260af198",
      "new_mode": 33188,
      "new_path": "go/ssa/parameterized.go"
    },
    {
      "type": "modify",
      "old_id": "b8e53923a174e408f348b9dccacbe59d7f90c275",
      "old_mode": 33188,
      "old_path": "go/ssa/print.go",
      "new_id": "9aa6809789e580c9729d3dbecfc2eaec2d13a70b",
      "new_mode": 33188,
      "new_path": "go/ssa/print.go"
    },
    {
      "type": "modify",
      "old_id": "7d71302756e7a4b87c2ec47d695448565675bf7a",
      "old_mode": 33188,
      "old_path": "go/ssa/sanity.go",
      "new_id": "3fb3f394e87fb3d887f362d7b5e14e4c3086e48a",
      "new_mode": 33188,
      "new_path": "go/ssa/sanity.go"
    },
    {
      "type": "modify",
      "old_id": "cbc638c81a86f5b214fec5f2f7746ceb808fdefa",
      "old_mode": 33188,
      "old_path": "go/ssa/ssa.go",
      "new_id": "698cb16507fdd208fbc51db98dabe96f099437ed",
      "new_mode": 33188,
      "new_path": "go/ssa/ssa.go"
    },
    {
      "type": "modify",
      "old_id": "7e02f97a7ed7e12d5197aa9f4f92b96b376325ec",
      "old_mode": 33188,
      "old_path": "go/ssa/stdlib_test.go",
      "new_id": "8b9f4238da8694bb88dd4d47358a41b57ab680e7",
      "new_mode": 33188,
      "new_path": "go/ssa/stdlib_test.go"
    },
    {
      "type": "modify",
      "old_id": "b29130ea0cbaf426dd0593e667ace5671e05517b",
      "old_mode": 33188,
      "old_path": "go/ssa/subst.go",
      "new_id": "396626befca1145276e3aa8234d65a6865e908d4",
      "new_mode": 33188,
      "new_path": "go/ssa/subst.go"
    },
    {
      "type": "modify",
      "old_id": "fe84adcc3da0a421b7fbbc9cde9eb269f5d6f1a5",
      "old_mode": 33188,
      "old_path": "go/ssa/subst_test.go",
      "new_id": "5fa88270004d7e25c7afe4cf01f5831ac821e11f",
      "new_mode": 33188,
      "new_path": "go/ssa/subst_test.go"
    },
    {
      "type": "modify",
      "old_id": "da76f13a39203655e56ad5cd42ce7a6e3ed2c74f",
      "old_mode": 33188,
      "old_path": "go/ssa/testdata/valueforexpr.go",
      "new_id": "243ec614f6472f813f31832b407ecb9e9ea1ad2d",
      "new_mode": 33188,
      "new_path": "go/ssa/testdata/valueforexpr.go"
    },
    {
      "type": "modify",
      "old_id": "80c7d5cbec03ac134c293781cb3dc6fbb2411d6b",
      "old_mode": 33188,
      "old_path": "go/ssa/util.go",
      "new_id": "c30e74c7fc9e26f98c9b524cd3996dcbaa3fddd0",
      "new_mode": 33188,
      "new_path": "go/ssa/util.go"
    },
    {
      "type": "modify",
      "old_id": "3f2267c8a1b4e0c0a958c9f6b3229f714660e12c",
      "old_mode": 33188,
      "old_path": "go/ssa/wrappers.go",
      "new_id": "228daf6158afb8363276a1225f6c90d252495e78",
      "new_mode": 33188,
      "new_path": "go/ssa/wrappers.go"
    }
  ]
}
