Commit 8aa091c5 authored by Stefan Behnel's avatar Stefan Behnel

let SliceNode know it returns a slice instance

parent 87fbdd72
...@@ -424,7 +424,7 @@ def init_builtins(): ...@@ -424,7 +424,7 @@ def init_builtins():
'__debug__', PyrexTypes.c_const_type(PyrexTypes.c_bint_type), '__debug__', PyrexTypes.c_const_type(PyrexTypes.c_bint_type),
pos=None, cname='(!Py_OptimizeFlag)', is_cdef=True) pos=None, cname='(!Py_OptimizeFlag)', is_cdef=True)
global list_type, tuple_type, dict_type, set_type, frozenset_type global list_type, tuple_type, dict_type, set_type, frozenset_type
global bytes_type, str_type, unicode_type, basestring_type global bytes_type, str_type, unicode_type, basestring_type, slice_type
global float_type, bool_type, type_type, complex_type, bytearray_type global float_type, bool_type, type_type, complex_type, bytearray_type
type_type = builtin_scope.lookup('type').type type_type = builtin_scope.lookup('type').type
list_type = builtin_scope.lookup('list').type list_type = builtin_scope.lookup('list').type
...@@ -432,6 +432,7 @@ def init_builtins(): ...@@ -432,6 +432,7 @@ def init_builtins():
dict_type = builtin_scope.lookup('dict').type dict_type = builtin_scope.lookup('dict').type
set_type = builtin_scope.lookup('set').type set_type = builtin_scope.lookup('set').type
frozenset_type = builtin_scope.lookup('frozenset').type frozenset_type = builtin_scope.lookup('frozenset').type
slice_type = builtin_scope.lookup('slice').type
bytes_type = builtin_scope.lookup('bytes').type bytes_type = builtin_scope.lookup('bytes').type
str_type = builtin_scope.lookup('str').type str_type = builtin_scope.lookup('str').type
unicode_type = builtin_scope.lookup('unicode').type unicode_type = builtin_scope.lookup('unicode').type
......
...@@ -11,7 +11,7 @@ cython.declare(error=object, warning=object, warn_once=object, InternalError=obj ...@@ -11,7 +11,7 @@ cython.declare(error=object, warning=object, warn_once=object, InternalError=obj
unicode_type=object, str_type=object, bytes_type=object, type_type=object, unicode_type=object, str_type=object, bytes_type=object, type_type=object,
Builtin=object, Symtab=object, Utils=object, find_coercion_error=object, Builtin=object, Symtab=object, Utils=object, find_coercion_error=object,
debug_disposal_code=object, debug_temp_alloc=object, debug_coercion=object, debug_disposal_code=object, debug_temp_alloc=object, debug_coercion=object,
bytearray_type=object) bytearray_type=object, slice_type=object)
import sys import sys
import copy import copy
...@@ -29,7 +29,7 @@ from PyrexTypes import py_object_type, c_long_type, typecast, error_type, \ ...@@ -29,7 +29,7 @@ from PyrexTypes import py_object_type, c_long_type, typecast, error_type, \
unspecified_type unspecified_type
import TypeSlots import TypeSlots
from Builtin import list_type, tuple_type, set_type, dict_type, type_type, \ from Builtin import list_type, tuple_type, set_type, dict_type, type_type, \
unicode_type, str_type, bytes_type, bytearray_type, basestring_type unicode_type, str_type, bytes_type, bytearray_type, basestring_type, slice_type
import Builtin import Builtin
import Symtab import Symtab
from Cython import Utils from Cython import Utils
...@@ -4114,7 +4114,7 @@ class SliceNode(ExprNode): ...@@ -4114,7 +4114,7 @@ class SliceNode(ExprNode):
subexprs = ['start', 'stop', 'step'] subexprs = ['start', 'stop', 'step']
type = py_object_type type = slice_type
is_temp = 1 is_temp = 1
def calculate_constant_result(self): def calculate_constant_result(self):
...@@ -4132,6 +4132,9 @@ class SliceNode(ExprNode): ...@@ -4132,6 +4132,9 @@ class SliceNode(ExprNode):
except Exception, e: except Exception, e:
self.compile_time_value_error(e) self.compile_time_value_error(e)
def may_be_none(self):
return False
def analyse_types(self, env): def analyse_types(self, env):
start = self.start.analyse_types(env) start = self.start.analyse_types(env)
stop = self.stop.analyse_types(env) stop = self.stop.analyse_types(env)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment