title: cannot borrow data in a `&` reference as mutable in vector push
body: <p>I am learning rust but I keep getting this error and I don't know how to solve it after spending time trying to solve it.</p>
  
  <pre><code>    error[E0596]: cannot borrow data in a `&amp;` reference as mutable
    --&gt; src/main.rs:72:13
     |
  72 |             income_list.push( 1);
     |             ^^^^^^^^^^^ cannot borrow as mutable
  </code></pre>
  
  <p>I've used lazy_static in order to create a global varibale with type <code>u64</code>:</p>
  
  <pre><code>lazy_static! {
      static ref expense_list: Vec&lt;i64&gt; = Vec::new();
      static ref income_list: Vec&lt;u64&gt; = Vec::new();
  }
  </code></pre>
  
  <p>And I am trying to push value in it using the <code>push()</code> function:</p>
  
  <pre class="lang-rust prettyprint-override"><code>let mut income_input = String::new();
  io::stdin().read_line(&amp;mut income_input);
  let mut income_input: u64 = match income_input.trim().parse() {
      Ok(num) =&gt; num,
      Err(_) =&gt; break,
  };
  income_list.push(1); // it was income_list.push(income_input)
  </code></pre>
  
  <p>I can't push any value in the vector as it will keep throwing me that error, as per my understanding a vector should be a kind of array without a fixed-size.</p>
  
  <p>Where am I wrong ?</p>