Esempio n. 1
0
 def invoke_method(self, argv, suppress_default):
     self = jit.promote(self)
     if len(argv) < self.arity:
         raise OldError(u"expected at least %d arguments, got %d" %
                        (self.arity, len(argv)))
     method = self.fetch_method(argv, suppress_default)
     if method is None:
         vec = []
         for i in range(self.arity):
             vec.append(space.get_interface(argv[i]))
         names = []
         for i in range(self.arity):
             names.append(vec[i].name)
         raise OldError(u"no method for [" + u' '.join(names) + u"]")
     return method.call(argv)
Esempio n. 2
0
 def repr(self):
     return u"<%s>" % space.get_interface(self).name
Esempio n. 3
0
def Interface_init_is_cast(obj):
    return space.get_interface(obj)
Esempio n. 4
0
 def invoke_method(self, argv, suppress_default):
     self = jit.promote(self)
     if len(argv) < self.arity:
         raise OldError(u"expected at least %d arguments, got %d" % (self.arity, len(argv))) 
     if self.arity == 1:
         method = self.get_method(jit.promote(space.get_interface(argv[0])))
     elif self.arity == 2:
         method = self.get_method(
             jit.promote(space.get_interface(argv[0])),
             jit.promote(space.get_interface(argv[1])))
     elif self.arity == 3:
         method = self.get_method(
             jit.promote(space.get_interface(argv[0])),
             jit.promote(space.get_interface(argv[1])),
             jit.promote(space.get_interface(argv[2])))
     elif self.arity == 4:
         method = self.get_method(
             jit.promote(space.get_interface(argv[0])),
             jit.promote(space.get_interface(argv[1])),
             jit.promote(space.get_interface(argv[2])),
             jit.promote(space.get_interface(argv[3])))
     else:
         vec = []
         for i in range(self.arity):
             vec.append(space.get_interface(argv[i]))
         method = self.methods.get(vec, None)
     if method is None:
         vec = []
         for i in range(self.arity):
             vec.append(space.get_interface(argv[i]))
         if self.default is null or suppress_default:
             names = []
             for i in range(self.arity):
                 names.append(vec[i].name)
             raise OldError(u"no method for ["+u' '.join(names)+u"]")
         return self.default.call(argv)
     return method.call(argv)
Esempio n. 5
0
 def invoke_method(self, argv, suppress_default):
     self = jit.promote(self)
     if len(argv) < self.arity:
         raise OldError(u"expected at least %d arguments, got %d" %
                        (self.arity, len(argv)))
     if self.arity == 1:
         method = self.get_method(jit.promote(space.get_interface(argv[0])))
     elif self.arity == 2:
         method = self.get_method(jit.promote(space.get_interface(argv[0])),
                                  jit.promote(space.get_interface(argv[1])))
     elif self.arity == 3:
         method = self.get_method(jit.promote(space.get_interface(argv[0])),
                                  jit.promote(space.get_interface(argv[1])),
                                  jit.promote(space.get_interface(argv[2])))
     elif self.arity == 4:
         method = self.get_method(jit.promote(space.get_interface(argv[0])),
                                  jit.promote(space.get_interface(argv[1])),
                                  jit.promote(space.get_interface(argv[2])),
                                  jit.promote(space.get_interface(argv[3])))
     else:
         vec = []
         for i in range(self.arity):
             vec.append(space.get_interface(argv[i]))
         method = self.methods.get(vec, None)
     if method is None:
         vec = []
         for i in range(self.arity):
             vec.append(space.get_interface(argv[i]))
         if self.default is null or suppress_default:
             names = []
             for i in range(self.arity):
                 names.append(vec[i].name)
             raise OldError(u"no method for [" + u' '.join(names) + u"]")
         return self.default.call(argv)
     return method.call(argv)
Esempio n. 6
0
 def repr(self):
     return u"<%s>" % space.get_interface(self).name
Esempio n. 7
0
 def get_interface(self, obj, version):
     interface = space.get_interface(obj)
     return self.get_impl(interface, version)