aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2018-02-20 23:42:02 +0800
committerGitHub <noreply@github.com>2018-02-20 23:42:02 +0800
commitf5f00b4ee9e6e9038e3b84986ab3ff78504331fd (patch)
treefc43837724bdd5f2c1e66e15353a446b2f806088 /libsolidity/analysis
parenta6b52fdc34650c74597c1bcdc5075b6375c62650 (diff)
parent58bbb04276f27d3ecfa96dda54fbad80f8bbdbea (diff)
downloaddexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar.gz
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar.bz2
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar.lz
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar.xz
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.tar.zst
dexon-solidity-f5f00b4ee9e6e9038e3b84986ab3ff78504331fd.zip
Merge pull request #3535 from ethereum/fixShadowing
Fix shadowing detection for aliases
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/NameAndTypeResolver.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/libsolidity/analysis/NameAndTypeResolver.cpp b/libsolidity/analysis/NameAndTypeResolver.cpp
index 5e4d414b..662792a3 100644
--- a/libsolidity/analysis/NameAndTypeResolver.cpp
+++ b/libsolidity/analysis/NameAndTypeResolver.cpp
@@ -457,9 +457,10 @@ bool DeclarationRegistrationHelper::registerDeclaration(
if (!_errorLocation)
_errorLocation = &_declaration.location();
+ string name = _name ? *_name : _declaration.name();
Declaration const* shadowedDeclaration = nullptr;
- if (_warnOnShadow && !_declaration.name().empty() && _container.enclosingContainer())
- for (auto const* decl: _container.enclosingContainer()->resolveName(_declaration.name(), true))
+ if (_warnOnShadow && !name.empty() && _container.enclosingContainer())
+ for (auto const* decl: _container.enclosingContainer()->resolveName(name, true))
shadowedDeclaration = decl;
if (!_container.registerDeclaration(_declaration, _name, !_declaration.isVisibleInContract()))