src/com/google/javascript/rhino/jstype/FunctionType.java
/**
   * When a class B inherits from A and A is annotated as a dict, then B automatically gets the
   * annotation, even if B's constructor is not explicitly annotated.
   */
When a class B inherits from A and A is annotated as a dict, then B automatically gets the
annotation, even if B's constructor is not explicitly annotated.
When a class B inherits from A and A is annotated as a dict then B automatically gets the annotation even if B ' s constructor is not explicitly annotated .
public final boolean makesDicts() {
    if (!isConstructor()) {
      return false;
    }
    if (propAccess == PropAccess.DICT) {
      return true;
    }
    FunctionType superc = getSuperClassConstructor();
    if (superc != null && superc.makesDicts()) {
      setDict();
      return true;
    }
    return false;
  }
public final boolean makesDicts ( ) { if ( ! isConstructor ( ) ) { return false ; } if ( propAccess == PropAccess . DICT ) { return true ; } FunctionType superc = getSuperClassConstructor ( ) ; if ( superc != null && superc . makesDicts ( ) ) { setDict ( ) ; return true ; } return false ; }
When a class B inherits from A and A is annotated as a dict, then B automatically gets the
 annotation, even if B's constructor is not explicitly annotated.
When a class B inherits from A and A is annotated as a dict then B automatically gets the annotation even if B ' s constructor is not explicitly annotated .