diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index a0f145410e..64bed47ed0 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -13,16 +13,25 @@ This is a minor release. ### Table Of Contents * [New and noteworthy](#new-and-noteworthy) + * [New Rules](#new-rules) * [Fixed Issues](#fixed-issues) * [API Changes](#api-changes) * [External Contributions](#external-contributions) ### New and noteworthy +#### New Rules + +* The new PL/SQL rule [`ForLoopNaming`](pmd_rules_plsql_codestyle.html#forloopnaming) (`plsql-codestyle`) + enforces a naming convention for "for loops". Both "cursor for loops" and "index for loops" are covered. + The rule can be customized via patterns. By default, short variable names are reported. + ### Fixed Issues * java-errorprone * [#1078](https://github.com/pmd/pmd/issues/1078): \[java] MissingSerialVersionUID rule does not seem to catch inherited classes +* plsql + * [#681](https://github.com/pmd/pmd/issues/681): \[plsql] Parse error with Cursor For Loop ### API Changes diff --git a/pmd-core/src/main/resources/rulesets/releases/670.xml b/pmd-core/src/main/resources/rulesets/releases/670.xml new file mode 100644 index 0000000000..650eb5c783 --- /dev/null +++ b/pmd-core/src/main/resources/rulesets/releases/670.xml @@ -0,0 +1,13 @@ + + + + +This ruleset contains links to rules that are new in PMD v6.7.0 + + + + + diff --git a/pmd-plsql/etc/grammar/PldocAST.jjt b/pmd-plsql/etc/grammar/PldocAST.jjt index 0d162e6bec..f265be2476 100644 --- a/pmd-plsql/etc/grammar/PldocAST.jjt +++ b/pmd-plsql/etc/grammar/PldocAST.jjt @@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Added more complete support for CREATE TABLE + * Added ASTCursorForLoop and ASTSelectStatement * * Andreas Dangel 07/2018 *==================================================================== @@ -1176,6 +1177,7 @@ ASTUnlabelledStatement UnlabelledStatement() : | LOOKAHEAD(3) ContinueStatement() ";" // CONTINUE keyword was added in 11G, so Oracle compilation supports CONTINUE as a variable name | CaseStatement() ";" | IfStatement() ";" + | LOOKAHEAD( ID() "("