Skip to content

Commit

Permalink
Attributes should not be considered a side-effect
Browse files Browse the repository at this point in the history
The use of Attributes should not impact the MOODLE_INTERNAL check.
  • Loading branch information
andrewnicols committed Feb 23, 2024
1 parent 1fd7b70 commit 09371ae
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
3 changes: 3 additions & 0 deletions moodle/Sniffs/Files/MoodleInternalSniff.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ protected function get_position_of_relevant_code(File $file, $pointer) {
} else if ($tokens[$pointer]['code'] === T_DECLARE && $tokens[$pointer]['content'] == 'declare') {
// Declare statements must be at start of file.
$pointer = $file->findEndOfStatement($pointer + 1);
} else if ($tokens[$pointer]['code'] === T_ATTRIBUTE) {
// Attribute statements must be at start of file.
$pointer = $tokens[$pointer]['attribute_closer'] + 1;
} else {
$relevantcodefound = true;
}
Expand Down
5 changes: 5 additions & 0 deletions moodle/Tests/Sniffs/Files/MoodleInternalTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,11 @@ public static function provider(): array {
],
[],
],
[
'attribute_ok',
[],
[],
],
];
}
}
27 changes: 27 additions & 0 deletions moodle/Tests/Sniffs/Files/fixtures/moodleinternal/attribute_ok.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Class with an attribute.
*
* @package core
* @copyright 2024 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
#[\Attribute]
class example {
}

0 comments on commit 09371ae

Please sign in to comment.