def test_ll_to_annotation(): s_z = ll_to_annotation(lltype.Signed._defl()) s_s = SomeInteger() s_u = SomeInteger(nonneg=True, unsigned=True) assert s_z.contains(s_s) assert not s_z.contains(s_u) s_uz = ll_to_annotation(lltype.Unsigned._defl()) assert s_uz.contains(s_u) assert ll_to_annotation(lltype.Bool._defl()).contains(SomeBool()) assert ll_to_annotation(lltype.Char._defl()).contains(SomeChar()) S = lltype.GcStruct('s') A = lltype.GcArray() s_p = ll_to_annotation(lltype.malloc(S)) assert isinstance(s_p, SomePtr) and s_p.ll_ptrtype == lltype.Ptr(S) s_p = ll_to_annotation(lltype.malloc(A, 0)) assert isinstance(s_p, SomePtr) and s_p.ll_ptrtype == lltype.Ptr(A)
def cast_primitive(T, s_v): assert T.is_constant() return ll_to_annotation(lltype.cast_primitive(T.const, annotation_to_lltype(s_v)._defl()))