Jiří Zárevúcky <zarevucky.j...@...> writes:

> 
> tecywiz121 píše v Čt 15. 07. 2010 v 23:06 -0400:
> > 
> > Bringing static code analysis would be amazing, but I have a feeling
> > that detecting when a variable is considered safe is an undecidable
> > problem (http://en.wikipedia.org/wiki/Undecidable_problem ).  Not sure
> > though.
> > 
> 
> I wouldn't go into discussion about whether it's decidable or not. The
> fact is that a much simpler variant of that problem (whether or not
> there is an if statement or assertion whose condition ensures safety) is
> entirely sufficient for vast majority of cases.

If what you mean would look like this:

Foo? a = bar();
// a is unsafe and can't be accessed
if (null != a)
{
// a is safe to use in this block
}

then I don't really see how that is any different than what we have now:

Foo? a = bar();
// a is unsafe and can't be accessed
if (null != a)
{
Foo b = (!)a;
// b is now safe to use
}

> For the rest of them,
> you'll just have one extra assert(), which is not a problem but rather a
> good practice. 

Isn't the point of having non-nullable types to eliminate runtime checks?  When
testing your program, its very easy to miss cases that would lead to the
assertion failing, which is still a bug.

Thanks for reading,
Sam



_______________________________________________
vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to