This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author bikrammehra97
Recipients bikrammehra97, eric.smith, lys.nikolaou, pablogsal
Date 2021-05-20.11:47:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1621511263.06.0.553488484676.issue44177@roundup.psfhosted.org>
In-reply-to
Content
Hi Eric,

I have tried the action plan suggested by you in your last comment, but below are my logs and still I am unable to get lineno for else statement.


----The respective line no for each line are below ----


1 
2 if num > 0:
3     print("Positive number")
4 elif num == 0:
5     print("Zero")
6 else:
7     print("Negative number")



>The re-formatted dump is as below and doesn't have lineno for else statement

Module(body=[If(test=Compare(left=Name(id='num', ctx=Load(), lineno=2, col_offset=3, end_lineno=2, end_col_offset=6), 
							 ops=[Gt()], comparators=[Constant(value=0, kind=None, lineno=2, col_offset=9, end_lineno=2, end_col_offset=10)], lineno=2, col_offset=3, end_lineno=2, end_col_offset=10), 
				 body=[Expr(value=Call(func=Name(id='print', ctx=Load(), lineno=3, col_offset=4, end_lineno=3, end_col_offset=9), 							args=[Constant(value='Positive number', kind=None, lineno=3, col_offset=10, end_lineno=3, 
				 						end_col_offset=27)], 
				 						keywords=[], lineno=3, col_offset=4, end_lineno=3, end_col_offset=28), 
	 						lineno=3, col_offset=4, end_lineno=3, end_col_offset=28)], 
				orelse=[If(test=Compare(left=Name(id='num', ctx=Load(), lineno=4, col_offset=5, end_lineno=4, end_col_offset=8),
										 ops=[Eq()], 
										 comparators=[Constant(value=0, kind=None, lineno=4, col_offset=12, end_lineno=4, 
										 end_col_offset=13)], lineno=4, col_offset=5, end_lineno=4, end_col_offset=13), 
				 		body=[Expr(value=Call(func=Name(id='print', ctx=Load(), lineno=5, col_offset=4, end_lineno=5, end_col_offset=9), 
										 		args=[Constant(value='Zero', kind=None, lineno=5, col_offset=10, end_lineno=5, 
										 		end_col_offset=16)], 
										 		keywords=[], lineno=5, col_offset=4, end_lineno=5, end_col_offset=17), lineno=5, col_offset=4, end_lineno=5, end_col_offset=17)], 
			 			orelse=[Expr(value=Call(func=Name(id='print', ctx=Load(), lineno=7, col_offset=4, end_lineno=7, end_col_offset=9), 
			 									args=[Constant(value='Negative number', kind=None, lineno=7, col_offset=10, end_lineno=7, end_col_offset=27)], 
			 									keywords=[], lineno=7, col_offset=4, end_lineno=7, end_col_offset=28), 
			 									lineno=7, col_offset=4, end_lineno=7, end_col_offset=28)], lineno=4, col_offset=0, end_lineno=7,
			 									end_col_offset=28)], 
						lineno=2, col_offset=0, end_lineno=7, end_col_offset=28)], type_ignores=[])




> If we use tree to get the lineno then its giving as below 
tree.body[0].orelse[0].orelse[0].lineno
7



Here the lineno 7 denotes to the body of else statement not the else lineno.


Could you please help me out where you can show the respective line no of else statement i.e. 6 in above example.

Thanks and Best Regards,
Bikram
History
Date User Action Args
2021-05-20 11:47:43bikrammehra97setrecipients: + bikrammehra97, eric.smith, lys.nikolaou, pablogsal
2021-05-20 11:47:43bikrammehra97setmessageid: <1621511263.06.0.553488484676.issue44177@roundup.psfhosted.org>
2021-05-20 11:47:43bikrammehra97linkissue44177 messages
2021-05-20 11:47:42bikrammehra97create