code: private boolean isMissingRequire(String namespace, Node node) {
      if (namespace.startsWith("goog.global.")
          // Most functions in base.js are goog.someName, but
          // goog.module.{get,declareLegacyNamespace} are the exceptions, so just
          // check for them explicitly.
          || namespace.equals("goog.module.get")
          || namespace.equals("goog.module.declareLegacyNamespace")) {
        return false;
      }
  
      JSDocInfo info = NodeUtil.getBestJSDocInfo(NodeUtil.getEnclosingStatement(node));
      if (info != null && info.getSuppressions().contains("missingRequire")) {
        return false;
      }
  
      List<String> classNames = getClassNames(namespace);
      // The parent namespace of the outermost class is also checked, so that classes
      // used by goog.module are still checked properly. This may cause missing requires
      // to be missed but in practice that should happen rarely.
      String nonNullClassName = Iterables.getFirst(classNames, namespace);
      String parentNamespace = null;
      int separatorIndex = nonNullClassName.lastIndexOf('.');
      if (separatorIndex > 0) {
        parentNamespace = nonNullClassName.substring(0, separatorIndex);
      }
      if ("goog".equals(parentNamespace)
          && !isClassName(nonNullClassName.substring(separatorIndex + 1))) {
        // This is probably something provided in Closure's base.js so it doesn't need
        // to be required.
        return false;
      }
  
      boolean providedByConstructors =
          providedNames.contains(namespace) || providedNames.contains(parentNamespace);
      boolean providedByRequires =
          requires.containsKey(namespace) || requires.containsKey(parentNamespace);
  
      for (String className : classNames) {
        if (providedNames.contains(className)) {
          providedByConstructors = true;
          break;
        }
        if (requires.containsKey(className)) {
          providedByRequires = true;
          break;
        }
      }
      return !providedByRequires && !providedByConstructors;
    }
docs: Returns true if the given namespace is not satisfied by any {@code goog.provide}.