diff options
author | chriseth <chris@ethereum.org> | 2018-04-16 17:05:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-16 17:05:05 +0800 |
commit | d8030c9b2ad0965d7de2637982005da9f4b6b93a (patch) | |
tree | ba5b88844c5b598b1c59362b4bad302b747ce390 | |
parent | 73ca3e8a1eaf929dac60ce0a154975fa46b2040e (diff) | |
parent | 05c5ab19fb67849d806d8de1b9c3a2982d37f721 (diff) | |
download | dexon-solidity-d8030c9b2ad0965d7de2637982005da9f4b6b93a.tar.gz dexon-solidity-d8030c9b2ad0965d7de2637982005da9f4b6b93a.tar.zst dexon-solidity-d8030c9b2ad0965d7de2637982005da9f4b6b93a.zip |
Merge pull request #3880 from ethereum/addressMemberDocAndWarn
Improve documentation and warning about accessing contract members in…
-rw-r--r-- | Changelog.md | 1 | ||||
-rw-r--r-- | docs/types.rst | 4 | ||||
-rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 3 |
3 files changed, 5 insertions, 3 deletions
diff --git a/Changelog.md b/Changelog.md index 81c8b974..91048cd5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -18,6 +18,7 @@ Features: * Syntax Checker: Issue warning for empty structs (or error as experimental 0.5.0 feature). * Syntax Checker: Warn about modifiers on functions without implementation (this will turn into an error with version 0.5.0). * Syntax Tests: Add source locations to syntax test expectations. + * Type Checker: Improve documentation and warnings for accessing contract members inherited from ``address``. * General: Introduce new constructor syntax using the ``constructor`` keyword as experimental 0.5.0 feature. * Inheritance: Error when using empty parentheses for base class constructors that require arguments as experimental 0.5.0 feature. * Inheritance: Error when using no parentheses in modifier-style constructor calls as experimental 0.5.0 feature. diff --git a/docs/types.rst b/docs/types.rst index 07421bdf..cf8f91be 100644 --- a/docs/types.rst +++ b/docs/types.rst @@ -179,8 +179,8 @@ All three functions ``call``, ``delegatecall`` and ``callcode`` are very low-lev The ``.gas()`` option is available on all three methods, while the ``.value()`` option is not supported for ``delegatecall``. .. note:: - All contracts inherit the members of address, so it is possible to query the balance of the - current contract using ``this.balance``. + All contracts can be converted to ``address`` type, so it is possible to query the balance of the + current contract using ``address(this).balance``. .. note:: The use of ``callcode`` is discouraged and will be removed in the future. diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index f4df4c94..47a551dc 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -1988,7 +1988,8 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess) m_errorReporter.warning( _memberAccess.location(), "Using contract member \"" + memberName +"\" inherited from the address type is deprecated." + - " Convert the contract to \"address\" type to access the member." + " Convert the contract to \"address\" type to access the member," + " for example use \"address(contract)." + memberName + "\" instead." ); } |