{
  "$message_type": "diagnostic",
  "children": [
    {
      "children": [],
      "code": null,
      "level": "help",
      "message": "consider changing this to be mutable",
      "rendered": null,
      "spans": [
        {
          "byte_end": 167,
          "byte_start": 167,
          "column_end": 9,
          "column_start": 9,
          "expansion": null,
          "file_name": "./tests/everything/closure-immutable-outer-variable.rs",
          "is_primary": true,
          "label": null,
          "line_end": 11,
          "line_start": 11,
          "suggested_replacement": "mut ",
          "suggestion_applicability": "MachineApplicable",
          "text": [
            {
              "highlight_end": 9,
              "highlight_start": 9,
              "text": "    let y = true;"
            }
          ]
        }
      ]
    }
  ],
  "code": {
    "code": "E0594",
    "explanation": "A non-mutable value was assigned a value./n/nErroneous code example:/n/n```compile_fail,E0594/nstruct SolarSystem {/n    earth: i32,/n}/n/nlet ss = SolarSystem { earth: 3 };/nss.earth = 2; // error!/n```/n/nTo fix this error, declare `ss` as mutable by using the `mut` keyword:/n/n```/nstruct SolarSystem {/n    earth: i32,/n}/n/nlet mut ss = SolarSystem { earth: 3 }; // declaring `ss` as mutable/nss.earth = 2; // ok!/n```/n"
  },
  "level": "error",
  "message": "cannot assign to `y`, as it is not declared as mutable",
  "rendered": "error[E0594]: cannot assign to `y`, as it is not declared as mutable/n  --> ./tests/everything/closure-immutable-outer-variable.rs:12:26/n   |/n12 |     foo(Box::new(move || y = false) as Box<_>); //~ ERROR cannot assign to captured outer variable/n   |                          ^^^^^^^^^ cannot assign/n   |/nhelp: consider changing this to be mutable/n   |/n11 |     let mut y = true;/n   |         +++/n/n",
  "spans": [
    {
      "byte_end": 211,
      "byte_start": 202,
      "column_end": 35,
      "column_start": 26,
      "expansion": null,
      "file_name": "./tests/everything/closure-immutable-outer-variable.rs",
      "is_primary": true,
      "label": "cannot assign",
      "line_end": 12,
      "line_start": 12,
      "suggested_replacement": null,
      "suggestion_applicability": null,
      "text": [
        {
          "highlight_end": 35,
          "highlight_start": 26,
          "text": "    foo(Box::new(move || y = false) as Box<_>); //~ ERROR cannot assign to captured outer variable"
        }
      ]
    }
  ]
}
{
  "$message_type": "diagnostic",
  "children": [],
  "code": null,
  "level": "error",
  "message": "aborting due to 1 previous error",
  "rendered": "error: aborting due to 1 previous error/n/n",
  "spans": []
}
{
  "$message_type": "diagnostic",
  "children": [],
  "code": null,
  "level": "failure-note",
  "message": "For more information about this error, try `rustc --explain E0594`.",
  "rendered": "For more information about this error, try `rustc --explain E0594`./n",
  "spans": []
}