diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp index facbb35d3..764d98816 100644 --- a/libsolidity/ast/Types.cpp +++ b/libsolidity/ast/Types.cpp @@ -4215,9 +4215,8 @@ MemberList::MemberMap MagicType::nativeMembers(ASTNode const*) const } else if (m_typeArgument->category() == Type::Category::Struct) { - StructType const* structTypePointer = dynamic_cast(m_typeArgument); return MemberList::MemberMap({ - {"typehash", structTypePointer}, + {"typehash", TypeProvider::fixedBytes(32)}, }); } else if (m_typeArgument->category() == Type::Category::Integer) diff --git a/libsolidity/codegen/ir/IRGeneratorForStatements.cpp b/libsolidity/codegen/ir/IRGeneratorForStatements.cpp index 277b81fec..4a2019f4c 100644 --- a/libsolidity/codegen/ir/IRGeneratorForStatements.cpp +++ b/libsolidity/codegen/ir/IRGeneratorForStatements.cpp @@ -1948,7 +1948,7 @@ void IRGeneratorForStatements::endVisit(MemberAccess const& _memberAccess) StructType const* structType = dynamic_cast(arg); solAssert(structType != nullptr); StructDefinition const& struct_ = structType->structDefinition(); - define(_memberAccess) << formatNumber(struct_.typehash()) << "\n"; + define(_memberAccess) << "0x" << toHex(struct_.typehash()) << "\n"; } else if (member == "min" || member == "max") {