code: 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;
    }
docs: 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.