Skip to content

Commit d4bc119

Browse files
committed
fix - invalid semicolon
1 parent d5610a6 commit d4bc119

3 files changed

Lines changed: 78 additions & 1 deletion

File tree

fmt.stub.php

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9083,7 +9083,7 @@ public function format($source)
90839083
if ($this->hasLnAfter() && $this->rightTokenIs(ST_CURLY_CLOSE) && ! $isMatch) {
90849084
$this->appendCode(ST_SEMI_COLON);
90859085
} else
9086-
if ($this->hasLnAfter() && $this->rightTokenIs([T_COMMENT, T_DOC_COMMENT]) && ! $isMatch) {
9086+
if ($this->hasLnAfter() && $this->rightTokenIs([T_COMMENT, T_DOC_COMMENT]) && ! $isMatch && ! $this->nextUsefulTokenContinuesExpression()) {
90879087
$this->appendCode(ST_SEMI_COLON);
90889088
} else
90899089
if ($this->rightUsefulTokenIs(T_VARIABLE) && $this->rightTokenIs([T_COMMENT, T_DOC_COMMENT])) {
@@ -9150,6 +9150,10 @@ public function format($source)
91509150
if (! in_array($lastParen, [T_IF, T_WHILE, T_FOR, T_FOREACH, T_ELSEIF, T_SWITCH])) {
91519151
$this->appendCode(ST_SEMI_COLON);
91529152
}
9153+
} else
9154+
if ($this->rightTokenIs([T_COMMENT, T_DOC_COMMENT]) && ! $this->nextUsefulTokenContinuesExpression()) {
9155+
// A comment after ")" doesn't necessarily terminate the statement.
9156+
$this->appendCode(ST_SEMI_COLON);
91539157
}
91549158
break;
91559159

@@ -9527,6 +9531,63 @@ private function chainAfterComments($index)
95279531
return false;
95289532
}
95299533

9534+
private function nextUsefulTokenContinuesExpression()
9535+
{
9536+
return $this->rightUsefulTokenIs([
9537+
ST_BITWISE_OR,
9538+
ST_BITWISE_XOR,
9539+
ST_BRACKET_CLOSE,
9540+
ST_BRACKET_OPEN,
9541+
ST_COLON,
9542+
ST_COMMA,
9543+
ST_CONCAT,
9544+
ST_DIVIDE,
9545+
ST_IS_GREATER,
9546+
ST_IS_SMALLER,
9547+
ST_MINUS,
9548+
ST_PARENTHESES_CLOSE,
9549+
ST_PARENTHESES_OPEN,
9550+
ST_PLUS,
9551+
ST_QUESTION,
9552+
ST_TIMES,
9553+
9554+
T_AND_EQUAL,
9555+
T_AS,
9556+
T_BOOLEAN_AND,
9557+
T_BOOLEAN_OR,
9558+
T_COALESCE,
9559+
T_COALESCE_EQUAL,
9560+
T_CONCAT_EQUAL,
9561+
T_DIV_EQUAL,
9562+
T_DOUBLE_ARROW,
9563+
T_DOUBLE_COLON,
9564+
T_INSTANCEOF,
9565+
T_IS_EQUAL,
9566+
T_IS_GREATER_OR_EQUAL,
9567+
T_IS_IDENTICAL,
9568+
T_IS_NOT_EQUAL,
9569+
T_IS_NOT_IDENTICAL,
9570+
T_IS_SMALLER_OR_EQUAL,
9571+
T_LOGICAL_AND,
9572+
T_LOGICAL_OR,
9573+
T_LOGICAL_XOR,
9574+
T_MINUS_EQUAL,
9575+
T_MOD_EQUAL,
9576+
T_MUL_EQUAL,
9577+
T_OBJECT_OPERATOR,
9578+
T_OR_EQUAL,
9579+
T_PLUS_EQUAL,
9580+
T_POW,
9581+
T_POW_EQUAL,
9582+
T_SL,
9583+
T_SL_EQUAL,
9584+
T_SPACESHIP,
9585+
T_SR,
9586+
T_SR_EQUAL,
9587+
T_XOR_EQUAL,
9588+
]);
9589+
}
9590+
95309591
public function getDescription()
95319592
{
95329593
return 'Add semicolons in statements ends.';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
//passes:AutoSemicolon
3+
4+
function () use ($job) {
5+
return $job === 'workspace-owner-id'
6+
/** @phpstan-ignore-next-line */
7+
&& $job === 'foo';
8+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
//passes:AutoSemicolon
3+
4+
function () use ($job) {
5+
return $job === 'workspace-owner-id'
6+
/** @phpstan-ignore-next-line */
7+
&& $job === 'foo';
8+
};

0 commit comments

Comments
 (0)