code: private void whenNeedsOuterParam(TypeElement type, Runnable runnable) {
      if (captureInfo.needsOuterParam(type)) {
        runnable.run();
      } else if (ElementUtil.isLocal(type)) {
        Scope scope = findScopeForType(type);
        if (scope != null) {
          scope.onOuterParam.add(captureCurrentScope(runnable));
        }
      }
    }
docs: Executes the runnable if or when the given type needs an outer param.