From 0e0b245ad6101bca9a2fd8ffeb7ae4b5b41a8945 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Tue, 31 May 2022 23:12:11 +0100 Subject: [PATCH 1/2] gh-92597: Improve error message for AST nodes with invalid ranges --- Python/ast.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Python/ast.c b/Python/ast.c index 0885fe7798fa5e..37798458ea3ada 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -25,15 +25,15 @@ static int validate_pattern(struct validator *, pattern_ty, int); #define VALIDATE_POSITIONS(node) \ if (node->lineno > node->end_lineno) { \ PyErr_Format(PyExc_ValueError, \ - "line %d-%d is not a valid range", \ + "AST node line range (%d, %d) is not valid", \ node->lineno, node->end_lineno); \ return 0; \ } \ if ((node->lineno < 0 && node->end_lineno != node->lineno) || \ (node->col_offset < 0 && node->col_offset != node->end_col_offset)) { \ PyErr_Format(PyExc_ValueError, \ - "line %d-%d, column %d-%d is not a valid range", \ - node->lineno, node->end_lineno, node->col_offset, node->end_col_offset); \ + "AST node column range (%d, %d) for line %d is not valid", \ + node->col_offset, node->end_col_offset, node->lineno); \ return 0; \ } \ if (node->lineno == node->end_lineno && node->col_offset > node->end_col_offset) { \ From ec1a1f4075a1f8ccfb7534dc0176ec7ab4931a7e Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 1 Jun 2022 13:19:12 +0100 Subject: [PATCH 2/2] Update Python/ast.c --- Python/ast.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/ast.c b/Python/ast.c index 37798458ea3ada..a0321b58ba8cff 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -32,8 +32,8 @@ static int validate_pattern(struct validator *, pattern_ty, int); if ((node->lineno < 0 && node->end_lineno != node->lineno) || \ (node->col_offset < 0 && node->col_offset != node->end_col_offset)) { \ PyErr_Format(PyExc_ValueError, \ - "AST node column range (%d, %d) for line %d is not valid", \ - node->col_offset, node->end_col_offset, node->lineno); \ + "AST node column range (%d, %d) for line range (%d, %d) is not valid", \ + node->col_offset, node->end_col_offset, node->lineno, node->end_lineno); \ return 0; \ } \ if (node->lineno == node->end_lineno && node->col_offset > node->end_col_offset) { \