@@ -602,8 +602,26 @@ initial_counter_value(void) {
602
602
#define SPEC_FAIL_FOR_ITER_ENUMERATE 23
603
603
604
604
/* UNPACK_SEQUENCE */
605
- #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE 10
606
- #define SPEC_FAIL_UNPACK_SEQUENCE_LIST 11
605
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_0 9
606
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_1 10
607
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_2 11
608
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_3 12
609
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_4 13
610
+ #define SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_N 14
611
+
612
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_0 15
613
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_1 16
614
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_2 17
615
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_3 18
616
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_4 19
617
+ #define SPEC_FAIL_UNPACK_SEQUENCE_LIST_N 20
618
+
619
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_0 21
620
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_1 22
621
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_2 23
622
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_3 24
623
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_4 25
624
+ #define SPEC_FAIL_UNPACK_SEQUENCE_OTHER_N 26
607
625
608
626
609
627
static int
@@ -1978,15 +1996,19 @@ int
1978
1996
}
1979
1997
1980
1998
int
1981
- _PySpecialization_ClassifySequence (PyObject * seq )
1999
+ _PySpecialization_ClassifySequence (PyObject * seq , int n )
1982
2000
{
2001
+ assert (n >= 0 );
2002
+ if (n > 4 ) {
2003
+ n = 5 ;
2004
+ }
1983
2005
if (PyTuple_CheckExact (seq )) {
1984
- return SPEC_FAIL_UNPACK_SEQUENCE_TUPLE ;
2006
+ return SPEC_FAIL_UNPACK_SEQUENCE_TUPLE_0 + n ;
1985
2007
}
1986
2008
if (PyList_CheckExact (seq )) {
1987
- return SPEC_FAIL_UNPACK_SEQUENCE_LIST ;
2009
+ return SPEC_FAIL_UNPACK_SEQUENCE_LIST_0 + n ;
1988
2010
}
1989
- return SPEC_FAIL_OTHER ;
2011
+ return SPEC_FAIL_UNPACK_SEQUENCE_OTHER_0 + n ;
1990
2012
}
1991
2013
1992
2014
int
0 commit comments