From: Jean Privat Date: Tue, 9 Aug 2016 15:19:21 +0000 (-0400) Subject: rta: drop local `is_valid_type` and use `is_legal_in` from `model` X-Git-Url: http://nitlanguage.org rta: drop local `is_valid_type` and use `is_legal_in` from `model` Signed-off-by: Jean Privat --- diff --git a/src/rapid_type_analysis.nit b/src/rapid_type_analysis.nit index c5ddc4a..b59474f 100644 --- a/src/rapid_type_analysis.nit +++ b/src/rapid_type_analysis.nit @@ -313,7 +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 is_valid_type(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) @@ -330,7 +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 is_valid_type(rt) then continue + if not rt.is_legal_in(mainmodule) then continue live_cast_types.add(rt) #print " {ot}/{t} -> {rt}" end @@ -338,16 +338,6 @@ class RapidTypeAnalysis #print "cast MType {live_cast_types.length}: {live_cast_types.join(", ")}" end - # Quick and dirty check that a forced type resolution gives a legal type - # TODO: move up in the model and kill `can_resolve_for` - private fun is_valid_type(mtype: MType): Bool - do - if mtype isa MGenericType then - return mtype.is_subtype(mainmodule, null, mtype.mclass.intro.bound_mtype) - end - return true - end - private fun check_depth(mtype: MClassType): Bool do var d = mtype.length