{
  "message": "expected a path on the left-hand side of `+`, not `&'a Foo`",
  "code": {
    "code": "E0178",
    "explanation": "\nIn types, the `+` type operator has low precedence, so it is often necessary\nto use parentheses.\n\nFor example:\n\n```compile_fail,E0178\ntrait Foo {}\n\nstruct Bar<'a> {\n    w: &'a Foo + Copy,   // error, use &'a (Foo + Copy)\n    x: &'a Foo + 'a,     // error, use &'a (Foo + 'a)\n    y: &'a mut Foo + 'a, // error, use &'a mut (Foo + 'a)\n    z: fn() -> Foo + 'a, // error, use fn() -> (Foo + 'a)\n}\n```\n\nMore details can be found in [RFC 438].\n\n[RFC 438]: https://github.com/rust-lang/rfcs/pull/438\n"
  },
  "level": "error",
  "spans": [
    {
      "file_name": "./tests/everything/E0178.rs",
      "byte_start": 60,
      "byte_end": 74,
      "line_start": 6,
      "line_end": 6,
      "column_start": 8,
      "column_end": 22,
      "is_primary": true,
      "text": [
        {
          "text": "    w: &'a Foo + Send,",
          "highlight_start": 8,
          "highlight_end": 22
        }
      ],
      "label": null,
      "suggested_replacement": null,
      "expansion": null
    }
  ],
  "children": [
    {
      "message": "try adding parentheses",
      "code": null,
      "level": "help",
      "spans": [
        {
          "file_name": "./tests/everything/E0178.rs",
          "byte_start": 60,
          "byte_end": 74,
          "line_start": 6,
          "line_end": 6,
          "column_start": 8,
          "column_end": 22,
          "is_primary": true,
          "text": [
            {
              "text": "    w: &'a Foo + Send,",
              "highlight_start": 8,
              "highlight_end": 22
            }
          ],
          "label": null,
          "suggested_replacement": "&'a (Foo + Send)",
          "expansion": null
        }
      ],
      "children": [],
      "rendered": null
    }
  ],
  "rendered": "error[E0178]: expected a path on the left-hand side of `+`, not `&'a Foo`\n --> ./tests/everything/E0178.rs:6:8\n  |\n6 |     w: &'a Foo + Send,\n  |        ^^^^^^^^^^^^^^ help: try adding parentheses: `&'a (Foo + Send)`\n\nIf you want more information on this error, try using \"rustc --explain E0178\"\n"
}
{
  "message": "aborting due to previous error",
  "code": null,
  "level": "error",
  "spans": [],
  "children": [],
  "rendered": "error: aborting due to previous error\n\n"
}
