diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 8ea0a4d7c..9d7625c42 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -607,6 +607,12 @@ bool TypeChecker::visit(StructDefinition const& _struct) auto const& typeName = dynamic_cast(*member->typeName()); check(&dynamic_cast(*typeName.annotation().referencedDeclaration), parents); } + else if (auto arrayType = dynamic_cast(type(*member).get())) + { + if (!arrayType->isDynamicallySized()) + if (auto structType = dynamic_cast(arrayType->baseType().get())) + check(&structType->structDefinition(), parents); + } }; check(&_struct, StructPointersSet{});