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 classMaintains 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 StringA key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled 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 booleanhasValidParentToken(DetailAST identifierAst) Check if the givenTokenTypes.IDENThas a valid parent token.private static booleanisLambdaParameterIdentifierCandidate(DetailAST identifierAst) Visit ast of typeTokenTypes.IDENTand check if it is a candidate for a lambda parameter identifier.private static booleanisLeftHandOfAssignment(DetailAST identAst) Check if the givenTokenTypes.IDENTis a left hand side value.private static booleanisMethodInvocation(DetailAST identAst) Check if the givenTokenTypes.IDENTis a child of a dot operator and is a candidate for lambda parameter.voidleaveToken(DetailAST ast) Called after all the child nodes have been process.voidvisitToken(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, setTokensMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods 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:AbstractCheckReturns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokensin classAbstractCheck- Returns:
- the default tokens
- See Also:
-
getAcceptableTokens
Description copied from class:AbstractCheckThe 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:
getAcceptableTokensin classAbstractCheck- Returns:
- the token set this check is designed for.
- See Also:
-
getRequiredTokens
Description copied from class:AbstractCheckThe tokens that this check must be registered for.- Specified by:
getRequiredTokensin classAbstractCheck- Returns:
- the token set this must be registered for.
- See Also:
-
beginTree
Description copied from class:AbstractCheckCalled before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTreein classAbstractCheck- Parameters:
rootAST- the root of the tree
-
visitToken
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
ast- the token to process
-
leaveToken
Description copied from class:AbstractCheckCalled after all the child nodes have been process.- Overrides:
leaveTokenin classAbstractCheck- Parameters:
ast- the token leaving
-
isLambdaParameterIdentifierCandidate
Visit ast of typeTokenTypes.IDENTand check if it is a candidate for a lambda parameter identifier.- Parameters:
identifierAst- token representingTokenTypes.IDENT- Returns:
- true if the given
TokenTypes.IDENTcould be a lambda parameter identifier
-
hasValidParentToken
Check if the givenTokenTypes.IDENThas 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.IDENThas a valid parent token
-
isMethodInvocation
Check if the givenTokenTypes.IDENTis a child of a dot operator and is a candidate for lambda parameter.- Parameters:
identAst- token representingTokenTypes.IDENT- Returns:
- true if the given
TokenTypes.IDENTis a child of a dot operator and a candidate for lambda parameter.
-
isLeftHandOfAssignment
Check if the givenTokenTypes.IDENTis a left hand side value.- Parameters:
identAst- token representingTokenTypes.IDENT- Returns:
- true if the given
TokenTypes.IDENTis a left hand side value.
-