diff options
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 8ea0a4d7..9d7625c4 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<UserDefinedTypeName const&>(*member->typeName()); check(&dynamic_cast<StructDefinition const&>(*typeName.annotation().referencedDeclaration), parents); } + else if (auto arrayType = dynamic_cast<ArrayType const*>(type(*member).get())) + { + if (!arrayType->isDynamicallySized()) + if (auto structType = dynamic_cast<StructType const*>(arrayType->baseType().get())) + check(&structType->structDefinition(), parents); + } }; check(&_struct, StructPointersSet{}); |