code: private static void removeScopeAndChildrenFromMap(ScopeNode scope) {
      MAP_KEY_TO_SCOPE.remove(scope.getName());
      scope.close();
      for (ScopeNode childScope : scope.childrenScopes.values()) {
        removeScopeAndChildrenFromMap(childScope);
      }
    }
docs: Removes all nodes of {@code scope} using DFS. We don't lock here.
  
  @param scope the parent scope of which all children will recursively be removed
  from the map. We don't do anything else to the children nodes are they will be
  garbage collected soon. We just cut a whole sub-graph in the references graph of the JVM
  normally.