docs: add notice for uint conversion before 0.8.0
docs: edit sentence structure + remove 'result in `address payable`'
docs: add keyword 'explicitly' to be more specific for `address payable`
docs: edit notice uint to address conversion change since 0.8.0
Co-authored-by: Kamil Śliwak <cameel2@gmail.com>
Currently the documentation suggests that a decimal literal can omit the
fractional part [1]:
> Decimal fractional literals are formed by a `.` with at least one
> number on one side. Examples include `1.`, `.1` and `1.3`.
However, commit ac68710 (May 30, 2018) disallowed trailing dots that are
not followed by a number [2].
Using decimal literals of the form `1.` will actually result in a
`ParserError` and so the docs should no longer recommend this form.
[1] https://docs.soliditylang.org/en/v0.8.15/types.html#rational-and-integer-literals
[2] ac68710789
It's already documented for push and this would clarify my incorrect assumption (that pop returns a value as in other languages) that caused confusion with https://github.com/ethereum/solidity/issues/13017
The docs state that a plain `address` cannot be sent Ether. But even though `send` and `transfer` members are not available for plain `address`, the `call` is. And `call` can be invoked upon a plain `address` type to send Ether to the address.
For instance, the `someone` (`address` type) can be sent Ether by invoking `sendSomeone()` method in the following `Dummy` contract:
```
contract Dummy {
address someone = 0xAb8...cb2;
function balanceOf(address addr) public view returns (uint) {
return addr.balance;
}
function sendToSomeone() public payable returns (bool) {
(bool sent, ) = someone.call{value: msg.value}("");
return sent;
}
}
```
Added the specificity that bytes1[] and bytes differ because of padding only in memory data location. Added extra sentence that they are similar when used in storage data location.
Changed the name of a function from `truncate` to `floor`, since that is more appropriate; updated
the inaccurate description on the rounding behaviour. Also modified the respective semantic test.
Enhancing all the .rst doc files by adding highlighting for the code snippets, including the following langs:
1. Solidity
2. bash
3. javascript
4. assembly