コード例 #1
0
 def getruntime(self, expected_type):
     if expected_type == ootype.Class:
         rinstance = getinstancerepr(self.rtyper, self.classdef)
         return ootype.runtimeClass(rinstance.lowleveltype)
     else:
         assert ootype.isSubclass(expected_type, META)
         meta = self.get_meta_instance(cast_to_root_meta=False)
         return ootype.ooupcast(expected_type, meta)
コード例 #2
0
ファイル: rclass.py プロジェクト: sota/pypy
 def getruntime(self, expected_type):
     if expected_type == ootype.Class:
         rinstance = getinstancerepr(self.rtyper, self.classdef)
         return ootype.runtimeClass(rinstance.lowleveltype)
     else:
         assert ootype.isSubclass(expected_type, META)
         meta = self.get_meta_instance(cast_to_root_meta=False)
         return ootype.ooupcast(expected_type, meta)
コード例 #3
0
    def get_meta_instance(self, cast_to_root_meta=True):
        if self.lowleveltype == ootype.Class:
            raise TyperError("no meta-instance for class %r" %
                             (self.classdef, ))
        if self.meta_instance is None:
            self.meta_instance = ootype.new(self.lowleveltype)
            self.setup_meta_instance(self.meta_instance, self)

        meta_instance = self.meta_instance
        if cast_to_root_meta:
            meta_instance = ootype.ooupcast(META, meta_instance)
        return meta_instance
コード例 #4
0
ファイル: rclass.py プロジェクト: sota/pypy
 def get_meta_instance(self, cast_to_root_meta=True):
     if self.lowleveltype == ootype.Class:
         raise TyperError("no meta-instance for class %r" % 
                          (self.classdef,))
     if self.meta_instance is None:
         self.meta_instance = ootype.new(self.lowleveltype) 
         self.setup_meta_instance(self.meta_instance, self)
     
     meta_instance = self.meta_instance
     if cast_to_root_meta:
         meta_instance = ootype.ooupcast(META, meta_instance)
     return meta_instance
コード例 #5
0
 def upcast(self, result):
     return ootype.ooupcast(self.lowleveltype, result)
コード例 #6
0
ファイル: rclass.py プロジェクト: sota/pypy
 def upcast(self, result):
     return ootype.ooupcast(self.lowleveltype, result)
コード例 #7
0
ファイル: ooopimpl.py プロジェクト: sota/pypy
def op_ooupcast(INST, inst):
    return ootype.ooupcast(INST, inst)
コード例 #8
0
ファイル: exceptiondata.py プロジェクト: sota/pypy
 def cast_exception(self, TYPE, value):
     return ootype.ooupcast(TYPE, value)
コード例 #9
0
 def cast_exception(self, TYPE, value):
     return ootype.ooupcast(TYPE, value)
コード例 #10
0
ファイル: rpbc.py プロジェクト: sota/pypy-old
 def convert_pbc(self, pbc):
     if ootype.typeOf(pbc) != PBCROOT:
         pbc = ootype.ooupcast(PBCROOT, pbc)
     return pbc
コード例 #11
0
ファイル: rpbc.py プロジェクト: sota/pypy
 def convert_pbc(self, pbc):
     if ootype.typeOf(pbc) != PBCROOT:
         pbc = ootype.ooupcast(PBCROOT, pbc)
     return pbc
コード例 #12
0
def op_ooupcast(INST, inst):
    return ootype.ooupcast(INST, inst)