diff -r 9d17f29fe16a -r 23a804fa1d3e src/SemanticAnalysis.cpp --- a/src/SemanticAnalysis.cpp Sun Sep 16 22:49:54 2012 -0700 +++ b/src/SemanticAnalysis.cpp Sun Sep 16 23:15:13 2012 -0700 @@ -1760,7 +1760,16 @@ if (!type) return; - if (type->isPrimitive() && type->primitive() == PrimitiveType_Char) { + if (field->dimensions()) { + type = buildArrayType(type, field->dimensions(), false); + if (!type) + return; + + if (!ArrayMap::Attach(zone_, type)) + return; + } + + if (IsScalarString(type)) { cc_.reportError(field->pos(), Message_CannotDeclareStringCell); return; }