@@ -8,14 +8,14 @@ use crate::ffi::{
8
8
CONST_CS , CONST_DEPRECATED , CONST_NO_FILE_CACHE , CONST_PERSISTENT , E_COMPILE_ERROR ,
9
9
E_COMPILE_WARNING , E_CORE_ERROR , E_CORE_WARNING , E_DEPRECATED , E_ERROR , E_NOTICE , E_PARSE ,
10
10
E_RECOVERABLE_ERROR , E_STRICT , E_USER_DEPRECATED , E_USER_ERROR , E_USER_NOTICE , E_USER_WARNING ,
11
- E_WARNING , IS_ARRAY , IS_CALLABLE , IS_CONSTANT_AST , IS_DOUBLE , IS_FALSE , IS_LONG , IS_MIXED ,
12
- IS_NULL , IS_OBJECT , IS_PTR , IS_REFERENCE , IS_RESOURCE , IS_STRING , IS_TRUE , IS_TYPE_COLLECTABLE ,
13
- IS_TYPE_REFCOUNTED , IS_UNDEF , IS_VOID , PHP_INI_ALL , PHP_INI_PERDIR , PHP_INI_SYSTEM ,
14
- PHP_INI_USER , ZEND_ACC_ABSTRACT , ZEND_ACC_ANON_CLASS , ZEND_ACC_CALL_VIA_TRAMPOLINE ,
15
- ZEND_ACC_CHANGED , ZEND_ACC_CLOSURE , ZEND_ACC_CONSTANTS_UPDATED , ZEND_ACC_CTOR ,
16
- ZEND_ACC_DEPRECATED , ZEND_ACC_DONE_PASS_TWO , ZEND_ACC_EARLY_BINDING , ZEND_ACC_FAKE_CLOSURE ,
17
- ZEND_ACC_FINAL , ZEND_ACC_GENERATOR , ZEND_ACC_HAS_FINALLY_BLOCK , ZEND_ACC_HAS_RETURN_TYPE ,
18
- ZEND_ACC_HAS_TYPE_HINTS , ZEND_ACC_HEAP_RT_CACHE , ZEND_ACC_IMMUTABLE ,
11
+ E_WARNING , IS_ARRAY , IS_CALLABLE , IS_CONSTANT_AST , IS_DOUBLE , IS_FALSE , IS_INDIRECT , IS_LONG ,
12
+ IS_MIXED , IS_NULL , IS_OBJECT , IS_PTR , IS_REFERENCE , IS_RESOURCE , IS_STRING , IS_TRUE ,
13
+ IS_TYPE_COLLECTABLE , IS_TYPE_REFCOUNTED , IS_UNDEF , IS_VOID , PHP_INI_ALL , PHP_INI_PERDIR ,
14
+ PHP_INI_SYSTEM , PHP_INI_USER , ZEND_ACC_ABSTRACT , ZEND_ACC_ANON_CLASS ,
15
+ ZEND_ACC_CALL_VIA_TRAMPOLINE , ZEND_ACC_CHANGED , ZEND_ACC_CLOSURE , ZEND_ACC_CONSTANTS_UPDATED ,
16
+ ZEND_ACC_CTOR , ZEND_ACC_DEPRECATED , ZEND_ACC_DONE_PASS_TWO , ZEND_ACC_EARLY_BINDING ,
17
+ ZEND_ACC_FAKE_CLOSURE , ZEND_ACC_FINAL , ZEND_ACC_GENERATOR , ZEND_ACC_HAS_FINALLY_BLOCK ,
18
+ ZEND_ACC_HAS_RETURN_TYPE , ZEND_ACC_HAS_TYPE_HINTS , ZEND_ACC_HEAP_RT_CACHE , ZEND_ACC_IMMUTABLE ,
19
19
ZEND_ACC_IMPLICIT_ABSTRACT_CLASS , ZEND_ACC_INTERFACE , ZEND_ACC_LINKED , ZEND_ACC_NEARLY_LINKED ,
20
20
ZEND_ACC_NEVER_CACHE , ZEND_ACC_NO_DYNAMIC_PROPERTIES , ZEND_ACC_PRELOADED , ZEND_ACC_PRIVATE ,
21
21
ZEND_ACC_PROMOTED , ZEND_ACC_PROTECTED , ZEND_ACC_PUBLIC , ZEND_ACC_RESOLVED_INTERFACES ,
@@ -246,6 +246,7 @@ pub enum DataType {
246
246
Mixed ,
247
247
Bool ,
248
248
Ptr ,
249
+ Indirect ,
249
250
}
250
251
251
252
impl Default for DataType {
@@ -269,6 +270,7 @@ impl DataType {
269
270
DataType :: Object ( _) => IS_OBJECT ,
270
271
DataType :: Resource => IS_RESOURCE ,
271
272
DataType :: Reference => IS_RESOURCE ,
273
+ DataType :: Indirect => IS_INDIRECT ,
272
274
DataType :: Callable => IS_CALLABLE ,
273
275
DataType :: ConstantExpression => IS_CONSTANT_AST ,
274
276
DataType :: Void => IS_VOID ,
@@ -337,6 +339,7 @@ impl From<u32> for DataType {
337
339
338
340
contains ! ( IS_VOID , Void ) ;
339
341
contains ! ( IS_PTR , Ptr ) ;
342
+ contains ! ( IS_INDIRECT , Indirect ) ;
340
343
contains ! ( IS_CALLABLE , Callable ) ;
341
344
contains ! ( IS_CONSTANT_AST , ConstantExpression ) ;
342
345
contains ! ( IS_REFERENCE , Reference ) ;
@@ -379,6 +382,7 @@ impl Display for DataType {
379
382
DataType :: Bool => write ! ( f, "Bool" ) ,
380
383
DataType :: Mixed => write ! ( f, "Mixed" ) ,
381
384
DataType :: Ptr => write ! ( f, "Pointer" ) ,
385
+ DataType :: Indirect => write ! ( f, "Indirect" ) ,
382
386
}
383
387
}
384
388
}
@@ -388,9 +392,9 @@ mod tests {
388
392
use super :: DataType ;
389
393
use crate :: ffi:: {
390
394
IS_ARRAY , IS_ARRAY_EX , IS_CALLABLE , IS_CONSTANT_AST , IS_CONSTANT_AST_EX , IS_DOUBLE ,
391
- IS_FALSE , IS_INTERNED_STRING_EX , IS_LONG , IS_NULL , IS_OBJECT , IS_OBJECT_EX , IS_PTR ,
392
- IS_REFERENCE , IS_REFERENCE_EX , IS_RESOURCE , IS_RESOURCE_EX , IS_STRING , IS_STRING_EX ,
393
- IS_TRUE , IS_UNDEF , IS_VOID ,
395
+ IS_FALSE , IS_INDIRECT , IS_INTERNED_STRING_EX , IS_LONG , IS_NULL , IS_OBJECT , IS_OBJECT_EX ,
396
+ IS_PTR , IS_REFERENCE , IS_REFERENCE_EX , IS_RESOURCE , IS_RESOURCE_EX , IS_STRING ,
397
+ IS_STRING_EX , IS_TRUE , IS_UNDEF , IS_VOID ,
394
398
} ;
395
399
use std:: convert:: TryFrom ;
396
400
@@ -414,7 +418,7 @@ mod tests {
414
418
test ! ( IS_RESOURCE , Resource ) ;
415
419
test ! ( IS_REFERENCE , Reference ) ;
416
420
test ! ( IS_CONSTANT_AST , ConstantExpression ) ;
417
- test ! ( IS_CALLABLE , Callable ) ;
421
+ test ! ( IS_INDIRECT , Indirect ) ;
418
422
test ! ( IS_VOID , Void ) ;
419
423
test ! ( IS_PTR , Ptr ) ;
420
424
0 commit comments