mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #5352 from ethereum/docContractConversions
[DOCS] Document disallowed explicit conversions between unrelated contract types.
This commit is contained in:
		
						commit
						e906b36604
					
				| @ -102,6 +102,14 @@ For most of the topics the compiler will provide suggestions. | ||||
|   ``c.transfer(...)`` to ``address(c).transfer(...)``, | ||||
|   and ``c.balance`` to ``address(c).balance``. | ||||
| 
 | ||||
| * Explicit conversions between unrelated contract types are now disallowed. You can only | ||||
|   convert from a contract type to one of its base or ancestor types. If you are sure that | ||||
|   a contract is compatible with the contract type you want to convert to, although it does not | ||||
|   inherit from it, you can work around this by converting to ``address`` first. | ||||
|   Example: if ``A`` and ``B`` are contract types, ``B`` does not inherit from ``A`` and | ||||
|   ``b`` is a contract of type ``B``, you can still convert ``b`` to type ``A`` using ``A(address(b))``. | ||||
|   Note that you still need to watch out for matching payable fallback functions, as explained below. | ||||
| 
 | ||||
| * The ``address`` type  was split into ``address`` and ``address payable``, | ||||
|   where only ``address payable`` provides the ``transfer`` function.  An | ||||
|   ``address payable`` can be directly converted to an ``address``, but the | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user