diff --git a/lib/PPI/Tokenizer.pm b/lib/PPI/Tokenizer.pm index 2ed35f47..e13493a9 100644 --- a/lib/PPI/Tokenizer.pm +++ b/lib/PPI/Tokenizer.pm @@ -779,6 +779,7 @@ sub _current_x_is_operator { && (!$prev->isa('PPI::Token::Operator') || $X_CAN_FOLLOW_OPERATOR{$prev}) && (!$prev->isa('PPI::Token::Structure') || $X_CAN_FOLLOW_STRUCTURE{$prev}) && (!$prev->isa('PPI::Token::Word') || $X_CAN_FOLLOW_WORD{$prev}) + && !$prev->isa('PPI::Token::Label') ; } diff --git a/t/ppi_token_operator.t b/t/ppi_token_operator.t index 73ad7de1..2a8a7314 100644 --- a/t/ppi_token_operator.t +++ b/t/ppi_token_operator.t @@ -13,7 +13,7 @@ BEGIN { $PPI::XS_DISABLE = 1; $PPI::Lexer::X_TOKENIZER ||= $ENV{X_TOKENIZER}; } -use Test::More tests => 1125; +use Test::More tests => 1126; use Test::NoWarnings; use PPI; @@ -409,6 +409,17 @@ OPERATOR_X: { 'PPI::Token::Structure' => '}', ] }, + { + desc => 'label plus x', + code => 'LABEL: x64', + expected => [ + 'PPI::Statement::Compound' => 'LABEL:', + 'PPI::Token::Label' => 'LABEL:', + 'PPI::Token::Whitespace' => ' ', + 'PPI::Statement' => 'x64', + 'PPI::Token::Word' => 'x64', + ] + }, ); # Exhaustively test when a preceding operator implies following