Irit Katriel
36f538c809
bpo-46458: Add tests for context of exception in finally block (GH-30986)
2022-01-28 20:41:58 +00:00
Yellow Dusk
82c53229e1
bpo-46442: improve and rename testExceptionCleanupNames (GH-30758)
...
The test tested that explicitly deleting the local variable bound to the exception
did not cause problems, but it did not test what it actually claimed to test, i.e.
that the variable is deleted automatically.
2022-01-22 02:09:34 -05:00
Pablo Galindo Salgado
cedec19be8
bpo-46339: Fix crash in the parser when computing error text for multi-line f-strings (GH-30529)
...
Automerge-Triggered-By: GH:pablogsal
2022-01-11 08:30:39 -08:00
Pablo Galindo Salgado
6fa8b2ceee
bpo-46237: Fix the line number of tokenizer errors inside f-strings (GH-30463)
2022-01-08 00:23:40 +00:00
Pablo Galindo Salgado
70f415fb8b
bpo-46240: Correct the error for unclosed parentheses when the tokenizer is not finished (GH-30378)
2022-01-04 10:41:22 +00:00
Irit Katriel
d60457a667
bpo-45292: [PEP-654] add except* (GH-29581)
2021-12-14 16:48:15 +00:00
Pablo Galindo Salgado
c6d1c52c16
bpo-46054: Correct non-utf8 character tests in test_exceptions (GH-30074)
2021-12-12 16:53:00 +00:00
Pablo Galindo Salgado
4325a766f5
bpo-46054: Fix parsing error when parsing non-utf8 characters in source files (GH-30068)
2021-12-12 07:06:50 +00:00
Pablo Galindo Salgado
59435eea08
bpo-46042: Improve SyntaxError locations in the symbol table (GH-30059)
2021-12-11 21:28:24 +00:00
Pablo Galindo Salgado
1c7a1c3be0
bpo-46004: Fix error location for loops with invalid targets (GH-29959)
2021-12-07 13:02:15 +00:00
Irit Katriel
5bb7ef2768
bpo-45607: Make it possible to enrich exception displays via setting their __note__ field (GH-29880)
2021-12-03 22:01:15 +00:00
Mark Shannon
60929576e4
bpo-45786: Allocate space for frame in frame object. (GH-29729)
2021-11-29 12:34:59 +00:00
Pablo Galindo Salgado
24c10d2943
bpo-45727: Only trigger the 'did you forgot a comma' error suggestion if inside parentheses (GH-29757)
2021-11-24 22:21:23 +00:00
Irit Katriel
4d6c0c0cce
bpo-45871: Refactor except matcher validation into a separate function so that it can be reused. Add missing unit test. (GH-29711)
2021-11-22 16:56:23 +00:00
Pablo Galindo Salgado
fdcc46d955
bpo-45848: Allow the parser to get error lines from encoded files (GH-29646)
2021-11-20 15:36:07 +01:00
Pablo Galindo Salgado
546cefcda7
bpo-45727: Make the syntax error for missing comma more consistent (GH-29427)
2021-11-19 23:11:57 +00:00
Dennis Sweeney
5d90c467c0
bpo-45826: Fix a crash in suggestions.c by checking for `traceback is None` (GH-29590)
2021-11-18 00:03:52 +01:00
Pablo Galindo Salgado
a106343f63
bpo-45494: Fix parser crash when reporting errors involving invalid continuation characters (GH-28993)
...
There are two errors that this commit fixes:
* The parser was not correctly computing the offset and the string
source for E_LINECONT errors due to the incorrect usage of strtok().
* The parser was not correctly unwinding the call stack when a tokenizer
exception happened in rules involving optionals ('?', [...]) as we
always make them return valid results by using the comma operator. We
need to check first if we don't have an error before continuing.
2021-10-19 21:24:12 +02:00
Pablo Galindo Salgado
0219017df7
bpo-45408: Don't override previous tokenizer errors in the second parser pass (GH-28812)
2021-10-07 22:33:05 +01:00
Victor Stinner
4e605666b0
bpo-45400: Fix suggestion test of test_exceptions (GH-28783)
...
Fix test_name_error_suggestions_do_not_trigger_for_too_many_locals()
of test_exceptions if a directory name contains "a1" (like
"Python-3.11.0a1"): use a stricter regular expression.
2021-10-07 13:47:23 +02:00
Christian Clauss
745c9d9dfc
Fix typos in the Lib directory (GH-28775)
...
Fix typos in the Lib directory as identified by codespell.
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2021-10-06 16:13:48 -07:00
andrei kulakov
a007347100
[tests] Add missing assert against expected tracebacks in test_exceptions.py (GH-28484)
2021-09-22 00:06:13 +02:00
Serhiy Storchaka
2a8127cafe
bpo-25130: Add calls of gc.collect() in tests to support PyPy (GH-28005)
2021-08-29 14:04:40 +03:00
Irit Katriel
62bc716fde
bpo-44895: skip test_no_hang_on_context_chain_cycle2 until the refleak is fixed (GH-27761)
2021-08-16 10:36:49 +02:00
Irit Katriel
7bf28cbb4b
bpo-44895: Temporarily add an extra gc.collect() call (GH-27746)
...
This is part of an investigation of a non-deterministic reference leak. While we're looking for the root cause, this is included temporarily so that CI doesn't fail on this particular issue. This enables it to find other regressions in the meantime, which would otherwise be shadowed by our known issue.
2021-08-13 11:41:35 +02:00
Benjamin Peterson
f08e6d1bb3
bpo-33930: Fix typo in the test name. ( #27733 )
...
bpo-33930: Fix typo in the test name. (GH-27733)
2021-08-11 18:56:43 -07:00
Pablo Galindo Salgado
bfc2d5a5c4
bpo-33930: Fix segfault with deep recursion when cleaning method objects (GH-27678)
2021-08-11 00:34:14 +01:00
Irit Katriel
d5c217475c
bpo-25782: avoid hang in PyErr_SetObject when current exception has a cycle in its context chain (GH-27626)
...
Co-authored-by: Dennis Sweeney 36520290+sweeneyde@users.noreply.github.com
2021-08-10 11:37:25 +02:00
Pablo Galindo Salgado
208a7e957b
bpo-34013: Don't consider a grouped expression when reporting legacy print syntax errors (GH-27521)
2021-08-01 02:10:50 +01:00
Pablo Galindo Salgado
ecc3c8e421
bpo-34013: Move the Python 2 hints from the exception constructor to the parser (GH-27392)
2021-07-27 21:30:32 +01:00
Pablo Galindo Salgado
6948964ecf
bpo-34013: Generalize the invalid legacy statement error message (GH-27389)
2021-07-27 17:19:22 +01:00
Pablo Galindo Salgado
6714dec5e1
bpo-44655: Don't include suggestions for attributes that are the same as the missing one (GH-27197)
2021-07-16 21:58:21 +01:00
Pablo Galindo Salgado
a283ef116b
Remove unnecessary 'invalid_primary' rule in the parser (GH-27186)
2021-07-16 13:20:09 +01:00
Pablo Galindo Salgado
f24777c2b3
bpo-44317: Improve tokenizer errors with more informative locations (GH-26555)
2021-07-10 01:29:29 +01:00
Mark Shannon
18ba1ff6a4
Make sure that line number is set correctly for call to __exit__ when handling exception in body of a with statement. (GH-26890)
2021-06-24 15:12:48 +01:00
Pablo Galindo
507ed6fa1d
bpo-44409: Fix error location in tokenizer errors that happen during initialization (GH-26712)
2021-06-14 17:46:11 +01:00
Pablo Galindo
457ce60fc7
bpo-44368: Ensure we don't raise incorrect custom syntax errors with soft keywords (GH-26630)
2021-06-09 22:20:01 +01:00
Pablo Galindo
9fd21f649d
bpo-44349: Fix edge case when displaying text from files with encoding in syntax errors (GH-26611)
2021-06-09 00:54:29 +01:00
Pablo Galindo
d334c73b56
bpo-44335: Fix a regression when identifying invalid characters in syntax errors (GH-26589)
2021-06-08 12:25:22 +01:00
Pablo Galindo
b51081c1a8
bpo-44180: Report generic syntax errors in the furthest position reached in the first parser pass (GH-26253)
2021-05-21 16:09:51 +01:00
Pablo Galindo
80b089179f
bpo-44143: Fix crash in the parser when raising tokenizer errors with an exception set (GH-26144)
2021-05-15 17:58:02 +01:00
Mark Shannon
adcd220556
bpo-40222: "Zero cost" exception handling (GH-25729)
...
"Zero cost" exception handling.
* Uses a lookup table to determine how to handle exceptions.
* Removes SETUP_FINALLY and POP_TOP block instructions, eliminating (most of) the runtime overhead of try statements.
* Reduces the size of the frame object by about 60%.
2021-05-07 15:19:19 +01:00
Pablo Galindo
9142088e74
bpo-43822: Prioritize tokenizer errors over custom syntax errors when raising parser exceptions (GH-25866)
2021-05-04 01:32:46 +01:00
Dennis Sweeney
80a2a4ed7d
bpo-38530: Refactor and improve AttributeError suggestions (GH-25776)
...
- Make case-swaps half the cost of any other edit
- Refactor Levenshtein code to not use memory allocator, and to bail early on no match.
- Add comments to Levenshtein distance code
- Add test cases for Levenshtein distance behind a debug macro
- Set threshold to `(name_size + item_size + 3) * MOVE_COST / 6`.
- Reasoning: similar to `difflib.SequenceMatcher.ratio()` >= 2/3:
```
"Multiset Jaccard similarity" >= 2/3
matching letters / total letters >= 2/3
(name_size - distance + item_size - distance) / (name_size + item_size) >= 2/3
1 - (2*distance) / (name_size + item_size) >= 2/3
1/3 >= (2*distance) / (name_size + item_size)
(name_size + item_size) / 6 >= distance
With rounding:
(name_size + item_size + 3) // 6 >= distance
```
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2021-05-03 16:47:27 +01:00
Mark Shannon
088a15c49d
bpo-43933: Show frame.f_lineno as None, rather than -1, if there is no line number. (GH-25717)
2021-04-29 19:28:50 +01:00
Dennis Sweeney
284c52da09
bpo-38530: Require 50% similarity in NameError and AttributeError suggestions (GH-25584)
2021-04-27 01:22:27 +01:00
Pablo Galindo
a77aac4fca
bpo-43914: Highlight invalid ranges in SyntaxErrors ( #25525 )
...
To improve the user experience understanding what part of the error messages associated with SyntaxErrors is wrong, we can highlight the whole error range and not only place the caret at the first character. In this way:
>>> foo(x, z for z in range(10), t, w)
File "<stdin>", line 1
foo(x, z for z in range(10), t, w)
^
SyntaxError: Generator expression must be parenthesized
becomes
>>> foo(x, z for z in range(10), t, w)
File "<stdin>", line 1
foo(x, z for z in range(10), t, w)
^^^^^^^^^^^^^^^^^^^^
SyntaxError: Generator expression must be parenthesized
2021-04-23 14:27:05 +01:00
Pablo Galindo
56c95dfe27
bpo-43859: Improve the error message for IndentationError exceptions (GH-25431)
2021-04-21 15:28:21 +01:00
Pablo Galindo
7a04116246
bpo-25460: Surround suggestions by quotes (GH-25473)
2021-04-19 23:35:53 +01:00
Pablo Galindo
0b1c169c4a
bpo-38530: Cover more error paths in error suggestion functions (GH-25462)
2021-04-17 23:28:45 +01:00