Skip to content

Commit 0e6f906

Browse files
committed
Fix: throw correct error type for invalid maxlen
1 parent 59354de commit 0e6f906

File tree

1 file changed

+6
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/deque

1 file changed

+6
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/deque/DequeBuiltins.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError;
4444
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError;
45+
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.OverflowError;
4546
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.RuntimeError;
4647
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.StopIteration;
4748
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
@@ -179,6 +180,7 @@ PNone doGeneric(VirtualFrame frame, PDeque self, Object iterable, Object maxlenO
179180
@Cached CastToJavaIntExactNode castToIntNode,
180181
@CachedLibrary(limit = "1") PythonObjectLibrary lib,
181182
@Cached GetNextNode getNextNode,
183+
@Cached IsBuiltinClassProfile isTypeErrorProfile,
182184
@Cached IsBuiltinClassProfile isStopIterationProfile) {
183185
if (!PGuards.isPNone(maxlenObj)) {
184186
try {
@@ -187,6 +189,10 @@ PNone doGeneric(VirtualFrame frame, PDeque self, Object iterable, Object maxlenO
187189
throw raise(ValueError, "maxlen must be non-negative");
188190
}
189191
self.setMaxLength(maxlen);
192+
} catch (PException e) {
193+
// CastToJavaIntExactNode will throw a TypeError; we need to convert to OverflowError
194+
e.expect(TypeError, isTypeErrorProfile);
195+
throw raise(OverflowError, ErrorMessages.PYTHON_INT_TOO_LARGE_TO_CONV_TO, "int");
190196
} catch (CannotCastException e) {
191197
throw raise(TypeError, ErrorMessages.INTEGER_REQUIRED);
192198
}

0 commit comments

Comments
 (0)