Okay, thanks for the response.

Now it's clear. And yes I get

"Equality operation: `null' and `GLib.List<GLib.FileInfo>' are
incompatible"

error while compiling with --enable-experimental-non-null.

On Fri, 2010-05-14 at 17:34 +0200, Jan Hudec wrote:
> Hello,
> 
> On Thu, May 13, 2010 16:06, Alexander Semenov wrote:
> > I'm looking at Vala GIO samples here:
> > http://live.gnome.org/Vala/GIOSamples
> >
> > Don't you think that null-check like
> >
> > var files = yield e.next_files_async (10, Priority.DEFAULT, null);
> > if (files == null) {
> >     break;
> > }
> >
> > is redundant in "Asynchronous File Listing"
> 
> No, because null is how empty list is implemented.
> 
> > example since the
> > "next_files_async" method signature is:
> >
> > public virtual async List<FileInfo> next_files_async (int num_files, int
> > io_priority, Cancellable? cancellable)
> 
> Non-nullable GLib.List makes no sense, because that would mean it may
> never be empty.
> 
> GLib.List is somewhat tricky, because it does not represent the collection
> as a whole, but rather an iterator to it and the collection does not have
> any representation as a whole at all. So to represent nothing, null is all
> that is left.
> 
> > ? Actually when --enable-experimental-non-null option is used it will
> > not compile - the return value isn't nullable and cannot be compared to
> > null.
> 
> Than that's a bug in the vapi.
> 


_______________________________________________
vala-list mailing list
vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to