}
if ((!allow_none || n_type_args > 0) && n_type_args < expected_n_type_args) {
- error = true;
- Report.error (source_reference, "too few type arguments for `%s'", type_symbol.to_string ());
- return false;
+ if (n_type_args == 0 && type_symbol != null
+ && (type_symbol == context.analyzer.glistmodel_type || type_symbol == context.analyzer.gliststore_type)) {
+ Report.notice (source_reference, "`%s' requires a type argument, defaulting to `GLib.Object'", type_symbol.to_string ());
+ var type = new ObjectType (context.analyzer.object_type, source_reference);
+ type.value_owned = true;
+ add_type_argument (type);
+ } else {
+ error = true;
+ Report.error (source_reference, "too few type arguments for `%s'", type_symbol.to_string ());
+ return false;
+ }
} else if ((!allow_none || n_type_args > 0) && n_type_args > expected_n_type_args) {
error = true;
Report.error (source_reference, "too many type arguments for `%s'", type_symbol.to_string ());
public DataType delegate_target_type;
public DelegateType delegate_target_destroy_type;
public DelegateType generics_dup_func_type;
+ public Interface? glistmodel_type;
+ public Class? gliststore_type;
Delegate destroy_notify;
gsource_type = (Class) glib_ns.scope.lookup ("Source");
+ glistmodel_type = glib_ns.scope.lookup ("ListModel") as Interface;
+ gliststore_type = glib_ns.scope.lookup ("ListStore") as Class;
+
delegate_target_type = new StructValueType ((Struct) glib_ns.scope.lookup ("pointer"));
destroy_notify = (Delegate) glib_ns.scope.lookup ("DestroyNotify");
delegate_target_destroy_type = new DelegateType (destroy_notify);