nitg-s: allocate HashSet[MType] for conflicts_graph_cache
authorJean Privat <jean@pryen.org>
Sat, 8 Dec 2012 03:05:27 +0000 (22:05 -0500)
committerJean Privat <jean@pryen.org>
Sat, 8 Dec 2012 03:05:27 +0000 (22:05 -0500)
A covariant cast error is raised by non-buggy engines when
a MNullableType object is added into a Set[MType] that is
dynamically a HashSet[MClassType].

Instantiate HashSet[MType] instead of HashSet[MClassType] remove
the cast error.

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

src/coloring.nit

index 23cc5d1..7cbdda4 100644 (file)
@@ -878,9 +878,9 @@ class LiveEntryColoring
 
        private fun add_conflict(mtype: MType, otype: MType) do
                if mtype == otype then return
-               if not self.conflicts_graph_cache.has_key(mtype) then  self.conflicts_graph_cache[mtype] = new HashSet[MClassType]
+               if not self.conflicts_graph_cache.has_key(mtype) then  self.conflicts_graph_cache[mtype] = new HashSet[MType]
                self.conflicts_graph_cache[mtype].add(otype)
-               if not self.conflicts_graph_cache.has_key(otype) then  self.conflicts_graph_cache[otype] = new HashSet[MClassType]
+               if not self.conflicts_graph_cache.has_key(otype) then  self.conflicts_graph_cache[otype] = new HashSet[MType]
                self.conflicts_graph_cache[otype].add(mtype)
        end
        private fun conflicts_graph: Map[MType, Set[MType]] do return conflicts_graph_cache.as(not null)