ast: events have FunctionType too

This commit is contained in:
Yoichi Hirai
2017-01-11 20:06:59 +01:00
parent 7fea4b7360
commit abc24420a7
2 changed files with 17 additions and 8 deletions
+13 -5
View File
@@ -274,7 +274,7 @@ TypeDeclarationAnnotation& EnumDefinition::annotation() const
return static_cast<TypeDeclarationAnnotation&>(*m_annotation);
}
shared_ptr<FunctionType const> FunctionDefinition::functionType(bool _internal) const
shared_ptr<FunctionType> FunctionDefinition::functionType(bool _internal) const
{
if (_internal)
{
@@ -285,7 +285,7 @@ shared_ptr<FunctionType const> FunctionDefinition::functionType(bool _internal)
case Declaration::Visibility::Private:
case Declaration::Visibility::Internal:
case Declaration::Visibility::Public:
return make_shared<FunctionType const>(*this, _internal);
return make_shared<FunctionType>(*this, _internal);
case Declaration::Visibility::External:
return {};
default:
@@ -303,7 +303,7 @@ shared_ptr<FunctionType const> FunctionDefinition::functionType(bool _internal)
return {};
case Declaration::Visibility::Public:
case Declaration::Visibility::External:
return make_shared<FunctionType const>(*this, _internal);
return make_shared<FunctionType>(*this, _internal);
default:
solAssert(false, "visibility() should not return a Visibility");
}
@@ -347,6 +347,14 @@ TypePointer EventDefinition::type() const
return make_shared<FunctionType>(*this);
}
std::shared_ptr<FunctionType> EventDefinition::functionType(bool _internal) const
{
if (_internal)
return make_shared<FunctionType>(*this);
else
return {};
}
EventDefinitionAnnotation& EventDefinition::annotation() const
{
if (!m_annotation)
@@ -404,7 +412,7 @@ TypePointer VariableDeclaration::type() const
return annotation().type;
}
shared_ptr<FunctionType const> VariableDeclaration::functionType(bool _internal) const
shared_ptr<FunctionType> VariableDeclaration::functionType(bool _internal) const
{
if (_internal)
return {};
@@ -417,7 +425,7 @@ shared_ptr<FunctionType const> VariableDeclaration::functionType(bool _internal)
return {};
case Declaration::Visibility::Public:
case Declaration::Visibility::External:
return make_shared<FunctionType const>(*this);
return make_shared<FunctionType>(*this);
default:
solAssert(false, "visibility() should not return a Visibility");
}