Merge "Constants for internal enum"

This commit is contained in:
jenkins-bot 2023-12-12 09:47:39 +00:00 committed by Gerrit Code Review
commit dda42b9aed

View file

@ -73,6 +73,11 @@ class ReferenceStack {
*/ */
private ErrorReporter $errorReporter; private ErrorReporter $errorReporter;
private const ACTION_ASSIGN = 'assign';
private const ACTION_INCREMENT = 'increment';
private const ACTION_NEW_FROM_PLACEHOLDER = 'new-from-placeholder';
private const ACTION_NEW = 'new';
public function __construct( ErrorReporter $errorReporter ) { public function __construct( ErrorReporter $errorReporter ) {
$this->errorReporter = $errorReporter; $this->errorReporter = $errorReporter;
} }
@ -132,7 +137,7 @@ class ReferenceStack {
// Mark an incomplete follow="…" as such. This is valid e.g. in the Page:… namespace // Mark an incomplete follow="…" as such. This is valid e.g. in the Page:… namespace
// on Wikisource. // on Wikisource.
$this->refs[$group][] = $ref + [ 'follow' => $follow ]; $this->refs[$group][] = $ref + [ 'follow' => $follow ];
$this->refCallStack[] = [ 'new', $this->refSequence, $group, $name, $extends, $text, $this->refCallStack[] = [ self::ACTION_NEW, $this->refSequence, $group, $name, $extends, $text,
$argv ]; $argv ];
} elseif ( $text !== null ) { } elseif ( $text !== null ) {
// We know the parent already, so just perform the follow="…" and bail out // We know the parent already, so just perform the follow="…" and bail out
@ -146,18 +151,18 @@ class ReferenceStack {
if ( !$name ) { if ( !$name ) {
// This is an anonymous reference, which will be given a numeric index. // This is an anonymous reference, which will be given a numeric index.
$this->refs[$group][] = &$ref; $this->refs[$group][] = &$ref;
$action = 'new'; $action = self::ACTION_NEW;
} elseif ( isset( $this->refs[$group][$name]['__placeholder__'] ) ) { } elseif ( isset( $this->refs[$group][$name]['__placeholder__'] ) ) {
// Populate a placeholder. // Populate a placeholder.
unset( $this->refs[$group][$name]['__placeholder__'] ); unset( $this->refs[$group][$name]['__placeholder__'] );
unset( $ref['number'] ); unset( $ref['number'] );
$ref = array_merge( $ref, $this->refs[$group][$name] ); $ref = array_merge( $ref, $this->refs[$group][$name] );
$this->refs[$group][$name] =& $ref; $this->refs[$group][$name] =& $ref;
$action = 'new-from-placeholder'; $action = self::ACTION_NEW_FROM_PLACEHOLDER;
} elseif ( !isset( $this->refs[$group][$name] ) ) { } elseif ( !isset( $this->refs[$group][$name] ) ) {
// Valid key with first occurrence // Valid key with first occurrence
$this->refs[$group][$name] = &$ref; $this->refs[$group][$name] = &$ref;
$action = 'new'; $action = self::ACTION_NEW;
} else { } else {
// Change an existing entry. // Change an existing entry.
$ref = &$this->refs[$group][$name]; $ref = &$this->refs[$group][$name];
@ -169,7 +174,7 @@ class ReferenceStack {
$ref['text'] = $text; $ref['text'] = $text;
// Use the dir parameter only from the full definition of a named ref tag // Use the dir parameter only from the full definition of a named ref tag
$ref['dir'] = $dir; $ref['dir'] = $dir;
$action = 'assign'; $action = self::ACTION_ASSIGN;
} else { } else {
if ( $text !== null if ( $text !== null
// T205803 different strip markers might hide the same text // T205803 different strip markers might hide the same text
@ -183,7 +188,7 @@ class ReferenceStack {
$parser, 'cite_error_references_duplicate_key', $name $parser, 'cite_error_references_duplicate_key', $name
); );
} }
$action = 'increment'; $action = self::ACTION_INCREMENT;
} }
} }
@ -316,7 +321,7 @@ class ReferenceStack {
} }
switch ( $action ) { switch ( $action ) {
case 'new': case self::ACTION_NEW:
// Rollback the addition of new elements to the stack // Rollback the addition of new elements to the stack
unset( $this->refs[$group][$lookup] ); unset( $this->refs[$group][$lookup] );
if ( !$this->refs[$group] ) { if ( !$this->refs[$group] ) {
@ -326,16 +331,16 @@ class ReferenceStack {
} }
// TODO: Don't we need to rollback extendsCount as well? // TODO: Don't we need to rollback extendsCount as well?
break; break;
case 'new-from-placeholder': case self::ACTION_NEW_FROM_PLACEHOLDER:
$this->refs[$group][$lookup]['__placeholder__'] = true; $this->refs[$group][$lookup]['__placeholder__'] = true;
unset( $this->refs[$group][$lookup]['count'] ); unset( $this->refs[$group][$lookup]['count'] );
break; break;
case 'assign': case self::ACTION_ASSIGN:
// Rollback assignment of text to pre-existing elements // Rollback assignment of text to pre-existing elements
$this->refs[$group][$lookup]['text'] = null; $this->refs[$group][$lookup]['text'] = null;
$this->refs[$group][$lookup]['count']--; $this->refs[$group][$lookup]['count']--;
break; break;
case 'increment': case self::ACTION_INCREMENT:
// Rollback increase in named ref occurrences // Rollback increase in named ref occurrences
$this->refs[$group][$lookup]['count']--; $this->refs[$group][$lookup]['count']--;
break; break;