fix for 1194470 (DesignForExtension should ignore enums)

This commit is contained in:
Oleg Sukhodolsky 2005-05-04 13:02:48 +00:00
parent 29e611bd87
commit 0c3c817b22
3 changed files with 30 additions and 3 deletions

View File

@ -54,7 +54,7 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes;
* </p>
*
* @author lkuehne
* @version $Revision: 1.9 $
* @version $Revision: 1.10 $
*/
public class DesignForExtensionCheck extends Check
{
@ -102,7 +102,9 @@ public class DesignForExtensionCheck extends Check
final DetailAST classDef = findContainingClass(aAST);
final DetailAST classMods =
classDef.findFirstToken(TokenTypes.MODIFIERS);
if (classMods.branchContains(TokenTypes.FINAL)) {
if (classDef.getType() == TokenTypes.ENUM_DEF
|| classMods.branchContains(TokenTypes.FINAL))
{
return;
}
@ -146,7 +148,9 @@ public class DesignForExtensionCheck extends Check
private DetailAST findContainingClass(DetailAST aAST)
{
DetailAST searchAST = aAST;
while (searchAST.getType() != TokenTypes.CLASS_DEF) {
while (searchAST.getType() != TokenTypes.CLASS_DEF
&& searchAST.getType() != TokenTypes.ENUM_DEF)
{
searchAST = searchAST.getParent();
}
return searchAST;

View File

@ -70,3 +70,15 @@ public abstract class InputDesignForExtension
}
}
}
// enums should be skipped
enum TEnum
{
FIRST,
SECOND;
public int value()
{
return 3;
}
}

View File

@ -10,6 +10,17 @@
<body>
<section name="Release 4.0">
<p>Fixed Bugs:</p>
<ul>
<li>DesignForExtension check skips enums now (they are final
:). (bug# 1194470)</li>
</ul>
</section>
<section name="Release 4.0 Beta 2">
<p>Dependencies:</p>