Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bpo-42128: Add 'missing :' syntax error message to match statements#24733

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
pablogsal merged 2 commits intopython:masterfrompablogsal:match-colon
Mar 18, 2021

Conversation

pablogsal
Copy link
Member

@pablogsalpablogsal commentedMar 3, 2021
edited by bedevere-bot
Loading

Copy link
Member

@gvanrossumgvanrossum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Is this safe? Whilematch x is invalid,match (x) should be a function call.

@pablogsal
Copy link
MemberAuthor

Is this safe? Whilematch x is invalid,match (x) should be a function call.

Hummmm, that's a good point. ifmatch(x) is by itself this will probably fail. Let me think how can we workaround that

@pablogsal
Copy link
MemberAuthor

I will add also a test for that case

@pablogsal
Copy link
MemberAuthor

Fixed in the last ammend

@brandtbucher
Copy link
Member

brandtbucher commentedMar 3, 2021
edited
Loading

For my own understanding... does double-ampersand raise aSyntaxError at that token's location suggesting it if it doesn't exist? That's really nice.

@pablogsal
Copy link
MemberAuthor

For my own understanding... does double-ampersand raise aSyntaxError at that token's location suggesting it if it doesn't exist? That's really nice.

Yeah, is a "forced token" operator. Notice that it also hard-stops the parsing: no other alternative will be considered.

Copy link
Member

@gvanrossumgvanrossum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I don't understand why e.g.match(1) doesn't reachinvalid_match_stmt, so I'm still concerned.

@pablogsal
Copy link
MemberAuthor

pablogsal commentedMar 4, 2021
edited
Loading

I don't understand why e.g.match(1) doesn't reachinvalid_match_stmt, so I'm still concerned.

Theinvalid_* rules are now only checked in a second pass of the parser if the first one fails. This was done mainly for speed, but allows to introduce these kind of error messages with early failures.

Copy link
Member

@gvanrossumgvanrossum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Ehh! I totally forgot about that!

@brandtbucher
Copy link
Member

brandtbucher commentedMar 4, 2021
edited
Loading

Doesinvalid_match still need to be guarded withCHECK_VERSION?

@pablogsal
Copy link
MemberAuthor

Doesinvalid_match still need to be guarded withCHECK_VERSION?

Not really because is a syntax error, but it certainly won't hurt.

Copy link
Member

@brandtbucherbrandtbucher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Thanks!

@pablogsalpablogsal merged commit08fb8ac intopython:masterMar 18, 2021
@pablogsalpablogsal deleted the match-colon branchMarch 18, 2021 01:03
jab added a commit to jab/cpython that referenced this pull requestMar 20, 2021
* master: (129 commits)  bpo-43452: Micro-optimizations to PyType_Lookup (pythonGH-24804)  bpo-43517: Fix false positive in detection of circular imports (python#24895)  bpo-43494: Make some minor changes to lnotab notes (pythonGH-24861)  Mention that code.co_lnotab is deprecated in what's new for 3.10. (python#24902)  bpo-43244: Remove symtable.h header file (pythonGH-24910)  bpo-43466: Add --with-openssl-rpath configure option (pythonGH-24820)  Fix a typo in c-analyzer (pythonGH-24468)  bpo-41561: Add workaround for Ubuntu's custom security level (pythonGH-24915)  bpo-43521: Allow ast.unparse with empty sets and NaN (pythonGH-24897)  bpo-43244: Remove the PyAST_Validate() function (pythonGH-24911)  bpo-43541: Fix PyEval_EvalCodeEx() regression (pythonGH-24918)  bpo-43244: Fix test_peg_generators on Windows (pythonGH-24913)  bpo-39342: Expose X509_V_FLAG_ALLOW_PROXY_CERTS in ssl module (pythonGH-18011)  bpo-43244: Fix test_peg_generator for PyAST_Validate() (pythonGH-24912)  bpo-42128: Add 'missing :' syntax error message to match statements (pythonGH-24733)  bpo-43244: Add pycore_ast.h header file (pythonGH-24908)  bpo-43244: Rename pycore_ast.h to pycore_ast_state.h (pythonGH-24907)  Remove unnecessary imports in the grammar parser (pythonGH-24904)  bpo-35883: Py_DecodeLocale() escapes invalid Unicode characters (pythonGH-24843)  Add PEP 626 to what's new in 3.10. (python#24892)  ...
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@gvanrossumgvanrossumgvanrossum approved these changes

@brandtbucherbrandtbucherbrandtbucher approved these changes

@lysnikolaoulysnikolaouAwaiting requested review from lysnikolaou

Assignees
No one assigned
Labels
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

5 participants
@pablogsal@brandtbucher@gvanrossum@the-knights-who-say-ni@bedevere-bot

[8]ページ先頭

©2009-2025 Movatter.jp