type.value_owned = true;
}
} else if (nv[0] == "type_name") {
- ((UnresolvedType) type).unresolved_symbol = new UnresolvedSymbol (null, eval (nv[1]));
+ var unresolved_sym = new UnresolvedSymbol (null, eval (nv[1]));
+ if (type is ArrayType) {
+ ((UnresolvedType) ((ArrayType) type).element_type).unresolved_symbol = unresolved_sym;
+ } else {
+ ((UnresolvedType) type).unresolved_symbol = unresolved_sym;
+ }
} else if (nv[0] == "type_arguments") {
var type_args = eval (nv[1]).split (",");
foreach (string type_arg in type_args) {