diff --git a/src/language.yacc b/src/language.yacc index 36ac89761d26d3eae5f64d46166b9ae6f00a44f2..3e203f740131c7ae2135e42f66ac1d3706ca91b6 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -3933,7 +3933,7 @@ inherit_specifier: string_or_identifier TOK_COLON_COLON if (e == -1) { inherit_state = state; inherit_depth = depth; - if ($1->u.sval.u.string == this_program_string) { + if ($1->u.sval.u.string == this_program_string || $1->u.sval.u.string == this_string) { inherit_state = Pike_compiler; inherit_depth = 0; e = 0; diff --git a/src/program.c b/src/program.c index 96bff847e91768055acb263c6aea66ae34253945..b024243f6ad0bd8b5febcb14e8da84a89fde0123 100644 --- a/src/program.c +++ b/src/program.c @@ -156,8 +156,8 @@ static const int lock_depth = 1; #define DECLARE #include "compilation.h" -struct pike_string *this_program_string; -static struct pike_string *this_string, *this_function_string; +struct pike_string *this_program_string, *this_string; +static struct pike_string *this_function_string; static struct pike_string *UNDEFINED_string; /* Common compiler subsystems */ diff --git a/src/program.h b/src/program.h index 65cba84b4afd75a5d589e94e49d4b4bdcdd0ca65..5a3d6d6d13b5358fc3ff5dd6f35c3e02f8923d54 100644 --- a/src/program.h +++ b/src/program.h @@ -50,6 +50,7 @@ PMOD_EXPORT extern struct program_state * Pike_compiler; } while(0) extern struct pike_string *this_program_string; +extern struct pike_string *this_string; /* Common compiler subsystems */ extern struct pike_string *parser_system_string;