title: Why does Solidity suggest me to implement a receive ether function when I have a fallback function?
body: <p>The recent change in Solidity changed the fallback function format from just function() to fallback(), which is pretty nice for beginners to understand what is going on, but I have a question about a suggestion that the compiler gives me when I implement such a fallback.</p>
  
  <p>For example, a piece of code from my project:</p>
  
  <pre><code>pragma solidity ^0.6.1;
  
  contract payment{
      mapping(address =&gt; uint) _balance;
  
      fallback() payable external {
          _balance[msg.sender] += msg.value;
      }
  }
  </code></pre>
  
  <p>Everything goes fine, but the compiler suggests that:</p>
  
  <pre><code>Warning: This contract has a payable fallback function, but no receive ether function.
  Consider adding a receive ether function.
  </code></pre>
  
  <p>What does it mean by a receive ether function? I tried looking it up and many examples I could find is just another fallback function.</p>
  
  <p>I am using version 0.6.1+commit.e6f7d5a4</p>