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

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

Issue 319733002: DevTools: [JsDocValidator] Be smarter about function name and JSDoc detection (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix constructor detection for unnamed functions Created 6 years, 6 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/ContextTrackingValidationCheck.java
diff --git a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
index 1a8d25de1e48382c1e1b20ba0135589cf41e3988..642313c32ec3e91f7de53219dd6186120091efb5 100644
--- a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
+++ b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
@@ -88,14 +88,16 @@ public class ContextTrackingValidationCheck extends ValidationCheck {
AstNode nameNode = AstUtil.getFunctionNameNode(node);
// It can be a type declaration: /** @constructor */ function MyType() {...}.
- String functionName = getNodeText(nameNode);
- boolean isConstructor =
- functionName != null && rememberTypeRecordIfNeeded(functionName, jsDocNode);
+ // Or even /** @constructor */ window.Foo.Bar = function() {...}.
+ String functionName = nameNode == null ? null : getNodeText(nameNode);
+ boolean isConstructor = rememberTypeRecordIfNeeded(functionName, jsDocNode);
+
TypeRecord parentType = state.getCurrentFunctionRecord() == null
? state.getCurrentTypeRecord()
: null;
state.pushFunctionRecord(new FunctionRecord(
node,
+ AstUtil.getJsDocNode(node),
functionName,
isConstructor,
getReturnType(jsDocNode),
@@ -162,6 +164,9 @@ public class ContextTrackingValidationCheck extends ValidationCheck {
private boolean rememberTypeRecordIfNeeded(String typeName, Comment jsDocNode) {
String jsDoc = getNodeText(jsDocNode);
+ if (typeName == null) {
+ return isConstructor(jsDoc) || isInterface(jsDoc);
+ }
if (!isConstructor(jsDoc) && !isInterface(jsDoc)) {
return false;
}

Powered by Google App Engine
This is Rietveld 408576698