From d4dfd2869402a2559ea720e4e3800d42b0f90221 Mon Sep 17 00:00:00 2001 From: Daniel Kirchner Date: Thu, 12 Jul 2018 15:09:34 +0200 Subject: Consider fixed size array members when checking for recursive structs. --- libsolidity/analysis/TypeChecker.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libsolidity') 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(*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{}); -- cgit v1.2.3