rta: drop local `is_valid_type` and use `is_legal_in` from `model`
[nit.git] / src / rapid_type_analysis.nit
index 88e2b7e..b59474f 100644 (file)
@@ -313,6 +313,7 @@ class RapidTypeAnalysis
                                if not ot.can_resolve_for(t, t, mainmodule) then continue
                                var rt = ot.anchor_to(mainmodule, t)
                                if live_types.has(rt) then continue
+                               if not rt.is_legal_in(mainmodule) then continue
                                if not check_depth(rt) then continue
                                #print "{ot}/{t} -> {rt}"
                                live_types.add(rt)
@@ -329,6 +330,7 @@ class RapidTypeAnalysis
                        for t in live_types do
                                if not ot.can_resolve_for(t, t, mainmodule) then continue
                                var rt = ot.anchor_to(mainmodule, t)
+                               if not rt.is_legal_in(mainmodule) then continue
                                live_cast_types.add(rt)
                                #print "  {ot}/{t} -> {rt}"
                        end