mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-31 03:55:09 +00:00 
			
		
		
		
	 d45593288f
			
		
	
	
		d45593288f
		
			
		
	
	
	
	
		
			
			Summary -- Fixes https://github.com/astral-sh/ruff/issues/16520 by flagging single, starred expressions in `return`, `yield`, and `for` statements. I thought `yield from` would also be included here, but that error is emitted by the CPython parser: ```pycon >>> ast.parse("def f(): yield from *x") Traceback (most recent call last): File "<python-input-214>", line 1, in <module> ast.parse("def f(): yield from *x") ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/ast.py", line 54, in parse return compile(source, filename, mode, flags, _feature_version=feature_version, optimize=optimize) File "<unknown>", line 1 def f(): yield from *x ^ SyntaxError: invalid syntax ``` And we also already catch it in our parser. Test Plan -- New inline tests and updates to existing tests.
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			523 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			523 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| for target in iter:
 | |
|     pass
 | |
| 
 | |
| for target in (1, 2, 3):
 | |
|     pass
 | |
| 
 | |
| for target.attr in call():
 | |
|     pass
 | |
| 
 | |
| for target[0] in x.attr:
 | |
|     pass
 | |
| 
 | |
| for target in x <= y:
 | |
|     pass
 | |
| 
 | |
| for target in a and b:
 | |
|     pass
 | |
| 
 | |
| for a, b, c, in iter:
 | |
|     pass
 | |
| 
 | |
| for (a, b) in iter:
 | |
|     pass
 | |
| 
 | |
| for target in [1, 2]:
 | |
|     pass
 | |
| 
 | |
| for target in await x: ...
 | |
| for target in lambda x: x: ...
 | |
| for target in x if True else y: ...
 | |
| 
 | |
| if x:
 | |
|     for target in iter:
 | |
|         pass
 | |
| # This `else` is not part of the `try` statement, so don't raise an error
 | |
| else:
 | |
|     pass
 |