aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-04-16 17:05:05 +0800
committerGitHub <noreply@github.com>2018-04-16 17:05:05 +0800
commitd8030c9b2ad0965d7de2637982005da9f4b6b93a (patch)
treeba5b88844c5b598b1c59362b4bad302b747ce390
parent73ca3e8a1eaf929dac60ce0a154975fa46b2040e (diff)
parent05c5ab19fb67849d806d8de1b9c3a2982d37f721 (diff)
downloaddexon-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.md1
-rw-r--r--docs/types.rst4
-rw-r--r--libsolidity/analysis/TypeChecker.cpp3
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."
);
}