@@ -19,6 +19,7 @@ use crate::obj::objbytes;
1919use crate :: obj:: objcode;
2020use crate :: obj:: objcomplex:: { self , PyComplex } ;
2121use crate :: obj:: objdict;
22+ use crate :: obj:: objellipsis;
2223use crate :: obj:: objenumerate;
2324use crate :: obj:: objfilter;
2425use crate :: obj:: objfloat:: { self , PyFloat } ;
@@ -115,6 +116,7 @@ pub struct PyContext {
115116 pub classmethod_type : PyObjectRef ,
116117 pub code_type : PyObjectRef ,
117118 pub dict_type : PyObjectRef ,
119+ pub ellipsis_type : PyObjectRef ,
118120 pub enumerate_type : PyObjectRef ,
119121 pub filter_type : PyObjectRef ,
120122 pub float_type : PyObjectRef ,
@@ -208,6 +210,7 @@ impl PyContext {
208210 let bytearray_type = create_type ( "bytearray" , & type_type, & object_type, & dict_type) ;
209211 let tuple_type = create_type ( "tuple" , & type_type, & object_type, & dict_type) ;
210212 let iter_type = create_type ( "iter" , & type_type, & object_type, & dict_type) ;
213+ let ellipsis_type = create_type ( "EllipsisType" , & type_type, & object_type, & dict_type) ;
211214 let enumerate_type = create_type ( "enumerate" , & type_type, & object_type, & dict_type) ;
212215 let filter_type = create_type ( "filter" , & type_type, & object_type, & dict_type) ;
213216 let map_type = create_type ( "map" , & type_type, & object_type, & dict_type) ;
@@ -224,11 +227,7 @@ impl PyContext {
224227 create_type ( "NoneType" , & type_type, & object_type, & dict_type) ,
225228 ) ;
226229
227- // TODO: implement proper ellipsis class?
228- let ellipsis = PyObject :: new (
229- PyObjectPayload :: None ,
230- create_type ( "EllipsisType" , & type_type, & object_type, & dict_type) ,
231- ) ;
230+ let ellipsis = PyObject :: new ( PyObjectPayload :: None , ellipsis_type. clone ( ) ) ;
232231
233232 let not_implemented = PyObject :: new (
234233 PyObjectPayload :: NotImplemented ,
@@ -264,6 +263,7 @@ impl PyContext {
264263 false_value,
265264 tuple_type,
266265 iter_type,
266+ ellipsis_type,
267267 enumerate_type,
268268 filter_type,
269269 map_type,
@@ -308,6 +308,7 @@ impl PyContext {
308308 objsuper:: init ( & context) ;
309309 objtuple:: init ( & context) ;
310310 objiter:: init ( & context) ;
311+ objellipsis:: init ( & context) ;
311312 objenumerate:: init ( & context) ;
312313 objfilter:: init ( & context) ;
313314 objmap:: init ( & context) ;
0 commit comments