diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2018-02-20 23:42:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-20 23:42:02 +0800 |
commit | f5f00b4ee9e6e9038e3b84986ab3ff78504331fd (patch) | |
tree | fc43837724bdd5f2c1e66e15353a446b2f806088 /libsolidity/analysis | |
parent | a6b52fdc34650c74597c1bcdc5075b6375c62650 (diff) | |
parent | 58bbb04276f27d3ecfa96dda54fbad80f8bbdbea (diff) | |
download | dexon-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.cpp | 5 |
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())) |