diff options
author | chriseth <chris@ethereum.org> | 2018-08-07 01:02:07 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-07 01:02:07 +0800 |
commit | d33e5683f51dc9d85b4493abbf6f03f6ab7b8ff2 (patch) | |
tree | d2d4aa88a2bb88b8dc40694d27630383b4179f46 | |
parent | 0449b6446ebdafa18079277954b2ddc8cc1fc05c (diff) | |
parent | bd75d4268bd29b21cd92e557b7b126b33776ccea (diff) | |
download | dexon-solidity-d33e5683f51dc9d85b4493abbf6f03f6ab7b8ff2.tar.gz dexon-solidity-d33e5683f51dc9d85b4493abbf6f03f6ab7b8ff2.tar.zst dexon-solidity-d33e5683f51dc9d85b4493abbf6f03f6ab7b8ff2.zip |
Merge pull request #4557 from ethereum/ast-function-fqdn
Properly show constructor/fallback in FunctionDefinition.fullyQualfiedName
-rw-r--r-- | libsolidity/ast/AST.cpp | 9 | ||||
-rw-r--r-- | libsolidity/ast/AST.h | 4 |
2 files changed, 2 insertions, 11 deletions
diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index 7719d080..7c3869a8 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -347,15 +347,6 @@ string FunctionDefinition::externalSignature() const return FunctionType(*this).externalSignature(); } -string FunctionDefinition::fullyQualifiedName() const -{ - auto const* contract = dynamic_cast<ContractDefinition const*>(scope()); - solAssert(contract, "Enclosing scope of function definition was not set."); - - auto fname = name().empty() ? "<fallback>" : name(); - return sourceUnitName() + ":" + contract->name() + "." + fname; -} - FunctionDefinitionAnnotation& FunctionDefinition::annotation() const { if (!m_annotation) diff --git a/libsolidity/ast/AST.h b/libsolidity/ast/AST.h index 9ed3b9aa..d0d3b1ef 100644 --- a/libsolidity/ast/AST.h +++ b/libsolidity/ast/AST.h @@ -206,7 +206,6 @@ public: bool isVisibleInDerivedContracts() const { return isVisibleInContract() && visibility() >= Visibility::Internal; } bool isVisibleAsLibraryMember() const { return visibility() >= Visibility::Internal; } - std::string fullyQualifiedName() const { return sourceUnitName() + ":" + name(); } virtual bool isLValue() const { return false; } virtual bool isPartOfExternalInterface() const { return false; } @@ -406,6 +405,8 @@ public: /// Returns the fallback function or nullptr if no fallback function was specified. FunctionDefinition const* fallbackFunction() const; + std::string fullyQualifiedName() const { return sourceUnitName() + ":" + name(); } + virtual TypePointer type() const override; virtual ContractDefinitionAnnotation& annotation() const override; @@ -619,7 +620,6 @@ public: std::vector<ASTPointer<ModifierInvocation>> const& modifiers() const { return m_functionModifiers; } std::vector<ASTPointer<VariableDeclaration>> const& returnParameters() const { return m_returnParameters->parameters(); } Block const& body() const { solAssert(m_body, ""); return *m_body; } - std::string fullyQualifiedName() const; virtual bool isVisibleInContract() const override { return Declaration::isVisibleInContract() && !isConstructor() && !isFallback(); |