aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp6
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{});