lib/a_star: avoid bad autocast
authorJean Privat <jean@pryen.org>
Sat, 11 Apr 2015 17:11:40 +0000 (00:11 +0700)
committerJean Privat <jean@pryen.org>
Tue, 14 Apr 2015 09:31:36 +0000 (16:31 +0700)
Seriously, this one case might be a strong argument against autocasts

~~~
frontier_node = frontier_node.best_source.as(not null)
~~~

is auto-casted as

~~~
frontier_node = frontier_node.best_source.as(not null).as(N)
~~~

bun since the N is `nullable Node`, the not-null information was lost in the
cast.

Signed-off-by: Jean Privat <jean@pryen.org>

lib/a_star.nit

index 2cbd7cf..9735d90 100644 (file)
@@ -147,7 +147,8 @@ class Node
 
                                while frontier_node != self do
                                        path.nodes.unshift(frontier_node)
-                                       frontier_node = frontier_node.best_source.as(not null)
+                                       frontier_node = frontier_node.best_source
+                                       assert frontier_node != null
                                end
 
                                return path