1
0
mirror of https://github.com/php/php-src.git synced 2026-04-14 03:22:58 +02:00

Mark "top-level" classes

This commit is contained in:
Dmitry Stogov
2018-10-17 16:12:46 +03:00
parent d57cd36e47
commit 9226695c22
2 changed files with 8 additions and 1 deletions

View File

@@ -6322,6 +6322,10 @@ void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */
CG(active_class_entry) = original_ce;
if (toplevel) {
ce->ce_flags |= ZEND_ACC_TOP_LEVEL;
}
if (toplevel
/* We currently don't early-bind classes that implement interfaces or use traits */
&& !(ce->ce_flags & (ZEND_ACC_IMPLEMENT_INTERFACES|ZEND_ACC_IMPLEMENT_TRAITS))) {

View File

@@ -223,7 +223,7 @@ typedef struct _zend_oparray_context {
/* Function has typed arguments / class has typed props | | | */
#define ZEND_ACC_HAS_TYPE_HINTS (1 << 8) /* ? | X | | */
/* | | | */
/* Class Flags (unused: 15...) | | | */
/* Class Flags (unused: 16...) | | | */
/* =========== | | | */
/* | | | */
/* Special class types | | | */
@@ -257,6 +257,9 @@ typedef struct _zend_oparray_context {
/* User class has methods with static variables | | | */
#define ZEND_HAS_STATIC_IN_METHODS (1 << 14) /* X | | | */
/* | | | */
/* Top-level class declaration | | | */
#define ZEND_ACC_TOP_LEVEL (1 << 15) /* X | | | */
/* | | | */
/* Function Flags (unused: 25...30) | | | */
/* ============== | | | */
/* | | | */