Author: Greg Price <pr...@mit.edu> Branch: signatures Changeset: r59322:f48ed5fc47db Date: 2012-12-03 21:06 -0800 http://bitbucket.org/pypy/pypy/changeset/f48ed5fc47db/
Log: Support floats in signatures diff --git a/pypy/annotation/types.py b/pypy/annotation/types.py --- a/pypy/annotation/types.py +++ b/pypy/annotation/types.py @@ -2,15 +2,27 @@ from pypy.annotation.listdef import ListDef +def float(): + return model.SomeFloat() + +def singlefloat(): + return model.SomeSingleFloat() + +def longfloat(): + return model.SomeLongFloat() + + def int(): return model.SomeInteger() + def str(): return model.SomeString() def char(): return model.SomeChar() + def list(element): listdef = ListDef(None, element, mutated=True, resized=True) return model.SomeList(listdef) @@ -19,5 +31,6 @@ listdef = ListDef(None, element, mutated=True, resized=False) return model.SomeList(listdef) + def instance(class_): return lambda bookkeeper: model.SomeInstance(bookkeeper.getuniqueclassdef(class_)) diff --git a/pypy/rlib/test/test_signature.py b/pypy/rlib/test/test_signature.py --- a/pypy/rlib/test/test_signature.py +++ b/pypy/rlib/test/test_signature.py @@ -75,6 +75,14 @@ def str_to_int(s): return s + +def test_signature_float(): + @signature(types.longfloat(), types.singlefloat(), returns=types.float()) + def f(a, b): + return 3.0 + assert getsig(f) == [model.SomeLongFloat(), model.SomeSingleFloat(), model.SomeFloat()] + + def test_signature_list(): @signature(types.list(types.int()), returns=types.int()) def f(a): @@ -127,6 +135,7 @@ l.append(2) check_annotator_fails(try_append) + def test_signature_instance(): class C1(object): pass _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit