Serhiy Storchaka
b619b09792
bpo-31241: Fix AST node position for list and generator comprehensions. (GH-10633)
...
The lineno and col_offset attributes of AST nodes for list comprehensions,
generator expressions and tuples are now point to the opening parenthesis or
square brace. For tuples without parenthesis they point to the position
of the first item.
2018-11-27 09:40:29 +02:00
Victor Stinner
4d73ae7761
bpo-18407: ast.c uses Py_ssize_t for asdl_seq_LEN() iterator (GH-10655)
...
When iterating using asdl_seq_LEN(), use 'Py_ssize_t' type instead of
'int' for the iterator variable, to avoid downcast on 64-bit platforms.
_Py_asdl_int_seq_new() now also ensures that the index is greater than
or equal to 0.
2018-11-22 14:45:16 +01:00
Serhiy Storchaka
97f1efb606
bpo-35169: Improve error messages for forbidden assignments. (GH-10342)
2018-11-20 19:27:16 +02:00
Serhiy Storchaka
95b6acf951
bpo-34876: Change the lineno of the AST for decorated function and class. (GH-9731)
...
It was overridden by the lineno of the first decorator. Now it is
the lineno of 'def' or 'class'.
2018-10-30 13:16:02 +02:00
Serhiy Storchaka
6543912c90
bpo-32912: Replace a DeprecationWarning with a SyntaxWarning (GH-9652)
...
for invalid escape sequences in string and bytes literals.
2018-10-19 17:42:06 +03:00
Serhiy Storchaka
3f22811fef
bpo-32892: Use ast.Constant instead of specific constant AST types. (GH-9445)
2018-09-27 17:42:37 +03:00
Ammar Askar
025eb98dc0
bpo-34683: Make SyntaxError column offsets consistently 1-indexed (gh-9338)
...
Also point to start of tokens in parsing errors.
Fixes bpo-34683
2018-09-24 14:12:49 -07:00
Benjamin Peterson
c9a71dd223
closes bpo-34641: Further restrict the LHS of keyword argument function call syntax. (GH-9212)
2018-09-12 17:14:39 -07:00
Benjamin Peterson
d13e59c1b5
Make sure the line comes from the same node as the col offset. (GH-9189)
...
Followup to 90fc8980bb
.
<!--
Thanks for your contribution!
Please read this comment in its entirety. It's quite important.
# Pull Request title
It should be in the following format:
```
bpo-NNNN: Summary of the changes made
```
Where: bpo-NNNN refers to the issue number in the https://bugs.python.org .
Most PRs will require an issue number. Trivial changes, like fixing a typo, do not need an issue.
# Backport Pull Request title
If this is a backport PR (PR made against branches other than `master`),
please ensure that the PR title is in the following format:
```
[X.Y] <title from the original PR> (GH-NNNN)
```
Where: [X.Y] is the branch name, e.g. [3.6].
GH-NNNN refers to the PR number from `master`.
-->
2018-09-11 15:29:57 -07:00
guoci
90fc8980bb
closes bpo-31902: Fix the col_offset attribute for ast.Async* nodes to point to the "async" keyword. (GH-4175)
...
Previously, col_offset points to the keyword after "async".
2018-09-11 14:45:45 -07:00
Alexey Izbyshev
28853a249b
bpo-34457: Python/ast.c: Add missing NULL check to alias_for_import_name(). (GH-8852)
...
Reported by Svace static analyzer.
2018-08-22 07:55:16 +03:00
Serhiy Storchaka
143ce5c6db
bpo-33691: Add _PyAST_GetDocString(). (GH-7236)
2018-05-30 10:56:16 +03:00
Serhiy Storchaka
73cbe7a01a
bpo-32911: Revert bpo-29463. (GH-7121) (GH-7197)
...
Remove the docstring attribute of AST types and restore docstring
expression as a first stmt in their body.
Co-authored-by: INADA Naoki <methane@users.noreply.github.com>
2018-05-29 12:04:55 +03:00
Jelle Zijlstra
898ff92dac
fix error message in ast.c ( #6776 )
...
small_stmt -> compound_stmt
2018-05-13 17:04:53 -04:00
Victor Stinner
fb7e7992be
bpo-30465: Fix C downcast warning on Windows in ast.c ( #6593 )
...
ast.c: fstring_fix_node_location() downcasts a pointer difference to
a C int. Replace int with Py_ssize_t to fix the compiler warning.
2018-04-30 14:51:02 -07:00
Serhiy Storchaka
a561862048
Don't hide unexpected errors in PyErr_WarnExplicitObject(). ( #4585 )
2017-12-01 08:40:23 +02:00
Serhiy Storchaka
ddbce13786
bpo-32023: Disallow genexprs without parenthesis in class definitions. ( #4400 )
2017-11-15 17:39:37 +02:00
Serhiy Storchaka
9165f77d5f
bpo-32012: Disallow trailing comma after genexpr without parenthesis. ( #4382 )
2017-11-15 08:49:40 +02:00
luzpaz
a5293b4ff2
Fix miscellaneous typos ( #4275 )
2017-11-05 15:37:50 +02:00
Serhiy Storchaka
56cb465cc9
bpo-31825: Fixed OverflowError in the 'unicode-escape' codec ( #4058 )
...
and in codecs.escape_decode() when decode an escaped non-ascii byte.
2017-10-20 17:08:15 +03:00
Jelle Zijlstra
ac317700ce
bpo-30406: Make async and await proper keywords ( #1669 )
...
Per PEP 492, 'async' and 'await' should become proper keywords in 3.7.
2017-10-05 23:24:46 -04:00
Oren Milman
7dc46d8cf5
bpo-31592: Fix an assertion failure in Python parser in case of a bad unicodedata.normalize(). ( #3767 )
2017-09-30 20:16:24 +03:00
Barry Warsaw
b2e5794870
bpo-31338 ( #3374 )
...
* Add Py_UNREACHABLE() as an alias to abort().
* Use Py_UNREACHABLE() instead of assert(0)
* Convert more unreachable code to use Py_UNREACHABLE()
* Document Py_UNREACHABLE() and a few other macros.
2017-09-14 18:13:16 -07:00
Łukasz Langa
e7c566caf1
bpo-30465: Fix lineno and col_offset in fstring AST nodes ( #1800 )
...
For f-string ast nodes, fix the line and columns so that tools such as flake8 can identify them correctly.
2017-09-06 17:27:58 -07:00
Stefan Krah
f432a3234f
bpo-30923: Silence fall-through warnings included in -Wextra since gcc-7.0. ( #3157 )
2017-08-21 13:09:59 +02:00
ericvsmith
11e97f2f80
bpo-30682: Removed a too-strict assertion that failed for certain f-strings. ( #2232 )
...
This caused a segfault on eval("f'\\\n'") and eval("f'\\\r'") in debug build.
2017-06-16 13:19:32 +03:00
Serhiy Storchaka
2e9cd5825c
bpo-30529: Fix errors for invalid whitespaces in f-string subexpressions. ( #1888 )
...
'invalid character in identifier' now is raised instead of
'f-string: empty expression not allowed' if a subexpression contains
only whitespaces and they are not accepted by Python parser.
2017-06-08 23:43:54 +03:00
Serhiy Storchaka
0cd7a3f196
bpo-29104: Fixed parsing backslashes in f-strings. ( #490 )
2017-05-25 13:33:55 +03:00
Serhiy Storchaka
fff9a31a91
bpo-29865: Use PyXXX_GET_SIZE macros rather than Py_SIZE for concrete types. ( #748 )
2017-03-21 08:53:25 +02:00
INADA Naoki
cb41b2766d
bpo-29463: Add docstring field to some AST nodes. ( #46 )
...
* bpo-29463: Add docstring field to some AST nodes.
ClassDef, ModuleDef, FunctionDef, and AsyncFunctionDef has docstring
field for now. It was first statement of there body.
* fix document. thanks travis!
* doc fixes
2017-02-22 16:31:59 +01:00
Serhiy Storchaka
5bb8b9134b
Issue #18896 : Python function can now have more than 255 parameters.
...
collections.namedtuple() now supports tuples with more than 255 elements.
2016-12-16 19:19:02 +02:00
Serhiy Storchaka
0f6373c34f
Issue #28739 : f-string expressions no longer accepted as docstrings and
...
by ast.literal_eval() even if they do not include subexpressions.
2016-12-11 19:39:36 +02:00
Serhiy Storchaka
4cc30ae313
Issue #28739 : f-string expressions no longer accepted as docstrings and
...
by ast.literal_eval() even if they do not include subexpressions.
2016-12-11 19:37:19 +02:00
Serhiy Storchaka
214678e44b
Issue #12844 : More than 255 arguments can now be passed to a function.
2016-11-28 10:52:05 +02:00
Serhiy Storchaka
e20973926a
Issue #28715 : Added error checks for PyUnicode_AsUTF8().
2016-11-20 08:48:07 +02:00
Serhiy Storchaka
144f77a981
Issue #28715 : Added error checks for PyUnicode_AsUTF8().
2016-11-20 08:47:21 +02:00
Serhiy Storchaka
3b73ea1278
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:19:20 +02:00
Serhiy Storchaka
f4934ea77d
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Victor Stinner
f9cca365c7
Fix warn_invalid_escape_sequence()
...
Issue #28691 : Fix warn_invalid_escape_sequence(): handle correctly
DeprecationWarning raised as an exception. First clear the current exception to
replace the DeprecationWarning exception with a SyntaxError exception.
Unit test written by Serhiy Storchaka.
2016-11-15 09:12:10 +01:00
Yury Selivanov
1a9d687a49
Issue #26182 : Fix ia refleak in code that raises DeprecationWarning.
2016-11-08 16:54:18 -05:00
Eric V. Smith
9b88fdf4f0
Fixed issue #28633 : segfault when concatenating bytes literal and f-string.
2016-11-07 17:54:01 -05:00
Eric V. Smith
5646648678
Issue 28128: Print out better error/warning messages for invalid string escapes. Backport to 3.6.
2016-10-31 14:46:26 -04:00
Benjamin Peterson
286987bbac
delete dead code
2016-09-18 23:49:51 -07:00
Yury Selivanov
8987c9d219
Issue #26182 : Raise DeprecationWarning for improper use of async/await keywords
2016-09-15 12:50:23 -04:00
Eric V. Smith
09835dcdbb
Make an f-string error message more exact and consistent.
2016-09-11 18:58:20 -04:00
Benjamin Peterson
4ba5c88a3f
just start with an int rather than casting
2016-09-09 19:31:12 -07:00
Eric V. Smith
451d0e38fc
Issue 27948: Allow backslashes in the literal string portion of f-strings, but not in the expressions. Also, require expressions to begin and end with literal curly braces.
2016-09-09 21:56:20 -04:00
Brett Cannon
a721abac29
Issue #26331 : Implement the parsing part of PEP 515.
...
Thanks to Georg Brandl for the patch.
2016-09-09 14:57:09 -07:00
Yury Selivanov
52c4e7cc84
Issue #28008 : Implement PEP 530 -- asynchronous comprehensions.
2016-09-09 10:36:01 -07:00
Yury Selivanov
f8cb8a16a3
Issue #27985 : Implement PEP 526 -- Syntax for Variable Annotations.
...
Patch by Ivan Levkivskyi.
2016-09-08 20:50:03 -07:00
Benjamin Peterson
2f8bfef158
replace PY_SIZE_MAX with SIZE_MAX
2016-09-07 09:26:18 -07:00
Eric V. Smith
6a4efce7a5
Closes issue 27921: Disallow backslashes anywhere in f-strings. This is a temporary restriction. In 3.6 beta 2, the plan is to again allow backslashes in the string parts of f-strings, but disallow them in the expression parts.
2016-09-03 09:18:34 -04:00
Martin Panter
02b75abf73
Merge spelling and grammar fixes from 3.5
2016-08-05 01:51:39 +00:00
Martin Panter
69332c1a64
Fix spelling and grammar in documentation and code comments
2016-08-04 13:07:31 +00:00
Serhiy Storchaka
fbd1523525
Issue #27352 : Correct the validation of the ImportFrom AST node and simplify
...
the implementation of the IMPORT_NAME opcode.
2016-06-27 21:39:12 +03:00
Berker Peksag
094c9c921c
Issue #23275 : Allow () = iterable assignment syntax
...
Documentation updates by Martin Panter.
2016-05-18 08:44:29 +03:00
Benjamin Peterson
9d66d4af06
remove unused c_encoding struct member
2016-02-25 23:25:14 -08:00
Benjamin Peterson
768921cf33
rewrite parsestr() so it's comprehensible; remove dead code
2016-02-25 23:13:53 -08:00
Benjamin Peterson
202803a0c0
c_encoding can never be NULL, which allows some code simplification
2016-02-25 22:34:45 -08:00
Victor Stinner
be59d1489b
Issue #26146 : enhance ast.Constant error message
...
Mention the name of the invalid type in error message of AST validation for
constants.
Suggestion made by Joseph Jevnik on a review.
2016-01-27 00:39:12 +01:00
Victor Stinner
726f6902ce
Fix a refleak in validate_constant()
...
Issue #26146 .
2016-01-27 00:11:47 +01:00
Victor Stinner
f2c1aa1661
Add ast.Constant
...
Issue #26146 : Add a new kind of AST node: ast.Constant. It can be used by
external AST optimizers, but the compiler does not emit directly such node.
An optimizer can replace the following AST nodes with ast.Constant:
* ast.NameConstant: None, False, True
* ast.Num: int, float, complex
* ast.Str: str
* ast.Bytes: bytes
* ast.Tuple if items are constants too: tuple
* frozenset
Update code to accept ast.Constant instead of ast.Num and/or ast.Str:
* compiler
* docstrings
* ast.literal_eval()
* Tools/parser/unparse.py
2016-01-26 00:40:57 +01:00
Georg Brandl
5c60ea3fa1
Fix two instances of wrong indentation.
2016-01-18 07:53:59 +01:00
Serhiy Storchaka
726fc139a5
Issue #20440 : More use of Py_SETREF.
...
This patch is manually crafted and contains changes that couldn't be handled
automatically.
2015-12-27 15:44:33 +02:00
Serhiy Storchaka
2d06e84455
Issue #25923 : Added the const qualifier to static constant arrays.
2015-12-25 19:53:18 +02:00
Victor Stinner
f9827ea618
Issue #25555 : Fix parser and AST: fill lineno and col_offset of "arg" node when
...
compiling AST from Python objects.
2015-11-06 17:01:48 +01:00
Victor Stinner
c106c68aeb
Issue #25555 : Fix parser and AST: fill lineno and col_offset of "arg" node when
...
compiling AST from Python objects.
2015-11-06 17:01:48 +01:00
Martin Panter
c2432f6edb
One more typo in a comment
2015-10-07 11:15:15 +00:00
Benjamin Peterson
00d4442979
merge 3.5 ( #25131 )
2015-09-25 22:44:55 -07:00
Benjamin Peterson
58b53953f8
make opening brace of container literals and comprehensions correspond to the line number and col offset of the AST node ( closes #25131 )
2015-09-25 22:44:43 -07:00
Eric V. Smith
1e5fcc3dea
Fixed error creation if the problem is an empty expression in an f-string: use ast_error instead of PyErr_SetString.
2015-09-24 08:52:04 -04:00
Eric V. Smith
1d44c41b0c
Move f-string compilation of the expression earlier, before the conversion character and format_spec are checked. This allows for error messages that more closely match what a user would expect.
2015-09-23 07:49:00 -04:00
Eric V. Smith
5567f89c6f
Issue #24779 : Remove unused rawmode parameter to unicode_decode.
2015-09-21 13:36:09 -04:00
Eric V. Smith
235a6f0984
Issue #24965 : Implement PEP 498 "Literal String Interpolation". Documentation is still needed, I'll open an issue for that.
2015-09-19 14:51:32 -04:00
Victor Stinner
00723e0353
Fix ast_for_atom()
...
Clear PyObject_Str() exception if it failed, ast_error() should not be called
with an exception set.
2015-09-03 12:57:11 +02:00
Yury Selivanov
1fa3652e59
Merge 3.5 (issue #24975 )
2015-09-02 15:50:04 -04:00
Yury Selivanov
b3d531348c
Issue #24975 : Fix AST compilation for PEP 448 syntax.
2015-09-01 16:10:49 -04:00
Eric V. Smith
163b5c668d
Fix a trivial typo.
2015-08-21 09:40:38 -04:00
Robert Collins
df395991f6
Issue #9232 : Support trailing commas in function declarations.
...
For example, "def f(*, a = 3,): pass" is now legal.
Patch from Mark Dickinson.
2015-08-12 08:00:06 +12:00
Yury Selivanov
14acf5f41d
Issue #24791 : Fix grammar regression for call syntax: 'g(*a or b)'.
2015-08-05 17:54:10 -04:00
Yury Selivanov
7544508f02
PEP 0492 -- Coroutines with async and await syntax. Issue #24017 .
2015-05-11 22:57:16 -04:00
Benjamin Peterson
025e9ebd0a
PEP 448: additional unpacking generalizations ( closes #2292 )
...
Patch by Neil Girdhar.
2015-05-05 20:16:41 -04:00
Victor Stinner
0c39b1b970
Initialize variables to prevent GCC warnings
2015-03-18 15:02:06 +01:00
Benjamin Peterson
f86d1fdab7
merge 3.4 ( #21295 )
2015-02-02 10:52:56 -05:00
Benjamin Peterson
7a66fc22ad
revert lineno and col_offset changes from #16795 ( closes #21295 )
2015-02-02 10:51:20 -05:00
Benjamin Peterson
d51374ed78
PEP 465: a dedicated infix operator for matrix multiplication ( closes #21176 )
2014-04-09 23:55:56 -04:00
Benjamin Peterson
0714b8b6ab
set line and column numbers for keyword-only arg nodes ( closes #20619 )
2014-02-13 19:22:14 -05:00
Benjamin Peterson
e84fde981d
set line and column numbers for keyword-only arg nodes ( closes #20619 )
2014-02-13 19:22:14 -05:00
Serhiy Storchaka
c679227e31
Issue #1772673 : The type of `char*` arguments now changed to `const char*`.
2013-10-19 21:03:34 +03:00
Antoine Pitrou
d01d396e7f
Issue #4555 : All exported C symbols are now prefixed with either "Py" or "_Py".
...
("make smelly" now clean)
2013-10-12 22:52:43 +02:00
Victor Stinner
14e461d5b9
Close #11619 : The parser and the import machinery do not encode Unicode
...
filenames anymore on Windows.
2013-08-26 22:28:21 +02:00
Christian Heimes
6f08d30afe
Fix potential NULL pointer dereferencing in ast module
...
CID 719690
2013-07-24 21:02:50 +02:00
Christian Heimes
72f562f719
Fix potential NULL pointer dereferencing in ast module
...
CID 719690
2013-07-24 21:02:17 +02:00
Victor Stinner
0fae8f9083
Issue #18408 : Fix ast_for_atom(), PyErr_Fetch(&type, &value, &tback) can set value to NULL
2013-07-17 21:51:42 +02:00
Victor Stinner
43d8195a70
Issue #18408 : Handle PyArena_AddPyObject() failure in ast.c
...
PyList_Append() (called by PyArena_AddPyObject()) can fail because of a
MemoryError for example.
2013-07-17 00:57:58 +02:00
Benjamin Peterson
aad1d87339
move declaration to top of block
2013-03-18 10:59:41 -07:00
Benjamin Peterson
cda75be02a
unify some ast.argument's attrs; change Attribute column offset ( closes #16795 )
...
Patch from Sven Brauch.
2013-03-18 10:48:58 -07:00
Serhiy Storchaka
b8cbba5877
Issue #12983 : Bytes literals with invalid \x escape now raise a SyntaxError
...
and a full traceback including line number.
2013-02-10 17:43:25 +02:00
Serhiy Storchaka
801d955f04
Issue #12983 : Bytes literals with invalid \x escape now raise a SyntaxError
...
and a full traceback including line number.
2013-02-10 17:42:01 +02:00
Serhiy Storchaka
5e61f14c6d
Issue #12983 : Bytes literals with invalid \x escape now raise a SyntaxError
...
and a full traceback including line number.
2013-02-10 17:36:00 +02:00