| 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;
|
| }
|
|
|