@@ -5,18 +5,23 @@ use std::iter;
5
5
use std:: ops:: RangeInclusive ;
6
6
use std:: rc:: { Rc , Weak } ;
7
7
8
+ use num_bigint:: BigInt ;
9
+ use num_bigint:: ToBigInt ;
10
+ use num_complex:: Complex64 ;
11
+ use num_traits:: { One , Zero } ;
12
+
8
13
use crate :: bytecode;
9
14
use crate :: exceptions;
10
15
use crate :: frame:: { Frame , Scope , ScopeRef } ;
11
16
use crate :: obj:: objbool;
12
17
use crate :: obj:: objbytearray;
13
18
use crate :: obj:: objbytes;
14
19
use crate :: obj:: objcode;
15
- use crate :: obj:: objcomplex;
20
+ use crate :: obj:: objcomplex:: { self , PyComplex } ;
16
21
use crate :: obj:: objdict;
17
22
use crate :: obj:: objenumerate;
18
23
use crate :: obj:: objfilter;
19
- use crate :: obj:: objfloat;
24
+ use crate :: obj:: objfloat:: { self , PyFloat } ;
20
25
use crate :: obj:: objframe;
21
26
use crate :: obj:: objfunction;
22
27
use crate :: obj:: objgenerator;
@@ -37,10 +42,6 @@ use crate::obj::objtuple;
37
42
use crate :: obj:: objtype;
38
43
use crate :: obj:: objzip;
39
44
use crate :: vm:: VirtualMachine ;
40
- use num_bigint:: BigInt ;
41
- use num_bigint:: ToBigInt ;
42
- use num_complex:: Complex64 ;
43
- use num_traits:: { One , Zero } ;
44
45
45
46
/* Python objects and references.
46
47
@@ -463,14 +464,19 @@ impl PyContext {
463
464
pub fn new_float ( & self , value : f64 ) -> PyObjectRef {
464
465
PyObject :: new (
465
466
PyObjectPayload :: AnyRustValue {
466
- value : Box :: new ( objfloat :: PyFloat :: from ( value) ) ,
467
+ value : Box :: new ( PyFloat :: from ( value) ) ,
467
468
} ,
468
469
self . float_type ( ) ,
469
470
)
470
471
}
471
472
472
- pub fn new_complex ( & self , i : Complex64 ) -> PyObjectRef {
473
- PyObject :: new ( PyObjectPayload :: Complex { value : i } , self . complex_type ( ) )
473
+ pub fn new_complex ( & self , value : Complex64 ) -> PyObjectRef {
474
+ PyObject :: new (
475
+ PyObjectPayload :: AnyRustValue {
476
+ value : Box :: new ( PyComplex :: from ( value) ) ,
477
+ } ,
478
+ self . complex_type ( ) ,
479
+ )
474
480
}
475
481
476
482
pub fn new_str ( & self , s : String ) -> PyObjectRef {
@@ -1408,9 +1414,6 @@ pub enum PyObjectPayload {
1408
1414
Integer {
1409
1415
value : BigInt ,
1410
1416
} ,
1411
- Complex {
1412
- value : Complex64 ,
1413
- } ,
1414
1417
Sequence {
1415
1418
elements : RefCell < Vec < PyObjectRef > > ,
1416
1419
} ,
@@ -1494,7 +1497,6 @@ impl fmt::Debug for PyObjectPayload {
1494
1497
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
1495
1498
match self {
1496
1499
PyObjectPayload :: Integer { ref value } => write ! ( f, "int {}" , value) ,
1497
- PyObjectPayload :: Complex { ref value } => write ! ( f, "complex {}" , value) ,
1498
1500
PyObjectPayload :: MemoryView { ref obj } => write ! ( f, "bytes/bytearray {:?}" , obj) ,
1499
1501
PyObjectPayload :: Sequence { .. } => write ! ( f, "list or tuple" ) ,
1500
1502
PyObjectPayload :: Dict { .. } => write ! ( f, "dict" ) ,
0 commit comments