From 19f6e4a42dbd4d2387f1e510fa3fad27ad4fba15 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Mon, 5 Aug 2019 10:11:35 +0200
Subject: [PATCH] Declare FieldShapeSymbol and FieldStrideSymbol as strictly
 positive

---
 pystencils/data_types.py       | 4 ++--
 pystencils/kernelparameters.py | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pystencils/data_types.py b/pystencils/data_types.py
index 08c1da1c9..ed95e80fa 100644
--- a/pystencils/data_types.py
+++ b/pystencils/data_types.py
@@ -105,8 +105,8 @@ class TypedSymbol(sp.Symbol):
         obj = TypedSymbol.__xnew_cached_(cls, *args, **kwds)
         return obj
 
-    def __new_stage2__(cls, name, dtype):
-        obj = super(TypedSymbol, cls).__xnew__(cls, name)
+    def __new_stage2__(cls, name, dtype, *args, **kwargs):
+        obj = super(TypedSymbol, cls).__xnew__(cls, name, *args, **kwargs)
         try:
             obj._dtype = create_type(dtype)
         except (TypeError, ValueError):
diff --git a/pystencils/kernelparameters.py b/pystencils/kernelparameters.py
index 11d30e09c..9284a1ee5 100644
--- a/pystencils/kernelparameters.py
+++ b/pystencils/kernelparameters.py
@@ -30,7 +30,7 @@ class FieldStrideSymbol(TypedSymbol):
 
     def __new_stage2__(cls, field_name, coordinate):
         name = "_stride_{name}_{i}".format(name=field_name, i=coordinate)
-        obj = super(FieldStrideSymbol, cls).__xnew__(cls, name, STRIDE_DTYPE)
+        obj = super(FieldStrideSymbol, cls).__xnew__(cls, name, STRIDE_DTYPE, positive=True)
         obj.field_name = field_name
         obj.coordinate = coordinate
         return obj
@@ -55,7 +55,7 @@ class FieldShapeSymbol(TypedSymbol):
     def __new_stage2__(cls, field_names, coordinate):
         names = "_".join([field_name for field_name in field_names])
         name = "_size_{names}_{i}".format(names=names, i=coordinate)
-        obj = super(FieldShapeSymbol, cls).__xnew__(cls, name, SHAPE_DTYPE)
+        obj = super(FieldShapeSymbol, cls).__xnew__(cls, name, SHAPE_DTYPE, positive=True)
         obj.field_names = tuple(field_names)
         obj.coordinate = coordinate
         return obj
-- 
GitLab