)]}'
{
  "commit": "e83fb4c4c2b8ef1bd9ee89cdc847bb7dc69caa41",
  "tree": "9f43c3ffd2f13b58691f449829dfc5aa17c1fb58",
  "parents": [
    "6eb7777057081649fc30c86843f869e0bcab5d1b"
  ],
  "author": {
    "name": "Onyeka Obi",
    "email": "softwareengineerasaservant@isurvivable.cv",
    "time": "Fri May 15 05:07:47 2026 -0700"
  },
  "committer": {
    "name": "Onyeka Obi",
    "email": "softwareengineerasaservant@isurvivable.cv",
    "time": "Fri May 15 05:07:47 2026 -0700"
  },
  "message": "  method-resolution: emit error for method calls with illegal Sized bound\n\n  Resolves a FIXME at hir-ty/src/method_resolution.rs:151 in\n  lookup_method_including_private that previously allowed calls\n  like `x.cant_call()` on a `\u0026dyn Foo` receiver to type-check\n  without diagnostic when `cant_call(\u0026self) where Self: Sized`,\n  even though the `Self: Sized` predicate cannot be satisfied\n  by the trait object.\n\n  The existing predicates_require_illegal_sized_bound check in\n  confirm.rs already correctly identifies this case (it iterates\n  elaborated predicates and looks for `Self: Sized` clauses with\n  a `TyKind::Dynamic` self type).  Adds an\n  InferenceDiagnostic::MethodCallIllegalSizedBound variant,\n  plumbs the cooked diagnostic through hir, and renders it as\n  RustcHardError E0277.\n\n  Tests: trait-object call with Sized-bounded method errors;\n  trait-object call to dyn-safe method does not; concrete-type\n  call to a Sized-bounded method does not.\n\n  Part of rust-lang/rust-analyzer#22140.\n\nSigned-off-by: Onyeka Obi \u003csoftwareengineerasaservant@isurvivable.cv\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6aa647694e108e5fca85152eea957cca4a85998f",
      "old_mode": 33188,
      "old_path": "crates/hir-ty/src/infer.rs",
      "new_id": "3f90a78cc24fd7ceb14ca9810e68c4f7a6efa58c",
      "new_mode": 33188,
      "new_path": "crates/hir-ty/src/infer.rs"
    },
    {
      "type": "modify",
      "old_id": "5e90e371fcd9cff928ed86282baeb2eae1ccae51",
      "old_mode": 33188,
      "old_path": "crates/hir-ty/src/method_resolution.rs",
      "new_id": "9e0188fd2604e7255bbbcb72ab3ebbac7c1c1b8a",
      "new_mode": 33188,
      "new_path": "crates/hir-ty/src/method_resolution.rs"
    },
    {
      "type": "modify",
      "old_id": "9e4b929dd5fed73de73593d2c2570ec5303e8ea6",
      "old_mode": 33188,
      "old_path": "crates/hir/src/diagnostics.rs",
      "new_id": "7e4853539d81b1743e999a82e976b52a105a2cc4",
      "new_mode": 33188,
      "new_path": "crates/hir/src/diagnostics.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a0ac8627c3d13b638b73b09571234d251a2f245",
      "new_mode": 33188,
      "new_path": "crates/ide-diagnostics/src/handlers/method_call_illegal_sized_bound.rs"
    },
    {
      "type": "modify",
      "old_id": "0809054a2e3aaaadf6edae23334ea524e87db824",
      "old_mode": 33188,
      "old_path": "crates/ide-diagnostics/src/lib.rs",
      "new_id": "0880002cba8d51d8b4d74d6404030be30e5d8ad7",
      "new_mode": 33188,
      "new_path": "crates/ide-diagnostics/src/lib.rs"
    }
  ]
}
