@@ -285,6 +285,9 @@ def lazy_imports(self):
285285 def lazy_modules (self ):
286286 return self .__s .lazy_modules
287287
288+ def slice_subscription (self ):
289+ return self .__s .slice_subscription
290+
288291 def __get_source_line (self , line , col = 0 ):
289292 if self .__s .source is None :
290293 return None # pragma: no cover
@@ -550,6 +553,10 @@ def minimum_versions(self):
550553 mins = self .__add_versions_entity (mins , (None , (3 , 15 )),
551554 "`__lazy_modules__`" )
552555
556+ if self .slice_subscription ():
557+ mins = self .__add_versions_entity (mins , (None , (3 , 15 )),
558+ "slice subscription" )
559+
553560 for directive in self .strftime_directives ():
554561 if directive in STRFTIME_REQS :
555562 vers = STRFTIME_REQS [directive ]
@@ -2291,6 +2298,13 @@ def match(name):
22912298 if is_ellipsis_node (n ):
22922299 self .__s .ellipsis_nodes_in_slices .add (n )
22932300
2301+ # `slice[...]` subscript support (3.15+).
2302+ if isinstance (node .value , ast .Name ) and node .value .id == "slice" \
2303+ and "slice" not in self .__s .user_defs :
2304+ self .__s .slice_subscription = True
2305+ self .__vvprint ("slice subscription" , line = node .lineno ,
2306+ versions = [None , (3 , 15 )])
2307+
22942308 self .generic_visit (node )
22952309
22962310 def visit_Match (self , node ):
0 commit comments