mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	set line and column numbers for keyword-only arg nodes (closes #20619)
This commit is contained in:
		
							parent
							
								
									15054c16c8
								
							
						
					
					
						commit
						0714b8b6ab
					
				
					 3 changed files with 7 additions and 2 deletions
				
			
		|  | @ -37,7 +37,7 @@ def to_tuple(t): | |||
|     # FunctionDef with kwargs | ||||
|     "def f(**kwargs): pass", | ||||
|     # FunctionDef with all kind of args | ||||
|     "def f(a, b=1, c=None, d=[], e={}, *args, **kwargs): pass", | ||||
|     "def f(a, b=1, c=None, d=[], e={}, *args, f=42, **kwargs): pass", | ||||
|     # ClassDef | ||||
|     "class C:pass", | ||||
|     # ClassDef, new style class | ||||
|  | @ -973,7 +973,7 @@ def main(): | |||
| ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None)], None, [], [], None, [('Num', (1, 8), 0)]), [('Pass', (1, 12))], [], None)]), | ||||
| ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], ('arg', (1, 7), 'args', None), [], [], None, []), [('Pass', (1, 14))], [], None)]), | ||||
| ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], ('arg', (1, 8), 'kwargs', None), []), [('Pass', (1, 17))], [], None)]), | ||||
| ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None), ('arg', (1, 9), 'b', None), ('arg', (1, 14), 'c', None), ('arg', (1, 22), 'd', None), ('arg', (1, 28), 'e', None)], ('arg', (1, 35), 'args', None), [], [], ('arg', (1, 43), 'kwargs', None), [('Num', (1, 11), 1), ('NameConstant', (1, 16), None), ('List', (1, 24), [], ('Load',)), ('Dict', (1, 30), [], [])]), [('Pass', (1, 52))], [], None)]), | ||||
|     ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None), ('arg', (1, 9), 'b', None), ('arg', (1, 14), 'c', None), ('arg', (1, 22), 'd', None), ('arg', (1, 28), 'e', None)], ('arg', (1, 35), 'args', None), [('arg', (1, 41), 'f', None)], [('Num', (1, 43), 42)], ('arg', (1, 49), 'kwargs', None), [('Num', (1, 11), 1), ('NameConstant', (1, 16), None), ('List', (1, 24), [], ('Load',)), ('Dict', (1, 30), [], [])]), [('Pass', (1, 58))], [], None)]), | ||||
| ('Module', [('ClassDef', (1, 0), 'C', [], [], None, None, [('Pass', (1, 8))], [])]), | ||||
| ('Module', [('ClassDef', (1, 0), 'C', [('Name', (1, 8), 'object', ('Load',))], [], None, None, [('Pass', (1, 17))], [])]), | ||||
| ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], None, []), [('Return', (1, 8), ('Num', (1, 15), 1))], [], None)]), | ||||
|  |  | |||
|  | @ -10,6 +10,9 @@ Release date: 2014-02-23 | |||
| Core and Builtins | ||||
| ----------------- | ||||
| 
 | ||||
| - Issue #20619: Give the AST nodes of keyword-only arguments a column and line | ||||
|   number. | ||||
| 
 | ||||
| - Issue #20526: Revert changes of issue #19466 which introduces a regression: | ||||
|   don't clear anymore the state of Python threads early during the Python | ||||
|   shutdown. | ||||
|  |  | |||
|  | @ -1203,6 +1203,8 @@ handle_keywordonly_args(struct compiling *c, const node *n, int start, | |||
|                 arg = arg(argname, annotation, c->c_arena); | ||||
|                 if (!arg) | ||||
|                     goto error; | ||||
|                 arg->lineno = LINENO(ch); | ||||
|                 arg->col_offset = ch->n_col_offset; | ||||
|                 asdl_seq_SET(kwonlyargs, j++, arg); | ||||
|                 i += 2; /* the name and the comma */ | ||||
|                 break; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Peterson
						Benjamin Peterson