If an instance struct field can not be resolved to a valid
type-signature then bail.
This fixes criticals like:
g_string_insert_len: assertion 'len == 0 || val != NULL' failed
generics/arrays-not-supported-3.test \
generics/constructor-chain-up.vala \
generics/floating-type-cast.vala \
+ generics/gvariant-serialization.test \
generics/inference-argument-may-fail.vala \
generics/inference-static-function.vala \
generics/integer-type-cast.vala \
--- /dev/null
+Invalid Code
+
+struct Foo<G> {
+ public G g;
+}
+
+void main () {
+ var foo = new Foo<string>[] {};
+ Variant v = foo;
+}
str.append_c ('(');
foreach (Field f in st.get_fields ()) {
if (f.binding == MemberBinding.INSTANCE) {
- str.append (f.variable_type.get_type_signature (f));
+ var s = f.variable_type.get_type_signature (f);
+ if (s != null) {
+ str.append (s);
+ } else {
+ return null;
+ }
}
}
str.append_c (')');