aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-09-20 16:54:19 +0800
committerchriseth <chris@ethereum.org>2018-09-20 20:31:04 +0800
commitd0461c49fee20c5213f351bf3f1814112dcf3331 (patch)
treebbb2eb6f8be0993ef1ca8f0e7a6b35daf94f268a /libsolidity/analysis
parent2150aea344c259eb6541cb3617e7ae0f3d3381dd (diff)
downloaddexon-solidity-d0461c49fee20c5213f351bf3f1814112dcf3331.tar.gz
dexon-solidity-d0461c49fee20c5213f351bf3f1814112dcf3331.tar.zst
dexon-solidity-d0461c49fee20c5213f351bf3f1814112dcf3331.zip
Make non-payable default for conversion to address.
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index 3056561b..c42a0068 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -1778,9 +1778,7 @@ bool TypeChecker::visit(FunctionCall const& _functionCall)
}
if (resultType->category() == Type::Category::Address)
{
- bool payable = true;
- if (auto const* contractType = dynamic_cast<ContractType const*>(argType.get()))
- payable = contractType->isPayable();
+ bool payable = argType->isExplicitlyConvertibleTo(AddressType::addressPayable());
resultType = make_shared<AddressType>(payable ? StateMutability::Payable : StateMutability::NonPayable);
}
}