-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve Python 2 only syntax detection (GH-2592)
* Improve Python 2 only syntax detection First of all this fixes a mistake I made in Python 2 deprecation PR using token.* to check for print/exec statements. Turns out that for nodes with a type value higher than 256 its numeric type isn't guaranteed to be constant. Using syms.* instead fixes this. Also add support for the following cases: print "hello, world!" exec "print('hello, world!')" def set_position((x, y), value): pass try: pass except Exception, err: pass raise RuntimeError, "I feel like crashing today :p" `wow_these_really_did_exist` 10L * Add octal support, more test cases, and fixup long ints Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
- Loading branch information
1 parent
5a69ccc
commit 5cd3afe
Showing
6 changed files
with
157 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# This uses a similar construction to the decorators.py test data file FYI. | ||
|
||
print "hello, world!" | ||
|
||
### | ||
|
||
exec "print('hello, world!')" | ||
|
||
### | ||
|
||
def set_position((x, y), value): | ||
pass | ||
|
||
### | ||
|
||
try: | ||
pass | ||
except Exception, err: | ||
pass | ||
|
||
### | ||
|
||
raise RuntimeError, "I feel like crashing today :p" | ||
|
||
### | ||
|
||
`wow_these_really_did_exist` | ||
|
||
### | ||
|
||
10L | ||
|
||
### | ||
|
||
10l | ||
|
||
### | ||
|
||
0123 | ||
|
||
# output | ||
|
||
print("hello python three!") | ||
|
||
### | ||
|
||
exec("I'm not sure if you can use exec like this but that's not important here!") | ||
|
||
### | ||
|
||
try: | ||
pass | ||
except make_exception(1, 2): | ||
pass | ||
|
||
### | ||
|
||
try: | ||
pass | ||
except Exception as err: | ||
pass | ||
|
||
### | ||
|
||
raise RuntimeError(make_msg(1, 2)) | ||
|
||
### | ||
|
||
raise RuntimeError("boom!",) | ||
|
||
### | ||
|
||
def set_position(x, y, value): | ||
pass | ||
|
||
### | ||
|
||
10 | ||
|
||
### | ||
|
||
0 | ||
|
||
### | ||
|
||
000 | ||
|
||
### | ||
|
||
0o12 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters