Author: Spenser Bauman <saba...@gmail.com> Branch: value-classes Changeset: r87260:c37f0db2879f Date: 2016-09-20 15:03 -0400 http://bitbucket.org/pypy/pypy/changeset/c37f0db2879f/
Log: GcStruct support for value_class hint diff --git a/rpython/rtyper/lltypesystem/lltype.py b/rpython/rtyper/lltypesystem/lltype.py --- a/rpython/rtyper/lltypesystem/lltype.py +++ b/rpython/rtyper/lltypesystem/lltype.py @@ -370,7 +370,8 @@ return _struct(self, n, initialization='example') def _immutable_field(self, field): - if self._hints.get('immutable'): + if (self._hints.get('immutable') or + self._hints.get('value_class')): return True if 'immutable_fields' in self._hints: try: diff --git a/rpython/rtyper/lltypesystem/test/test_lltype.py b/rpython/rtyper/lltypesystem/test/test_lltype.py --- a/rpython/rtyper/lltypesystem/test/test_lltype.py +++ b/rpython/rtyper/lltypesystem/test/test_lltype.py @@ -787,6 +787,11 @@ hints={'immutable_fields': FieldListAccessor({'x': 1234})}) assert S._immutable_field('x') == 1234 +def test_value_class_hint(): + S = GcStruct('S', ('x', lltype.Signed), hints={'value_class': True}) + assert S._immutable_field('x') == True + assert S._hints.get('value_class', False) == True + def test_typedef(): T = Typedef(Signed, 'T') assert T == Signed _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit