mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	create NameConstant AST class for None, True, and False literals (closes #16619)
This commit is contained in:
		
							parent
							
								
									4b237e3b11
								
							
						
					
					
						commit
						442f20996d
					
				
					 15 changed files with 152 additions and 72 deletions
				
			
		|  | @ -3194,12 +3194,18 @@ expr_constant(struct compiler *c, expr_ty e) | |||
|     case Name_kind: | ||||
|         /* optimize away names that can't be reassigned */ | ||||
|         id = PyUnicode_AsUTF8(e->v.Name.id); | ||||
|         if (strcmp(id, "True") == 0) return 1; | ||||
|         if (strcmp(id, "False") == 0) return 0; | ||||
|         if (strcmp(id, "None") == 0) return 0; | ||||
|         if (strcmp(id, "__debug__") == 0) | ||||
|             return ! c->c_optimize; | ||||
|         /* fall through */ | ||||
|         if (id && strcmp(id, "__debug__") == 0) | ||||
|             return !c->c_optimize; | ||||
|         return -1; | ||||
|     case NameConstant_kind: { | ||||
|         PyObject *o = e->v.NameConstant.value; | ||||
|         if (o == Py_None) | ||||
|             return 0; | ||||
|         else if (o == Py_True) | ||||
|             return 1; | ||||
|         else if (o == Py_False) | ||||
|             return 0; | ||||
|     } | ||||
|     default: | ||||
|         return -1; | ||||
|     } | ||||
|  | @ -3375,6 +3381,9 @@ compiler_visit_expr(struct compiler *c, expr_ty e) | |||
|     case Ellipsis_kind: | ||||
|         ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts); | ||||
|         break; | ||||
|     case NameConstant_kind: | ||||
|         ADDOP_O(c, LOAD_CONST, e->v.NameConstant.value, consts); | ||||
|         break; | ||||
|     /* The following exprs can be assignment targets. */ | ||||
|     case Attribute_kind: | ||||
|         if (e->v.Attribute.ctx != AugStore) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Peterson
						Benjamin Peterson