)]}'
{
  "commit": "5770588fd28330dc23282fa4e1616c66aa928da7",
  "tree": "69c92120c122cc89b7d8d878d3159972ae229522",
  "parents": [
    "2a07cd54bfa31f3d7ff50bdde2e886d8eed65511",
    "7ede2187bab13dcc8a8ed17161d95a54aef3619e"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Thu Oct 01 17:22:45 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 01 17:22:45 2026 +0200"
  },
  "message": "Rollup merge of #161467 - Dnreikronos:wfcheck/unused_param_name_discarding_item, r\u003dfmease\n\nwfcheck: name the item that discards an unused type parameter\n\nfixes rust-lang/rust#161365\n\nlabel was \"`T` is named here, but is likely unused in the containing type\". the \"likely\" is the part that bugs me. we can just go look, so now it does:\n\n```\nLL |     bar: Bar\u003cT\u003e,\n   |              - `T` is named here, but `Bar` does not use it\n```\n\nwhile collecting the usage spans it holds on to the outermost thing that throws the argument away. adts are easy, bivariant param in variances_of. aliases have no variances so you expand them and see what\u0027s left, and my first version of that only looked for the param in the rhs, which is wrong. `type Alias\u003cT\u003e \u003d DropFirst\u003cT, u8\u003e` mentions T and still drops it. so it walks the expansion skipping bivariant slots. (nested args blame the outer one, `Bar\u003cVec\u003cT\u003e\u003e` points at Bar.) if it can\u0027t work out who\u0027s responsible it falls back to \"this does not constrain `T`\".\n\nwarning for whoever touches this next: type_of doesn\u0027t expand free aliases and you can\u0027t chase them yourself. `type Recur\u003cT\u003e \u003d Recur\u003c(T,)\u003e` never repeats its args so there\u0027s nothing to stop on, stack goes. expand_free_alias_tys is the one with the limit. variance-overflow.rs has a comment at the top saying exactly this and i wrote it wrong anyway, so i stuck a case in there for the diagnostic path.\n\ntests in variance-unused-type-param.rs, new file for alias chains.\n\nthere\u0027s a separate bug in the \"only used recursively\" branch right next to this one that i left alone, wrote up why in a comment.\n",
  "tree_diff": []
}
