Provide generic access to type definition for user-defined types.

This commit is contained in:
chriseth
2022-03-09 10:41:57 +01:00
parent 145186f68c
commit 7bd6cba79c
2 changed files with 26 additions and 0 deletions
+15
View File
@@ -2341,6 +2341,11 @@ TypeResult StructType::interfaceType(bool _inLibrary) const
return *m_interfaceType_library;
}
Declaration const* StructType::typeDefinition() const
{
return &structDefinition();
}
BoolResult StructType::validForLocation(DataLocation _loc) const
{
for (auto const& member: m_struct.members())
@@ -2473,6 +2478,11 @@ Type const* EnumType::encodingType() const
return TypeProvider::uint(8);
}
Declaration const* EnumType::typeDefinition() const
{
return &enumDefinition();
}
TypeResult EnumType::unaryOperatorResult(Token _operator) const
{
return _operator == Token::Delete ? TypeProvider::emptyTuple() : nullptr;
@@ -2541,6 +2551,11 @@ Type const& UserDefinedValueType::underlyingType() const
return *type;
}
Declaration const* UserDefinedValueType::typeDefinition() const
{
return &m_definition;
}
string UserDefinedValueType::richIdentifier() const
{
return "t_userDefinedValueType" + parenthesizeIdentifier(m_definition.name()) + to_string(m_definition.id());