summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_grammar.py
Commit message (Collapse)AuthorAgeFilesLines
* bpo-45292: [PEP-654] add except* (GH-29581)Irit Katriel2021-12-141-0/+24
|
* bpo-44490: Improve typing module compatibility with types.Union (GH-27048)Yurii Karabas2021-07-171-1/+1
|
* bpo-43833: Emit warnings for numeric literals followed by keyword (GH-25466)Serhiy Storchaka2021-06-081-2/+90
| | | | | | | | Emit a deprecation warning if the numeric literal is immediately followed by one of keywords: and, else, for, if, in, is, or. Raise a syntax error with more informative message if it is immediately followed by other keyword or identifier. Automerge-Triggered-By: GH:pablogsal
* bpo-43995: Fix reference leak in test_grammar (GH-25764)Erlend Egeberg Aasland2021-04-301-4/+5
|
* bpo-43901: Lazy-create an empty annotations dict in all unannotated user ↵larryhastings2021-04-301-2/+1
| | | | | classes and modules (#25623) Change class and module objects to lazy-create empty annotations dicts on demand. The annotations dicts are stored in the object's `__dict__` for backwards compatibility.
* bpo-38605: Revert making 'from __future__ import annotations' the default ↵Pablo Galindo2021-04-211-25/+31
| | | | | | (GH-25490) This reverts commits 044a1048ca93d466965afc027b91a5a9eb9ce23c and 1be456ae9d53bb1cba2b24fc86175c282d1c2169, adapting the code to changes that happened after it.
* bpo-43497: Emit SyntaxWarnings for assertions with tuple constants. (GH-24867)tsukasa-au2021-03-161-2/+28
| | | | | | | | | | | | | | | | | | | * bpo-43497: Emit SyntaxWarnings for assertions with tuple constants. Add a test that shows that a tuple constant (a tuple, where all of its members are also compile-time constants) produces a SyntaxWarning. Then fix this failure. * Make SyntaxWarnings also work when "optimized". * Split tests for SyntaxWarning to SyntaxError conversion SyntaxWarnings emitted by the compiler when configured to be errors are actually raised as SyntaxError exceptions. Move these tests into their own method and add a test to ensure they are raised. Previously we only tested that they were not raised for a "valid" assertion statement.
* bpo-42864: Improve error messages regarding unclosed parentheses (GH-24161)Pablo Galindo2021-01-191-1/+1
|
* bpo-38605: Make 'from __future__ import annotations' the default (GH-20434)Batuhan Taskaya2020-10-061-31/+25
| | | | | The hard part was making all the tests pass; there are some subtle issues here, because apparently the future import wasn't tested very thoroughly in previous Python versions. For example, `inspect.signature()` returned type objects normally (except for forward references), but strings with the future import. We changed it to try and return type objects by calling `typing.get_type_hints()`, but fall back on returning strings if that function fails (which it may do if there are future references in the annotations that require passing in a specific namespace to resolve).
* bpo-41334: Convert constructors of str, bytes and bytearray to Argument ↵Serhiy Storchaka2020-07-201-6/+8
| | | | Clinic (GH-21535)
* bpo-40275: Use new test.support helper submodules in tests (GH-21169)Hai Shi2020-06-301-2/+4
|
* bpo-40939: Remove the old parser (GH-20768)Pablo Galindo2020-06-111-63/+47
| | | This commit removes the old parser, the deprecated parser module, the old parser compatibility flags and environment variables and all associated support code and documentation.
* bpo-40618: Disallow invalid targets in augassign and except clauses (GH-20083)Lysandros Nikolaou2020-05-141-1/+4
| | | | | | | | | This commit fixes the new parser to disallow invalid targets in the following scenarios: - Augmented assignments must only accept a single target (Name, Attribute or Subscript), but no tuples or lists. - `except` clauses should only accept a single `Name` as a target. Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
* bpo-40334: produce specialized errors for invalid del targets (GH-19911)Shantanu2020-05-111-0/+17
|
* bpo-40334: Allow trailing comma in parenthesised context managers (GH-19964)Pablo Galindo2020-05-061-1/+65
|
* bpo-39702: Relax grammar restrictions on decorators (PEP 614) (GH-18570)Brandt Bucher2020-03-031-2/+30
|
* bpo-37830: Fix compilation of break and continue in finally. (GH-15320)Serhiy Storchaka2019-08-241-0/+54
| | | | | | Fix compilation of "break" and "continue" in the "finally" block when the corresponding "try" block contains "return" with a non-constant value.
* bpo-35814: Allow unpacking in r.h.s of annotated assignment expressions ↵Pablo Galindo2019-06-031-0/+4
| | | | (GH-13760)
* bpo-37115: Support annotations in positional-only arguments (GH-13698)Pablo Galindo2019-05-311-0/+13
|
* bpo-35798: Add test.support.check_syntax_warning(). (#11895)Serhiy Storchaka2019-02-191-22/+10
| | | | | | | It checks that a SyntaxWarning is raised when compile specified statement, that it is raised only once, that it is converted to a SyntaxError when raised as exception, and that both warning and exception objects have corresponding attributes.
* bpo-15248: Emit a compiler warning when missed a comma before tuple or list. ↵Serhiy Storchaka2019-02-161-0/+87
| | | | (GH-11757)
* bpo-35814: Allow same r.h.s. in annotated assignments as in normal ones ↵Ivan Levkivskyi2019-01-251-0/+9
| | | | | | (GH-11667)
* bpo-34850: Emit a warning for "is" and "is not" with a literal. (GH-9642)Serhiy Storchaka2019-01-181-6/+30
|
* bpo-35029: Replace the SyntaxWarning exception with a SyntaxError. (GH-9999)Serhiy Storchaka2018-10-211-0/+9
| | | | If SyntaxWarning was raised as an exception, it will be replaced with a SyntaxError for better error reporting.
* Use assertEqual() instead of assertEquals(). (GH-9721)Serhiy Storchaka2018-10-051-1/+1
| | | Fixes warnings in tests added in bpo-32117 and bpo-34603.
* bpo-32117: Allow tuple unpacking in return and yield statements (gh-4509)David Cuthbert2018-09-221-1/+10
| | | | | Iterable unpacking is now allowed without parentheses in yield and return statements, e.g. ``yield 1, 2, 3, *rest``. Thanks to David Cuthbert for the change and jChapman for added tests.
* bpo-33305: Improve SyntaxError for invalid numerical literals. (GH-6517)Serhiy Storchaka2018-07-091-0/+24
|
* bpo-32489: Allow 'continue' in 'finally' clause. (GH-5822)Serhiy Storchaka2018-03-181-0/+53
|
* bpo-10544: Disallow "yield" in comprehensions and generator expressions. ↵Serhiy Storchaka2018-02-041-9/+3
| | | | (GH-4564)
* bpo-32482: Fix suspicious code in tests for syntax and grammar. (#5086)Serhiy Storchaka2018-01-041-6/+5
|
* bpo-32478: Add tests for 'break' and 'return' inside 'finally' clause. (#5078)Serhiy Storchaka2018-01-021-0/+74
|
* bpo-10544: Deprecate "yield" in comprehensions and generator expressions. ↵Serhiy Storchaka2017-12-011-0/+35
| | | | | | | | | | | | | | (GH-4579) The current behaviour of yield expressions inside comprehensions and generator expressions is essentially an accident of implementation - it arises implicitly from the way the compiler handles yield expressions inside nested functions and generators. Since the current behaviour wasn't deliberately designed, and is inherently confusing, we're deprecating it, with no current plans to reintroduce it. Instead, our advice will be to use a named nested generator definition for cases where this behaviour is desired.
* issue #28622: Remove redundant variable annotation test from test_grammar. ↵Guido van Rossum2016-11-071-3/+0
| | | | Ivan L.
* Issue #26182: Raise DeprecationWarning for improper use of async/await keywordsYury Selivanov2016-09-151-12/+0
|
* Issue #28076: Variable annotations should be mangled for private names.Guido van Rossum2016-09-111-2/+2
| | | | By Ivan Levkivskyi.
* Issue #26331: Implement the parsing part of PEP 515.Brett Cannon2016-09-091-0/+89
| | | | Thanks to Georg Brandl for the patch.
* Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations.Yury Selivanov2016-09-091-0/+178
| | | | Patch by Ivan Levkivskyi.
* Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes.Serhiy Storchaka2016-06-121-1/+1
| | | | Patch by Demur Rumed.
* Merge 3.5 (issue #27243)Yury Selivanov2016-06-091-1/+1
|\
| * Issue #27243: Fix __aiter__ protocolYury Selivanov2016-06-091-1/+1
| |
* | Merge 3.5Victor Stinner2016-04-121-1/+1
|\ \ | |/
| * Issue #26647: Fix typo in test_grammarVictor Stinner2016-04-121-1/+1
| | | | | | | | Patch written by Demur Rumed.
* | compiler: don't emit SyntaxWarning on const stmtVictor Stinner2016-02-081-5/+1
| | | | | | | | | | Issue #26204: the compiler doesn't emit SyntaxWarning warnings anymore when constant statements are ignored.
* | compiler now ignores constant statementsVictor Stinner2016-02-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compile ignores constant statements and emit a SyntaxWarning warning. Don't emit the warning for string statement because triple quoted string is a common syntax for multiline comments. Don't emit the warning on ellipis neither: 'def f(): ...' is a legit syntax for abstract functions. Changes: * test_ast: ignore SyntaxWarning when compiling test statements. Modify test_load_const() to use assignment expressions rather than constant expression. * test_code: add more kinds of constant statements, ignore SyntaxWarning when testing that the compiler removes constant statements. * test_grammar: ignore SyntaxWarning on the statement "1"
* | Issue #9232: Support trailing commas in function declarations.Robert Collins2015-08-111-0/+38
|/ | | | | | For example, "def f(*, a = 3,): pass" is now legal. Patch from Mark Dickinson.
* Issue #24791: Fix grammar regression for call syntax: 'g(*a or b)'.Yury Selivanov2015-08-051-0/+2
|
* Issue #23182: Merge with 3.4Zachary Ware2015-08-021-12/+12
|\
| * Issue #23182: PEP8-ify the annotation grammar tests. Patch by Ian Lee.Zachary Ware2015-08-021-12/+12
| |
* | Issue #24687: Plug refleak on SyntaxError in function parameters annotations.Yury Selivanov2015-07-231-1/+2
| |
* | Issue #24619: New approach for tokenizing async/await.Yury Selivanov2015-07-221-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes how one-line async-defs and defs are tracked by tokenizer. It allows to correctly parse invalid code such as: >>> async def f(): ... def g(): pass ... async = 10 and valid code such as: >>> async def f(): ... async def g(): pass ... await z As a consequence, is is now possible to have one-line 'async def foo(): await ..' functions: >>> async def foo(): return await bar()