Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(995)

Unified Diff: Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java

Issue 659973003: [DevTools] Disallow use of global property "document". (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebased Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
diff --git a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
index a2edafa3a6812cc3999a422b93f50632070f7918..6c75a2ab19f4585fb791058dfb4512c16a941bb1 100644
--- a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
+++ b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
@@ -40,39 +40,37 @@ public final class MethodAnnotationChecker extends ContextTrackingChecker {
}
private void handleFunction(Node functionNode) {
- Node parametersNode = NodeUtil.getFunctionParameters(functionNode);
- int actualParamCount = parametersNode.getChildCount();
- if (actualParamCount == 0) {
+ FunctionRecord function = getState().getCurrentFunctionRecord();
+ if (function == null || function.parameterNames.size() == 0) {
return;
}
- JSDocInfo jsDocInfo = NodeUtil.getBestJSDocInfo(functionNode);
- String[] nonAnnotatedParams = getNonAnnotatedParamData(parametersNode, jsDocInfo);
- if (nonAnnotatedParams.length > 0 && actualParamCount != nonAnnotatedParams.length) {
- reportErrorAtOffset(jsDocInfo.getOriginalCommentPosition(),
+ String[] nonAnnotatedParams = getNonAnnotatedParamData(function);
+ if (nonAnnotatedParams.length > 0
+ && function.parameterNames.size() != nonAnnotatedParams.length) {
+ reportErrorAtOffset(function.info.getOriginalCommentPosition(),
String.format(
"No @param JSDoc tag found for parameters: [%s]",
Joiner.on(',').join(nonAnnotatedParams)));
}
}
- private String[] getNonAnnotatedParamData(Node params, JSDocInfo info) {
- if (info == null) {
+ private String[] getNonAnnotatedParamData(FunctionRecord function) {
+ if (function.info == null) {
return new String[0];
}
Set<String> formalParamNames = new HashSet<>();
- for (int i = 0, childCount = params.getChildCount(); i < childCount; ++i) {
- Node paramNode = params.getChildAtIndex(i);
- String paramName = getContext().getNodeText(paramNode);
+ for (int i = 0; i < function.parameterNames.size(); ++i) {
+ String paramName = function.parameterNames.get(i);
if (!formalParamNames.add(paramName)) {
- reportErrorAtNodeStart(paramNode,
+ reportErrorAtNodeStart(function.functionNode,
String.format("Duplicate function argument name: %s", paramName));
}
}
- Matcher m = PARAM_PATTERN.matcher(info.getOriginalCommentString());
+ Matcher m = PARAM_PATTERN.matcher(function.info.getOriginalCommentString());
while (m.find()) {
String paramType = m.group(1);
if (paramType == null) {
- reportErrorAtOffset(info.getOriginalCommentPosition() + m.start(2),
+ reportErrorAtOffset(function.info.getOriginalCommentPosition() + m.start(2),
String.format(
"Invalid @param annotation found -"
+ " should be \"@param {<type>} paramName\""));

Powered by Google App Engine
This is Rietveld 408576698