* Dariusz RumiƄski * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Tests\Fixer\LanguageConstruct; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; /** * @author Filippo Tessarotto * * @internal * * @covers \PhpCsFixer\Fixer\LanguageConstruct\ExplicitIndirectVariableFixer * * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\LanguageConstruct\ExplicitIndirectVariableFixer> */ final class ExplicitIndirectVariableFixerTest extends AbstractFixerTestCase { /** * @dataProvider provideFixCases */ public function testFix(string $expected, ?string $input = null): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFixCases(): iterable { yield 'variable variable function call' => [ ' [ ' [ '{$bar}[\'baz\'];', '$bar[\'baz\'];', ]; yield 'dynamic property access with method call' => [ '{$bar}[\'baz\']();', '$bar[\'baz\']();', ]; yield 'variable variable with comments between dollar signs' => [ ' [ ' [ 'baz();', 'baz();', ]; } /** * @dataProvider provideFix80Cases * * @requires PHP 8.0 */ public function testFix80(string $expected, ?string $input): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFix80Cases(): iterable { yield 'dynamic property fetch with nullsafe operator' => [ '{$bar}["baz"];', '$bar["baz"];', ]; yield 'dynamic property fetch with nullsafe operator and method call' => [ '{$bar}["baz"]();', '$bar["baz"]();', ]; } /** * @dataProvider provideFix83Cases * * @requires PHP 8.3 */ public function testFix83(string $expected, ?string $input): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFix83Cases(): iterable { yield 'dynamic class const fetch with variable variable' => [ '