1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
from rpython.annotator import model
from rpython.annotator.listdef import ListDef
from rpython.annotator.dictdef import DictDef
def none():
return model.s_None
def impossible():
return model.s_ImpossibleValue
def float():
return model.SomeFloat()
def singlefloat():
return model.SomeSingleFloat()
def longfloat():
return model.SomeLongFloat()
def int():
return model.SomeInteger()
def int_nonneg():
return model.SomeInteger(nonneg=True)
def bool():
return model.SomeBool()
def unicode():
return model.SomeUnicodeString()
def unicode0():
return model.SomeUnicodeString(no_nul=True)
def str(can_be_None=False):
return model.SomeString(can_be_None=can_be_None)
def bytearray():
return model.SomeByteArray()
def str0():
return model.SomeString(no_nul=True)
def char():
return model.SomeChar()
def ptr(ll_type):
from rpython.rtyper.lltypesystem.lltype import Ptr
from rpython.rtyper.llannotation import SomePtr
return SomePtr(Ptr(ll_type))
def list(element):
listdef = ListDef(None, element, mutated=True, resized=True)
return model.SomeList(listdef)
def array(element):
listdef = ListDef(None, element, mutated=True, resized=False)
return model.SomeList(listdef)
def dict(keytype, valuetype):
dictdef = DictDef(None, keytype, valuetype)
return model.SomeDict(dictdef)
def instance(cls, can_be_None=False):
return lambda bookkeeper: model.SomeInstance(bookkeeper.getuniqueclassdef(cls), can_be_None=can_be_None)
class SelfTypeMarker(object):
pass
def self():
return SelfTypeMarker()
class AnyTypeMarker(object):
pass
def any():
return AnyTypeMarker()
|