@@ -225,7 +225,7 @@ pub(crate) fn make_parameters(args: &Py<PyTuple>, vm: &VirtualMachine) -> PyTupl
225225 // Check for __typing_subst__ attribute (like CPython)
226226 if arg. get_attr ( identifier ! ( vm, __typing_subst__) , vm) . is_ok ( ) {
227227 // Use tuple_add equivalent logic
228- if tuple_index_vec ( & parameters, arg) . is_none ( ) {
228+ if tuple_index ( & parameters, arg) . is_none ( ) {
229229 if iparam >= parameters. len ( ) {
230230 parameters. resize ( iparam + 1 , vm. ctx . none ( ) ) ;
231231 }
@@ -241,7 +241,7 @@ pub(crate) fn make_parameters(args: &Py<PyTuple>, vm: &VirtualMachine) -> PyTupl
241241 }
242242 for sub_param in sub_params {
243243 // Use tuple_add equivalent logic
244- if tuple_index_vec ( & parameters[ ..iparam] , sub_param) . is_none ( ) {
244+ if tuple_index ( & parameters[ ..iparam] , sub_param) . is_none ( ) {
245245 if iparam >= parameters. len ( ) {
246246 parameters. resize ( iparam + 1 , vm. ctx . none ( ) ) ;
247247 }
@@ -259,12 +259,7 @@ pub(crate) fn make_parameters(args: &Py<PyTuple>, vm: &VirtualMachine) -> PyTupl
259259}
260260
261261#[ inline]
262- fn tuple_index ( tuple : & PyTupleRef , item : & PyObjectRef ) -> Option < usize > {
263- tuple. iter ( ) . position ( |element| element. is ( item) )
264- }
265-
266- #[ inline]
267- fn tuple_index_vec ( vec : & [ PyObjectRef ] , item : & PyObjectRef ) -> Option < usize > {
262+ fn tuple_index ( vec : & [ PyObjectRef ] , item : & PyObjectRef ) -> Option < usize > {
268263 vec. iter ( ) . position ( |element| element. is ( item) )
269264}
270265
@@ -284,7 +279,7 @@ fn subs_tvars(
284279 let mut sub_args = Vec :: new ( ) ;
285280
286281 for arg in sub_params. iter ( ) {
287- if let Some ( idx) = tuple_index ( params, arg) {
282+ if let Some ( idx) = tuple_index ( params. as_slice ( ) , arg) {
288283 let param = & params[ idx] ;
289284 let substituted_arg = & arg_items[ idx] ;
290285
@@ -374,7 +369,7 @@ pub fn subs_parameters<F: Fn(&VirtualMachine) -> PyResult<String>>(
374369 for arg in args. iter ( ) {
375370 // Check for __typing_subst__ attribute directly (like CPython)
376371 if let Ok ( subst) = arg. get_attr ( identifier ! ( vm, __typing_subst__) , vm) {
377- let idx = tuple_index ( & parameters, arg) . unwrap ( ) ;
372+ let idx = tuple_index ( parameters. as_slice ( ) , arg) . unwrap ( ) ;
378373 if idx < num_items {
379374 // Call __typing_subst__ with the argument
380375 let substituted = subst. call ( ( arg_items[ idx] . clone ( ) , ) , vm) ?;
0 commit comments