model: MParameterType::lookup_bound works for the easy case
authorJean Privat <jean@pryen.org>
Fri, 21 Nov 2014 14:17:04 +0000 (09:17 -0500)
committerJean Privat <jean@pryen.org>
Tue, 2 Dec 2014 05:42:53 +0000 (00:42 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

src/model/model.nit

index cd4988a..f5c24dd 100644 (file)
@@ -1293,7 +1293,11 @@ class MParameterType
        redef fun lookup_bound(mmodule: MModule, resolved_receiver: MType): MType
        do
                assert not resolved_receiver.need_anchor
+               assert resolved_receiver isa MClassType
                var goalclass = self.mclass
+               if resolved_receiver.mclass == goalclass then
+                       return resolved_receiver.arguments[self.rank]
+               end
                var supertypes = resolved_receiver.collect_mtypes(mmodule)
                for t in supertypes do
                        if t.mclass == goalclass then