aboutsummaryrefslogtreecommitdiffstats
path: root/AST.h
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2015-01-20 02:18:34 +0800
committerChristian <c@ethdev.com>2015-01-20 06:35:04 +0800
commit6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9 (patch)
tree0cedcacb974cd0d7f15734bccde634e76c47a565 /AST.h
parent4d833bc86bf10a685a8b5d72e90c49a24a33f8b3 (diff)
downloaddexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.tar.gz
dexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.tar.zst
dexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.zip
Explicit calls to base class function.
Diffstat (limited to 'AST.h')
-rwxr-xr-xAST.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/AST.h b/AST.h
index e8bc7f6a..76bdaebc 100755
--- a/AST.h
+++ b/AST.h
@@ -595,7 +595,7 @@ public:
virtual void accept(ASTConstVisitor& _visitor) const override;
virtual void checkTypeRequirements() override;
- void setFunctionReturnParameters(ParameterList& _parameters) { m_returnParameters = &_parameters; }
+ void setFunctionReturnParameters(ParameterList const& _parameters) { m_returnParameters = &_parameters; }
ParameterList const& getFunctionReturnParameters() const
{
solAssert(m_returnParameters, "");
@@ -607,7 +607,7 @@ private:
ASTPointer<Expression> m_expression; ///< value to return, optional
/// Pointer to the parameter list of the function, filled by the @ref NameAndTypeResolver.
- ParameterList* m_returnParameters;
+ ParameterList const* m_returnParameters;
};
/**
@@ -884,21 +884,30 @@ class Identifier: public PrimaryExpression
{
public:
Identifier(Location const& _location, ASTPointer<ASTString> const& _name):
- PrimaryExpression(_location), m_name(_name), m_referencedDeclaration(nullptr) {}
+ PrimaryExpression(_location), m_name(_name) {}
virtual void accept(ASTVisitor& _visitor) override;
virtual void accept(ASTConstVisitor& _visitor) const override;
virtual void checkTypeRequirements() override;
ASTString const& getName() const { return *m_name; }
- void setReferencedDeclaration(Declaration const& _referencedDeclaration) { m_referencedDeclaration = &_referencedDeclaration; }
+ void setReferencedDeclaration(Declaration const& _referencedDeclaration,
+ ContractDefinition const* _currentContract = nullptr)
+ {
+ m_referencedDeclaration = &_referencedDeclaration;
+ m_currentContract = _currentContract;
+ }
Declaration const* getReferencedDeclaration() const { return m_referencedDeclaration; }
+ ContractDefinition const* getCurrentContract() const { return m_currentContract; }
private:
ASTPointer<ASTString> m_name;
/// Declaration the name refers to.
- Declaration const* m_referencedDeclaration;
+ Declaration const* m_referencedDeclaration = nullptr;
+ /// Stores a reference to the current contract. This is needed because types of base contracts
+ /// change depending on the context.
+ ContractDefinition const* m_currentContract = nullptr;
};
/**