public final class CheckJSDocStyle extends NodeTraversal.AbstractPostOrderCallback implements CompilerPass
@param
annotation, coding conventions not being respected, etc.Modifier and Type | Class and Description |
---|---|
private static class |
CheckJSDocStyle.ExternsCallback |
private static class |
CheckJSDocStyle.FindNonTrivialReturn |
Modifier and Type | Field and Description |
---|---|
private AbstractCompiler |
compiler |
static DiagnosticType |
CONSTRUCTOR_DISALLOWED_JSDOC |
static DiagnosticType |
EXTERNS_FILES_SHOULD_BE_ANNOTATED |
static DiagnosticType |
INCORRECT_PARAM_NAME |
static DiagnosticType |
INVALID_SUPPRESS |
static DiagnosticType |
MISSING_JSDOC |
static DiagnosticType |
MISSING_PARAMETER_JSDOC |
static DiagnosticType |
MISSING_RETURN_JSDOC |
static DiagnosticType |
MIXED_PARAM_JSDOC_STYLES |
static DiagnosticType |
MUST_BE_PRIVATE |
static DiagnosticType |
MUST_HAVE_TRAILING_UNDERSCORE |
static DiagnosticType |
OPTIONAL_PARAM_NOT_MARKED_OPTIONAL |
static DiagnosticType |
OPTIONAL_TYPE_NOT_USING_OPTIONAL_NAME |
static DiagnosticType |
WRONG_NUMBER_OF_PARAMS |
Constructor and Description |
---|
CheckJSDocStyle(AbstractCompiler compiler) |
Modifier and Type | Method and Description |
---|---|
private void |
checkInlineParams(NodeTraversal t,
Node function)
Checks that the inline type annotations are correct.
|
private void |
checkMissingJsDoc(NodeTraversal t,
Node function) |
private boolean |
checkParam(NodeTraversal t,
Node param,
java.lang.String name,
JSTypeExpression paramType)
Checks that the given parameter node has the given name, and that the given type is
compatible.
|
private void |
checkParams(NodeTraversal t,
Node function,
JSDocInfo jsDoc) |
private void |
checkReturn(NodeTraversal t,
Node function,
JSDocInfo jsDoc) |
private void |
checkStyleForPrivateProperties(NodeTraversal t,
Node n) |
private void |
checkSuppressionsOnNonFunction(NodeTraversal t,
Node n,
JSDocInfo jsDoc) |
private boolean |
hasAnyInlineJsDoc(Node function) |
private boolean |
isFunctionThatShouldHaveJsDoc(NodeTraversal t,
Node function)
Whether the given function should have JSDoc.
|
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children have been visited).
|
private void |
visitFunction(NodeTraversal t,
Node function,
Node parent) |
private void |
visitNonFunction(NodeTraversal t,
Node n) |
shouldTraverse
public static final DiagnosticType INVALID_SUPPRESS
public static final DiagnosticType CONSTRUCTOR_DISALLOWED_JSDOC
public static final DiagnosticType MISSING_JSDOC
public static final DiagnosticType MISSING_PARAMETER_JSDOC
public static final DiagnosticType MIXED_PARAM_JSDOC_STYLES
public static final DiagnosticType MISSING_RETURN_JSDOC
public static final DiagnosticType MUST_BE_PRIVATE
public static final DiagnosticType MUST_HAVE_TRAILING_UNDERSCORE
public static final DiagnosticType OPTIONAL_PARAM_NOT_MARKED_OPTIONAL
public static final DiagnosticType OPTIONAL_TYPE_NOT_USING_OPTIONAL_NAME
public static final DiagnosticType WRONG_NUMBER_OF_PARAMS
public static final DiagnosticType INCORRECT_PARAM_NAME
public static final DiagnosticType EXTERNS_FILES_SHOULD_BE_ANNOTATED
private final AbstractCompiler compiler
public CheckJSDocStyle(AbstractCompiler compiler)
public void process(Node externs, Node root)
CompilerPass
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treepublic void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
Visits a node in postorder (after its children have been visited).
A node is visited only if all its parents should be traversed
(NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)
).
Implementations can have side effects (e.g. modifying the parse tree).
visit
in interface NodeTraversal.Callback
private void visitNonFunction(NodeTraversal t, Node n)
private void checkStyleForPrivateProperties(NodeTraversal t, Node n)
private void checkSuppressionsOnNonFunction(NodeTraversal t, Node n, JSDocInfo jsDoc)
private void visitFunction(NodeTraversal t, Node function, Node parent)
private void checkMissingJsDoc(NodeTraversal t, Node function)
private boolean isFunctionThatShouldHaveJsDoc(NodeTraversal t, Node function)
private void checkParams(NodeTraversal t, Node function, JSDocInfo jsDoc)
private void checkInlineParams(NodeTraversal t, Node function)
private boolean checkParam(NodeTraversal t, Node param, @Nullable java.lang.String name, JSTypeExpression paramType)
param
- If this is a non-NAME node, such as a destructuring pattern, skip the name check.name
- If null, skip the name checkprivate boolean hasAnyInlineJsDoc(Node function)
private void checkReturn(NodeTraversal t, Node function, JSDocInfo jsDoc)