aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/TypeChecker.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2017-02-01 06:12:40 +0800
committerchriseth <c@ethdev.com>2017-02-14 20:23:44 +0800
commitb1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a (patch)
tree246e38dffc35acbaa7a3039f90375f34a9be05cb /libsolidity/analysis/TypeChecker.cpp
parente67faa9839ebd0dadef2adf3ed1ef69fac6f65e1 (diff)
downloaddexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar.gz
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar.bz2
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar.lz
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar.xz
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.tar.zst
dexon-solidity-b1bb228ab3a8ca0548ed5f08fdc5fda1fcb71b1a.zip
Allow different entry scope for registerDeclarations.
Diffstat (limited to 'libsolidity/analysis/TypeChecker.cpp')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index be59d3d2..06a9e1ce 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -427,7 +427,12 @@ bool TypeChecker::visit(StructDefinition const& _struct)
bool TypeChecker::visit(FunctionDefinition const& _function)
{
- bool isLibraryFunction = dynamic_cast<ContractDefinition const&>(*_function.scope()).isLibrary();
+ bool isLibraryFunction = false;
+ if (
+ dynamic_cast<ContractDefinition const*>(_function.scope()) &&
+ dynamic_cast<ContractDefinition const*>(_function.scope())->isLibrary()
+ )
+ isLibraryFunction = true;
if (_function.isPayable())
{
if (isLibraryFunction)