Class UnusedLambdaParameterShouldBeUnnamedCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractCheck
com.puppycrawl.tools.checkstyle.checks.coding.UnusedLambdaParameterShouldBeUnnamedCheck
- All Implemented Interfaces:
Configurable
,Contextualizable
Ensures that lambda parameters that are not used are declared as an unnamed variable.
Rationale:
- Improves code readability by clearly indicating which parameters are unused.
-
Follows Java conventions for denoting unused parameters with an underscore (
_
).
See the Java Language Specification for more information about unnamed variables.
Attention: Unnamed variables are available as a preview feature in Java 21, and became an official part of the language in Java 22. This check should be activated only on source code which meets those requirements.
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
unused.lambda.parameter
- Since:
- 10.18.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
Maintains information about the lambda parameter.Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int[]
Invalid parents of the lambda parameter identifier.Keeps track of the lambda parameters in a block.static final String
A key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Called before the starting to process a tree.int[]
The configurable token set.int[]
Returns the default token a check is interested in.int[]
The tokens that this check must be registered for.private static boolean
hasValidParentToken
(DetailAST identifierAst) Check if the givenTokenTypes.IDENT
has a valid parent token.private static boolean
isLambdaParameterIdentifierCandidate
(DetailAST identifierAst) Visit ast of typeTokenTypes.IDENT
and check if it is a candidate for a lambda parameter identifier.private static boolean
isLeftHandOfAssignment
(DetailAST identAst) Check if the givenTokenTypes.IDENT
is a left hand side value.private static boolean
isMethodInvocation
(DetailAST identAst) Check if the givenTokenTypes.IDENT
is a child of a dot operator and is a candidate for lambda parameter.void
leaveToken
(DetailAST ast) Called after all the child nodes have been process.void
visitToken
(DetailAST ast) Called to process a token.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, log, log, log, setFileContents, setTabWidth, setTokens
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Field Details
-
MSG_UNUSED_LAMBDA_PARAMETER
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
INVALID_LAMBDA_PARAM_IDENT_PARENTS
Invalid parents of the lambda parameter identifier. These are tokens that can not be parents for a lambda parameter identifier. -
lambdaParameters
private final Deque<UnusedLambdaParameterShouldBeUnnamedCheck.LambdaParameterDetails> lambdaParametersKeeps track of the lambda parameters in a block.
-
-
Constructor Details
-
UnusedLambdaParameterShouldBeUnnamedCheck
-
-
Method Details
-
getDefaultTokens
Description copied from class:AbstractCheck
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokens
in classAbstractCheck
- Returns:
- the default tokens
- See Also:
-
getAcceptableTokens
Description copied from class:AbstractCheck
The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.- Specified by:
getAcceptableTokens
in classAbstractCheck
- Returns:
- the token set this check is designed for.
- See Also:
-
getRequiredTokens
Description copied from class:AbstractCheck
The tokens that this check must be registered for.- Specified by:
getRequiredTokens
in classAbstractCheck
- Returns:
- the token set this must be registered for.
- See Also:
-
beginTree
Description copied from class:AbstractCheck
Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTree
in classAbstractCheck
- Parameters:
rootAST
- the root of the tree
-
visitToken
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
leaveToken
Description copied from class:AbstractCheck
Called after all the child nodes have been process.- Overrides:
leaveToken
in classAbstractCheck
- Parameters:
ast
- the token leaving
-
isLambdaParameterIdentifierCandidate
Visit ast of typeTokenTypes.IDENT
and check if it is a candidate for a lambda parameter identifier.- Parameters:
identifierAst
- token representingTokenTypes.IDENT
- Returns:
- true if the given
TokenTypes.IDENT
could be a lambda parameter identifier
-
hasValidParentToken
Check if the givenTokenTypes.IDENT
has a valid parent token. A valid parent token is a token that can be a parent for a lambda parameter identifier.- Parameters:
identifierAst
- token representingTokenTypes.IDENT
- Returns:
- true if the given
TokenTypes.IDENT
has a valid parent token
-
isMethodInvocation
Check if the givenTokenTypes.IDENT
is a child of a dot operator and is a candidate for lambda parameter.- Parameters:
identAst
- token representingTokenTypes.IDENT
- Returns:
- true if the given
TokenTypes.IDENT
is a child of a dot operator and a candidate for lambda parameter.
-
isLeftHandOfAssignment
Check if the givenTokenTypes.IDENT
is a left hand side value.- Parameters:
identAst
- token representingTokenTypes.IDENT
- Returns:
- true if the given
TokenTypes.IDENT
is a left hand side value.
-