apply clang-tidy modernize-use-override
authorVictor Gao <vgao@fb.com>
Wed, 24 May 2017 18:03:04 +0000 (11:03 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Wed, 24 May 2017 18:05:26 +0000 (11:05 -0700)
Summary:
This is generated by applying clang-tidy -checks=modernize-use-override to all .cpp files under folly.
It enforces the use of the keywords virtual, override and final in a way compliant to the style guide.

Reviewed By: yfeldblum

Differential Revision: D5108973

fbshipit-source-id: 61c55aa372feebe3b3be12a2705a04879aae57a4

46 files changed:
folly/IPAddressException.h
folly/LifoSem.h
folly/Singleton.h
folly/Subprocess.h
folly/dynamic-inl.h
folly/experimental/hazptr/memory_resource.h
folly/experimental/hazptr/test/HazptrUse1.h
folly/experimental/hazptr/test/HazptrUse2.h
folly/experimental/symbolizer/Symbolizer.h
folly/fibers/EventBaseLoopController.h
folly/fibers/FiberManagerInternal.h
folly/futures/DrivableExecutor.h
folly/futures/ManualExecutor.h
folly/futures/ScheduledExecutor.h
folly/gen/Base-inl.h
folly/io/Compression.cpp
folly/io/IOBuf.h
folly/io/async/AsyncPipe.h
folly/io/async/AsyncSSLSocket.h
folly/io/async/AsyncServerSocket.h
folly/io/async/AsyncSocket.h
folly/io/async/AsyncTimeout.h
folly/io/async/AsyncTransport.h
folly/io/async/AsyncUDPServerSocket.h
folly/io/async/AsyncUDPSocket.h
folly/io/async/DecoratedAsyncTransportWrapper.h
folly/io/async/DelayedDestruction.h
folly/io/async/EventBase.h
folly/io/async/EventBaseLocal.h
folly/io/async/HHWheelTimer.h
folly/io/async/NotificationQueue.h
folly/io/async/VirtualEventBase.h
folly/io/async/WriteChainAsyncTransportWrapper.h
folly/io/async/test/AsyncSSLSocketTest.cpp
folly/io/async/test/AsyncSSLSocketTest.h
folly/io/async/test/AsyncSocketTest.h
folly/io/async/test/AsyncSocketTest2.h
folly/io/async/test/DelayedDestructionTest.cpp
folly/io/async/test/NotificationQueueTest.cpp
folly/io/async/test/RequestContextTest.cpp
folly/io/async/test/TestSSLServer.h
folly/io/async/test/UndelayedDestruction.h
folly/io/async/test/WriteChainAsyncTransportWrapperTest.cpp
folly/test/SingletonTest.cpp
folly/test/SmallLocksBenchmark.cpp
folly/test/SubprocessTest.cpp

index c2ca1ad428f67aa5d8daf54a70ba59c8211a8223..86f8a5ac8dc59dfa8887a82c1aea1c9ba7f03c66 100644 (file)
@@ -37,8 +37,8 @@ class IPAddressFormatException : public std::exception {
       default;
   IPAddressFormatException& operator=(IPAddressFormatException&&) = default;
 
-  virtual ~IPAddressFormatException() noexcept {}
-  virtual const char *what(void) const noexcept {
+  ~IPAddressFormatException() noexcept override {}
+  const char* what(void) const noexcept override {
     return msg_.c_str();
   }
 
index d66f77e5b1f1e231d263070406840bb50a3f2e82..f6b7bf024c956ea7620103b49b0841ac2258e83a 100644 (file)
@@ -91,7 +91,7 @@ typedef LifoSemImpl<> LifoSem;
 /// The exception thrown when wait()ing on an isShutdown() LifoSem
 struct ShutdownSemError : public std::runtime_error {
   explicit ShutdownSemError(const std::string& msg);
-  virtual ~ShutdownSemError() noexcept;
+  ~ShutdownSemError() noexcept override;
 };
 
 namespace detail {
index e8344cef55348bba3375de28b91e4b414f846ffd..104054afaa42b30a6e8c7d9876e49a97e75b883f 100644 (file)
@@ -273,11 +273,11 @@ struct SingletonHolder : public SingletonHolderBase {
 
   void registerSingleton(CreateFunc c, TeardownFunc t);
   void registerSingletonMock(CreateFunc c, TeardownFunc t);
-  virtual bool hasLiveInstance() override;
-  virtual void createInstance() override;
-  virtual bool creationStarted() override;
-  virtual void preDestroyInstance(ReadMostlyMainPtrDeleter<>&) override;
-  virtual void destroyInstance() override;
+  bool hasLiveInstance() override;
+  void createInstance() override;
+  bool creationStarted() override;
+  void preDestroyInstance(ReadMostlyMainPtrDeleter<>&) override;
+  void destroyInstance() override;
 
  private:
   SingletonHolder(TypeDescriptor type, SingletonVault& vault);
index 01e6d2c07ab148b833a2c2915fa0d67b4e2f6550..f1dd2ecd9b4548189b0db41a907e7c59dba9544a 100644 (file)
@@ -217,7 +217,7 @@ class SubprocessError : public std::exception {};
 class CalledProcessError : public SubprocessError {
  public:
   explicit CalledProcessError(ProcessReturnCode rc);
-  ~CalledProcessError() throw() = default;
+  ~CalledProcessError() throw() override = default;
   const char* what() const throw() override { return what_.c_str(); }
   ProcessReturnCode returnCode() const { return returnCode_; }
  private:
@@ -231,7 +231,7 @@ class CalledProcessError : public SubprocessError {
 class SubprocessSpawnError : public SubprocessError {
  public:
   SubprocessSpawnError(const char* executable, int errCode, int errnoValue);
-  ~SubprocessSpawnError() throw() = default;
+  ~SubprocessSpawnError() throw() override = default;
   const char* what() const throw() override { return what_.c_str(); }
   int errnoValue() const { return errnoValue_; }
 
index fe65cbbc995709e6f8f3bb590624c0c3c25cf0c5..48666de3ac343efa7ec93e7bc6882e53e712400b 100644 (file)
@@ -78,7 +78,7 @@ struct TypeError : std::runtime_error {
   explicit TypeError(const std::string& expected, dynamic::Type actual);
   explicit TypeError(const std::string& expected,
     dynamic::Type actual1, dynamic::Type actual2);
-  ~TypeError();
+  ~TypeError() override;
 };
 
 
index 33994dd54413e812063a7d4154ee2668e582b124..952c8397405ad2de0ebda035e2ce5467596de9c8 100644 (file)
@@ -69,7 +69,7 @@ inline memory_resource* new_delete_resource() {
    public:
     void* allocate(
         const size_t bytes,
-        const size_t alignment = alignof(std::max_align_t)) {
+        const size_t alignment = alignof(std::max_align_t)) override {
       (void)alignment;
       void* p = static_cast<void*>(new char[bytes]);
       DEBUG_PRINT(this << " " << p << " " << bytes);
@@ -78,7 +78,7 @@ inline memory_resource* new_delete_resource() {
     void deallocate(
         void* p,
         const size_t bytes,
-        const size_t alignment = alignof(std::max_align_t)) {
+        const size_t alignment = alignof(std::max_align_t)) override {
       (void)alignment;
       (void)bytes;
       DEBUG_PRINT(p << " " << bytes);
index 4ca53b58102ad9527f04234c54b68d0e2a7e09ee..614225c6b6430510649b7467442732c3292e1aab 100644 (file)
@@ -23,13 +23,13 @@ namespace hazptr {
 
 class MyMemoryResource : public memory_resource {
  public:
-  void* allocate(const size_t sz, const size_t /* align */) {
+  void* allocate(const size_t sz, const size_t /* align */) override {
     void* p = malloc(sz);
     DEBUG_PRINT(p << " " << sz);
     return p;
   }
 
-  void deallocate(void* p, const size_t sz, const size_t /* align */) {
+  void deallocate(void* p, const size_t sz, const size_t /* align */) override {
     DEBUG_PRINT(p << " " << sz);
     free(p);
   }
index e3a11243178acbb94df74a4504c3a47c34db1f9a..b8dc58e95a92a2f54c2bbe6121d52c53be4966d9 100644 (file)
@@ -23,13 +23,13 @@ namespace hazptr {
 
 class MineMemoryResource : public memory_resource {
  public:
-  void* allocate(const size_t sz, const size_t /* align */) {
+  void* allocate(const size_t sz, const size_t /* align */) override {
     void* p = malloc(sz);
     DEBUG_PRINT(p << " " << sz);
     return p;
   }
 
-  void deallocate(void* p, const size_t sz, const size_t /* align */) {
+  void deallocate(void* p, const size_t sz, const size_t /* align */) override {
     DEBUG_PRINT(p << " " << sz);
     free(p);
   }
index 677e0a8dc0183015aab9fedd00d7813787f79dea..772b11d0ef2570c041f76d9c1580473ebee1bc83 100644 (file)
@@ -269,7 +269,7 @@ class FDSymbolizePrinter : public SymbolizePrinter {
  public:
   explicit FDSymbolizePrinter(int fd, int options=0,
                               size_t bufferSize=0);
-  ~FDSymbolizePrinter();
+  ~FDSymbolizePrinter() override;
   void flush();
  private:
   void doPrint(StringPiece sp) override;
index a8a827668a1ba65e0dcfb224fa031504e2b46b46..329997d238dd7b90f005344c9b3623e262e7fdc1 100644 (file)
@@ -27,7 +27,7 @@ namespace fibers {
 class EventBaseLoopController : public LoopController {
  public:
   explicit EventBaseLoopController();
-  ~EventBaseLoopController();
+  ~EventBaseLoopController() override;
 
   /**
    * Attach EventBase after LoopController was created.
@@ -60,7 +60,7 @@ class EventBaseLoopController : public LoopController {
   class DestructionCallback : public folly::EventBase::LoopCallback {
    public:
     DestructionCallback() : alive_(new int(42)) {}
-    ~DestructionCallback() {
+    ~DestructionCallback() override {
       reset();
     }
 
index 7428d01d3806d65fd1e4aa0b32ae0de49b0195ae..f94478944f8e1345d6f32899704364ec73c8a17f 100644 (file)
@@ -146,7 +146,7 @@ class FiberManager : public ::folly::Executor {
       std::unique_ptr<LoopController> loopController,
       Options options = Options());
 
-  ~FiberManager();
+  ~FiberManager() override;
 
   /**
    * Controller access.
index a33d2d6f6b9340bd51fd5a991b109db1ee859f75..49b3c5d74d7c300d241dd694f175ae0852dfe662 100644 (file)
@@ -39,7 +39,7 @@ namespace folly {
 
 class DrivableExecutor : public virtual Executor {
  public:
-  virtual ~DrivableExecutor() = default;
+  ~DrivableExecutor() override = default;
 
   // Make progress on this Executor's work.
   //
index d4fb8db6bb606e86b534a6704fca223dbbd58610..76847e2cce496741d473469c38d83a278d33dbd8 100644 (file)
@@ -73,7 +73,7 @@ namespace folly {
 
     }
 
-    virtual void scheduleAt(Func&& f, TimePoint const& t) override {
+    void scheduleAt(Func&& f, TimePoint const& t) override {
       std::lock_guard<std::mutex> lock(lock_);
       scheduledFuncs_.emplace(t, std::move(f));
       sem_.post();
index df10254602e962ae59e8845a828fde54d081ca38..99cb2b73caf56a29e6c8110c3c853b7ec781c2aa 100644 (file)
@@ -30,9 +30,9 @@ namespace folly {
      typedef std::chrono::microseconds Duration;
      typedef std::chrono::steady_clock::time_point TimePoint;
 
-     virtual ~ScheduledExecutor() = default;
+     ~ScheduledExecutor() override = default;
 
-     virtual void add(Func) override = 0;
+     void add(Func) override = 0;
 
      /// Alias for add() (for Rx consistency)
      void schedule(Func&& a) { add(std::move(a)); }
index 45873e8bf946955038ea9a1e72cec3ec1748be73..2245bf08bfa8c28e5341e5ec87b8337f3fc948fb 100644 (file)
@@ -2233,15 +2233,15 @@ class VirtualGen : public GenImpl<Value, VirtualGen<Value>> {
    public:
     explicit WrapperImpl(Wrapped wrapped) : wrapped_(std::move(wrapped)) {}
 
-    virtual bool apply(const std::function<bool(Value)>& handler) const {
+    bool apply(const std::function<bool(Value)>& handler) const override {
       return wrapped_.apply(handler);
     }
 
-    virtual void foreach(const std::function<void(Value)>& body) const {
+    void foreach(const std::function<void(Value)>& body) const override {
       wrapped_.foreach(body);
     }
 
-    virtual std::unique_ptr<const WrapperBase> clone() const {
+    std::unique_ptr<const WrapperBase> clone() const override {
       return std::unique_ptr<const WrapperBase>(new WrapperImpl(wrapped_));
     }
   };
index ba941032295b46d19c99b8fd6da917b194ba91a2..4c02802e0746dfb51aabc4200ef5774184e8a1c0 100644 (file)
@@ -445,7 +445,7 @@ class LZ4FrameCodec final : public Codec {
  public:
   static std::unique_ptr<Codec> create(int level, CodecType type);
   explicit LZ4FrameCodec(int level, CodecType type);
-  ~LZ4FrameCodec();
+  ~LZ4FrameCodec() override;
 
   std::vector<std::string> validPrefixes() const override;
   bool canUncompress(const IOBuf* data, Optional<uint64_t> uncompressedLength)
index 15f8839c840edb0556cf411e368aa3d69a455a4d..22867091cf22762c83baa9c96324db987cae99f9 100644 (file)
@@ -1396,7 +1396,7 @@ class IOBuf {
     typedef typename UniquePtr::deleter_type Deleter;
 
     explicit UniquePtrDeleter(Deleter deleter) : deleter_(std::move(deleter)){ }
-    void dispose(void* p) {
+    void dispose(void* p) override {
       try {
         deleter_(static_cast<Pointer>(p));
         delete this;
index 1b5d0de4d71e1fbf64546e0b6aa32bc0e8dc6fe6..7a4ece3dc537c194c1eab98a65b52e42b05bc93c 100644 (file)
@@ -77,7 +77,7 @@ class AsyncPipeReader : public EventHandler,
   }
 
  private:
-  ~AsyncPipeReader();
+  ~AsyncPipeReader() override;
 
   void handlerReady(uint16_t events) noexcept override;
   void failRead(const AsyncSocketException& ex);
@@ -173,7 +173,7 @@ class AsyncPipeWriter : public EventHandler,
   bool closeOnEmpty_{false};
   std::function<void(int)> closeCb_;
 
-  ~AsyncPipeWriter() {
+  ~AsyncPipeWriter() override {
     closeNow();
   }
 };
index accd120a3690f812b58641453593e81141c0cf34..516e07c2bb7c09e9226545c3e9bb02231b8ba3fb 100644 (file)
@@ -141,7 +141,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
       return timeout_;
     }
 
-    virtual void timeoutExpired() noexcept override {
+    void timeoutExpired() noexcept override {
       sslSocket_->timeoutExpired(timeout_);
     }
 
@@ -275,18 +275,20 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   // See the documentation in TAsyncTransport.h
   // TODO: implement graceful shutdown in close()
   // TODO: implement detachSSL() that returns the SSL connection
-  virtual void closeNow() override;
-  virtual void shutdownWrite() override;
-  virtual void shutdownWriteNow() override;
-  virtual bool good() const override;
-  virtual bool connecting() const override;
-  virtual std::string getApplicationProtocol() noexcept override;
-
-  virtual std::string getSecurityProtocol() const override { return "TLS"; }
-
-  virtual void setEorTracking(bool track) override;
-  virtual size_t getRawBytesWritten() const override;
-  virtual size_t getRawBytesReceived() const override;
+  void closeNow() override;
+  void shutdownWrite() override;
+  void shutdownWriteNow() override;
+  bool good() const override;
+  bool connecting() const override;
+  std::string getApplicationProtocol() noexcept override;
+
+  std::string getSecurityProtocol() const override {
+    return "TLS";
+  }
+
+  void setEorTracking(bool track) override;
+  size_t getRawBytesWritten() const override;
+  size_t getRawBytesReceived() const override;
   void enableClientHelloParsing();
 
   /**
@@ -513,21 +515,21 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   /**
    * Get the certificate used for this SSL connection. May be null
    */
-  virtual const X509* getSelfCert() const override;
+  const X509* getSelfCert() const override;
 
-  virtual void attachEventBase(EventBase* eventBase) override {
+  void attachEventBase(EventBase* eventBase) override {
     AsyncSocket::attachEventBase(eventBase);
     handshakeTimeout_.attachEventBase(eventBase);
     connectionTimeout_.attachEventBase(eventBase);
   }
 
-  virtual void detachEventBase() override {
+  void detachEventBase() override {
     AsyncSocket::detachEventBase();
     handshakeTimeout_.detachEventBase();
     connectionTimeout_.detachEventBase();
   }
 
-  virtual bool isDetachable() const override {
+  bool isDetachable() const override {
     return AsyncSocket::isDetachable() && !handshakeTimeout_.isScheduled();
   }
 
@@ -675,7 +677,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
   /**
    * Returns the peer certificate, or nullptr if no peer certificate received.
    */
-  virtual ssl::X509UniquePtr getPeerCert() const override {
+  ssl::X509UniquePtr getPeerCert() const override {
     if (!ssl_) {
       return nullptr;
     }
@@ -734,7 +736,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
    * destroy() instead.  (See the documentation in DelayedDestruction.h for
    * more details.)
    */
-  ~AsyncSSLSocket();
+  ~AsyncSSLSocket() override;
 
   // Inherit event notification methods from AsyncSocket except
   // the following.
@@ -749,7 +751,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
                  int* sslErrorOut,
                  unsigned long* errErrorOut) noexcept;
 
-  virtual void checkForImmediateRead() noexcept override;
+  void checkForImmediateRead() noexcept override;
   // AsyncSocket calls this at the wrong time for SSL
   void handleInitialReadWrite() noexcept override {}
 
index 63ca06ed2007ae8d58a24a358d6b3b6dd167875b..ff2f539c20f455b2de01cc35e74ee1896221c4eb 100644 (file)
@@ -246,7 +246,7 @@ class AsyncServerSocket : public DelayedDestruction
    * time after destroy() returns.  They will not receive any more callback
    * invocations once acceptStopped() is invoked.
    */
-  virtual void destroy();
+  void destroy() override;
 
   /**
    * Attach this AsyncServerSocket to its primary EventBase.
@@ -268,7 +268,7 @@ class AsyncServerSocket : public DelayedDestruction
   /**
    * Get the EventBase used by this socket.
    */
-  EventBase* getEventBase() const {
+  EventBase* getEventBase() const override {
     return eventBase_;
   }
 
@@ -353,7 +353,7 @@ class AsyncServerSocket : public DelayedDestruction
    *
    * Throws TTransportException on error.
    */
-  void getAddress(SocketAddress* addressReturn) const;
+  void getAddress(SocketAddress* addressReturn) const override;
 
   /**
    * Get the local address to which the socket is bound.
@@ -717,7 +717,7 @@ class AsyncServerSocket : public DelayedDestruction
    *
    * Invoke destroy() instead to destroy the AsyncServerSocket.
    */
-  virtual ~AsyncServerSocket();
+  ~AsyncServerSocket() override;
 
  private:
   enum class MessageType {
@@ -750,12 +750,12 @@ class AsyncServerSocket : public DelayedDestruction
       : callback_(callback),
         connectionEventCallback_(connectionEventCallback) {}
 
-    ~RemoteAcceptor() = default;
+    ~RemoteAcceptor() override = default;
 
     void start(EventBase *eventBase, uint32_t maxAtOnce, uint32_t maxInQueue);
     void stop(EventBase* eventBase, AcceptCallback* callback);
 
-    virtual void messageAvailable(QueueMessage&& message) noexcept override;
+    void messageAvailable(QueueMessage&& message) noexcept override;
 
     NotificationQueue<QueueMessage>* getQueue() {
       return &queue_;
@@ -841,7 +841,7 @@ class AsyncServerSocket : public DelayedDestruction
     }
 
     // Inherited from EventHandler
-    virtual void handlerReady(uint16_t events) noexcept {
+    void handlerReady(uint16_t events) noexcept override {
       parent_->handlerReady(events, socket_, addressFamily_);
     }
 
index d4ddf0becaf2d0254ff5dd2b88045b539cd9d2a3..1bf1b4debd9a075f3752321781b06ef2136033c2 100644 (file)
@@ -320,7 +320,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
    * This prevents callers from deleting a AsyncSocket while it is invoking a
    * callback.
    */
-  virtual void destroy() override;
+  void destroy() override;
 
   /**
    * Get the EventBase used by this socket.
@@ -886,7 +886,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
    * destroy() instead.  (See the documentation in DelayedDestruction.h for
    * more details.)
    */
-  ~AsyncSocket();
+  ~AsyncSocket() override;
 
   friend std::ostream& operator << (std::ostream& os, const StateEnum& state);
 
@@ -919,7 +919,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
       : AsyncTimeout(eventBase)
       , socket_(socket) {}
 
-    virtual void timeoutExpired() noexcept {
+    void timeoutExpired() noexcept override {
       socket_->timeoutExpired();
     }
 
@@ -936,7 +936,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
       : EventHandler(eventBase, fd)
       , socket_(socket) {}
 
-    virtual void handlerReady(uint16_t events) noexcept {
+    void handlerReady(uint16_t events) noexcept override {
       socket_->ioReady(events);
     }
 
index 21e7a299e017c8f01d08fd96613dcfbefb00d716..2f626d840c015e33c1a490f9fc1f29825154b840 100644 (file)
@@ -248,7 +248,7 @@ struct async_timeout_wrapper:
     callback_(std::forward<UCallback>(callback))
   {}
 
-  void timeoutExpired() noexcept {
+  void timeoutExpired() noexcept override {
     static_assert(
       noexcept(std::declval<TCallback>()()),
       "callback must be declared noexcept, e.g.: `[]() noexcept {}`"
index 3d023c450d545d3cff7e2c6a3005b67b799f4ad9..7af32f2665fa44d702cbce849e3b1018770ca2a2 100644 (file)
@@ -345,7 +345,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase {
     return addr;
   }
 
-  virtual void getAddress(SocketAddress* address) const {
+  void getAddress(SocketAddress* address) const override {
     getLocalAddress(address);
   }
 
@@ -438,7 +438,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase {
   }
 
  protected:
-  virtual ~AsyncTransport() = default;
+  ~AsyncTransport() override = default;
 };
 
 class AsyncReader {
@@ -630,15 +630,22 @@ class AsyncTransportWrapper : virtual public AsyncTransport,
   // to keep compatibility.
   using ReadCallback    = AsyncReader::ReadCallback;
   using WriteCallback   = AsyncWriter::WriteCallback;
-  virtual void setReadCB(ReadCallback* callback) override = 0;
-  virtual ReadCallback* getReadCallback() const override = 0;
-  virtual void write(WriteCallback* callback, const void* buf, size_t bytes,
-                     WriteFlags flags = WriteFlags::NONE) override = 0;
-  virtual void writev(WriteCallback* callback, const iovec* vec, size_t count,
-                      WriteFlags flags = WriteFlags::NONE) override = 0;
-  virtual void writeChain(WriteCallback* callback,
-                          std::unique_ptr<IOBuf>&& buf,
-                          WriteFlags flags = WriteFlags::NONE) override = 0;
+  void setReadCB(ReadCallback* callback) override = 0;
+  ReadCallback* getReadCallback() const override = 0;
+  void write(
+      WriteCallback* callback,
+      const void* buf,
+      size_t bytes,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
+  void writev(
+      WriteCallback* callback,
+      const iovec* vec,
+      size_t count,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
+  void writeChain(
+      WriteCallback* callback,
+      std::unique_ptr<IOBuf>&& buf,
+      WriteFlags flags = WriteFlags::NONE) override = 0;
   /**
    * The transport wrapper may wrap another transport. This returns the
    * transport that is wrapped. It returns nullptr if there is no wrapped
index 651eb1cacd446fe6ded1e93c41d47cac839760c5..865865804f24a01195d7871af60f81c13bdb5637 100644 (file)
@@ -77,7 +77,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
         nextListener_(0) {
   }
 
-  ~AsyncUDPServerSocket() {
+  ~AsyncUDPServerSocket() override {
     if (socket_) {
       close();
     }
@@ -100,7 +100,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     return socket_->address();
   }
 
-  void getAddress(SocketAddress* a) const {
+  void getAddress(SocketAddress* a) const override {
     *a = address();
   }
 
@@ -136,19 +136,20 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     socket_.reset();
   }
 
-  EventBase* getEventBase() const {
+  EventBase* getEventBase() const override {
     return evb_;
   }
 
  private:
   // AsyncUDPSocket::ReadCallback
-  void getReadBuffer(void** buf, size_t* len) noexcept {
+  void getReadBuffer(void** buf, size_t* len) noexcept override {
     std::tie(*buf, *len) = buf_.preallocate(packetSize_, packetSize_);
   }
 
-  void onDataAvailable(const folly::SocketAddress& clientAddress,
-                       size_t len,
-                       bool truncated) noexcept {
+  void onDataAvailable(
+      const folly::SocketAddress& clientAddress,
+      size_t len,
+      bool truncated) noexcept override {
     buf_.postallocate(len);
     auto data = buf_.split(len);
 
@@ -182,14 +183,14 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
     ++nextListener_;
   }
 
-  void onReadError(const AsyncSocketException& ex) noexcept {
+  void onReadError(const AsyncSocketException& ex) noexcept override {
     LOG(ERROR) << ex.what();
 
     // Lets register to continue listening for packets
     socket_->resumeRead(this);
   }
 
-  void onReadClosed() noexcept {
+  void onReadClosed() noexcept override {
     for (auto& listener: listeners_) {
       auto callback = listener.second;
 
index 62a295d6e31e6e1a44834efdde403e6d5d38d5ef..4a5a7382af29545bf00987fd3b8344f71bcc89dc 100644 (file)
@@ -82,7 +82,7 @@ class AsyncUDPSocket : public EventHandler {
    * given eventbase
    */
   explicit AsyncUDPSocket(EventBase* evb);
-  ~AsyncUDPSocket();
+  ~AsyncUDPSocket() override;
 
   /**
    * Returns the address server is listening on
@@ -163,7 +163,7 @@ class AsyncUDPSocket : public EventHandler {
   AsyncUDPSocket& operator=(const AsyncUDPSocket&) = delete;
 
   // EventHandler
-  void handlerReady(uint16_t events) noexcept;
+  void handlerReady(uint16_t events) noexcept override;
 
   void handleRead() noexcept;
   bool updateRegistration() noexcept;
index 20baf7bfe3fab6292109feddadbcc00939668b62..06dc4196cb00cbf036f88edd230ad49b388afb8c 100644 (file)
@@ -34,16 +34,16 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
   }
 
   // folly::AsyncTransportWrapper
-  virtual ReadCallback* getReadCallback() const override {
+  ReadCallback* getReadCallback() const override {
     return transport_->getReadCallback();
   }
 
-  virtual void setReadCB(
+  void setReadCB(
       folly::AsyncTransportWrapper::ReadCallback* callback) override {
     transport_->setReadCB(callback);
   }
 
-  virtual void write(
+  void write(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const void* buf,
       size_t bytes,
@@ -51,14 +51,14 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
     transport_->write(callback, buf, bytes, flags);
   }
 
-  virtual void writeChain(
+  void writeChain(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       std::unique_ptr<folly::IOBuf>&& buf,
       folly::WriteFlags flags = folly::WriteFlags::NONE) override {
     transport_->writeChain(callback, std::move(buf), flags);
   }
 
-  virtual void writev(
+  void writev(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const iovec* vec,
       size_t bytes,
@@ -67,24 +67,24 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
   }
 
   // folly::AsyncSocketBase
-  virtual folly::EventBase* getEventBase() const override {
+  folly::EventBase* getEventBase() const override {
     return transport_->getEventBase();
   }
 
   // folly::AsyncTransport
-  virtual void attachEventBase(folly::EventBase* eventBase) override {
+  void attachEventBase(folly::EventBase* eventBase) override {
     transport_->attachEventBase(eventBase);
   }
 
-  virtual void close() override {
+  void close() override {
     transport_->close();
   }
 
-  virtual void closeNow() override {
+  void closeNow() override {
     transport_->closeNow();
   }
 
-  virtual void closeWithReset() override {
+  void closeWithReset() override {
     transport_->closeWithReset();
 
     // This will likely result in 2 closeNow() calls on the decorated transport,
@@ -92,105 +92,105 @@ class DecoratedAsyncTransportWrapper : public folly::AsyncTransportWrapper {
     closeNow();
   }
 
-  virtual bool connecting() const override {
+  bool connecting() const override {
     return transport_->connecting();
   }
 
-  virtual void detachEventBase() override {
+  void detachEventBase() override {
     transport_->detachEventBase();
   }
 
-  virtual bool error() const override {
+  bool error() const override {
     return transport_->error();
   }
 
-  virtual size_t getAppBytesReceived() const override {
+  size_t getAppBytesReceived() const override {
     return transport_->getAppBytesReceived();
   }
 
-  virtual size_t getAppBytesWritten() const override {
+  size_t getAppBytesWritten() const override {
     return transport_->getAppBytesWritten();
   }
 
-  virtual void getLocalAddress(folly::SocketAddress* address) const override {
+  void getLocalAddress(folly::SocketAddress* address) const override {
     return transport_->getLocalAddress(address);
   }
 
-  virtual void getPeerAddress(folly::SocketAddress* address) const override {
+  void getPeerAddress(folly::SocketAddress* address) const override {
     return transport_->getPeerAddress(address);
   }
 
-  virtual folly::ssl::X509UniquePtr getPeerCert() const override {
+  folly::ssl::X509UniquePtr getPeerCert() const override {
     return transport_->getPeerCert();
   }
 
-  virtual size_t getRawBytesReceived() const override {
+  size_t getRawBytesReceived() const override {
     return transport_->getRawBytesReceived();
   }
 
-  virtual size_t getRawBytesWritten() const override {
+  size_t getRawBytesWritten() const override {
     return transport_->getRawBytesWritten();
   }
 
-  virtual uint32_t getSendTimeout() const override {
+  uint32_t getSendTimeout() const override {
     return transport_->getSendTimeout();
   }
 
-  virtual bool good() const override {
+  bool good() const override {
     return transport_->good();
   }
 
-  virtual bool isDetachable() const override {
+  bool isDetachable() const override {
     return transport_->isDetachable();
   }
 
-  virtual bool isEorTrackingEnabled() const override {
+  bool isEorTrackingEnabled() const override {
     return transport_->isEorTrackingEnabled();
   }
 
-  virtual bool readable() const override {
+  bool readable() const override {
     return transport_->readable();
   }
 
-  virtual bool writable() const override {
+  bool writable() const override {
     return transport_->writable();
   }
 
-  virtual void setEorTracking(bool track) override {
+  void setEorTracking(bool track) override {
     return transport_->setEorTracking(track);
   }
 
-  virtual void setSendTimeout(uint32_t timeoutInMs) override {
+  void setSendTimeout(uint32_t timeoutInMs) override {
     transport_->setSendTimeout(timeoutInMs);
   }
 
-  virtual void shutdownWrite() override {
+  void shutdownWrite() override {
     transport_->shutdownWrite();
   }
 
-  virtual void shutdownWriteNow() override {
+  void shutdownWriteNow() override {
     transport_->shutdownWriteNow();
   }
 
-  virtual std::string getApplicationProtocol() noexcept override {
+  std::string getApplicationProtocol() noexcept override {
     return transport_->getApplicationProtocol();
   }
 
-  virtual std::string getSecurityProtocol() const override {
+  std::string getSecurityProtocol() const override {
     return transport_->getSecurityProtocol();
   }
 
-  virtual bool isReplaySafe() const override {
+  bool isReplaySafe() const override {
     return transport_->isReplaySafe();
   }
 
-  virtual void setReplaySafetyCallback(
+  void setReplaySafetyCallback(
       folly::AsyncTransport::ReplaySafetyCallback* callback) override {
     transport_->setReplaySafetyCallback(callback);
   }
 
  protected:
-  virtual ~DecoratedAsyncTransportWrapper() {}
+  ~DecoratedAsyncTransportWrapper() override {}
 
   typename T::UniquePtr transport_;
 };
index cb00899e647ef14081c43b0afc7d8e5ff50061cf..c46b8ff0d701b48e529d904caab0323ee1a556e2 100644 (file)
@@ -94,7 +94,7 @@ class DelayedDestruction : public DelayedDestructionBase {
    * shared_ptr using a DelayedDestruction::Destructor as the second argument
    * to the shared_ptr constructor.
    */
-  virtual ~DelayedDestruction() = default;
+  ~DelayedDestruction() override = default;
 
   DelayedDestruction()
     : destroyPending_(false) {
index 487af0547f09071c83bd1dd669a7645b2c3b5ee7..81fda805ead4578d2bf3e1160c3ded0f26c6352f 100644 (file)
@@ -221,7 +221,7 @@ class EventBase : private boost::noncopyable,
    *                              observer, max latency and avg loop time.
    */
   explicit EventBase(event_base* evb, bool enableTimeMeasurement = true);
-  ~EventBase();
+  ~EventBase() override;
 
   /**
    * Runs the event loop.
@@ -515,7 +515,7 @@ class EventBase : private boost::noncopyable,
    * first handler fired within that cycle.
    *
    */
-  void bumpHandlingTime() override final;
+  void bumpHandlingTime() final;
 
   class SmoothLoopTime {
    public:
@@ -617,16 +617,16 @@ class EventBase : private boost::noncopyable,
   // TimeoutManager
   void attachTimeoutManager(
       AsyncTimeout* obj,
-      TimeoutManager::InternalEnum internal) override final;
+      TimeoutManager::InternalEnum internal) final;
 
-  void detachTimeoutManager(AsyncTimeout* obj) override final;
+  void detachTimeoutManager(AsyncTimeout* obj) final;
 
   bool scheduleTimeout(AsyncTimeout* obj, TimeoutManager::timeout_type timeout)
-      override final;
+      final;
 
-  void cancelTimeout(AsyncTimeout* obj) override final;
+  void cancelTimeout(AsyncTimeout* obj) final;
 
-  bool isInTimeoutManagerThread() override final {
+  bool isInTimeoutManagerThread() final {
     return isInEventBaseThread();
   }
 
index 5b627f0f0723836afc8631f793624b51086cc573..b7d106a712bebed19f879788280f8f537c8d4b4d 100644 (file)
@@ -31,7 +31,7 @@ namespace detail {
 class EventBaseLocalBase : public EventBaseLocalBaseBase, boost::noncopyable {
  public:
   EventBaseLocalBase() {}
-  virtual ~EventBaseLocalBase();
+  ~EventBaseLocalBase() override;
   void erase(EventBase& evb);
   void onEventBaseDestruction(EventBase& evb) override;
 
index 844ff906bbbfa4107755832efa91603908ab046e..89cf1f17dd8cff128f039ebb2df1d05d856e1755 100644 (file)
@@ -254,7 +254,7 @@ class HHWheelTimer : private folly::AsyncTimeout,
    * Use destroy() instead.  See the comments in DelayedDestruction for more
    * details.
    */
-  virtual ~HHWheelTimer();
+  ~HHWheelTimer() override;
 
  private:
   // Forbidden copy constructor and assignment operator
@@ -262,7 +262,7 @@ class HHWheelTimer : private folly::AsyncTimeout,
   HHWheelTimer& operator=(HHWheelTimer const &) = delete;
 
   // Methods inherited from AsyncTimeout
-  virtual void timeoutExpired() noexcept;
+  void timeoutExpired() noexcept override;
 
   std::chrono::milliseconds interval_;
   std::chrono::milliseconds defaultTimeout_;
index 3018a5d93662678977a02ee53fc52c2bacc706bc..3b7d56d907c33c25ef8ae1e2d939d6c33a27f705 100644 (file)
@@ -172,7 +172,7 @@ class NotificationQueue {
 
     void destroy() override;
 
-    virtual ~Consumer() {}
+    ~Consumer() override {}
 
    private:
     /**
index 4719fdeac09abbf0a936dd88732c306fd54050c0..d02fd0e59ea1e16f8bb0d1599c71290e38c29ee5 100644 (file)
@@ -43,7 +43,7 @@ class VirtualEventBase : public folly::Executor, public folly::TimeoutManager {
   VirtualEventBase(const VirtualEventBase&) = delete;
   VirtualEventBase& operator=(const VirtualEventBase&) = delete;
 
-  ~VirtualEventBase();
+  ~VirtualEventBase() override;
 
   EventBase& getEventBase() {
     return evb_;
index cd147a45866b9bb16cb7a3560db1942d4ddc602a..db08daab4bf043bdc6a0d0bc497de3c35f5c6b55 100644 (file)
@@ -30,7 +30,7 @@ class WriteChainAsyncTransportWrapper :
  public:
   using DecoratedAsyncTransportWrapper<T>::DecoratedAsyncTransportWrapper;
 
-  virtual void write(
+  void write(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const void* buf,
       size_t bytes,
@@ -39,7 +39,7 @@ class WriteChainAsyncTransportWrapper :
     writeChain(callback, std::move(ioBuf), flags);
   }
 
-  virtual void writev(
+  void writev(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       const iovec* vec,
       size_t count,
@@ -65,7 +65,7 @@ class WriteChainAsyncTransportWrapper :
    * It only makes sense to use this class if you override writeChain, so force
    * derived classes to do that.
    */
-  virtual void writeChain(
+  void writeChain(
       folly::AsyncTransportWrapper::WriteCallback* callback,
       std::unique_ptr<folly::IOBuf>&& buf,
       folly::WriteFlags flags = folly::WriteFlags::NONE) override = 0;
index 3874f57890e716bb8b60647d6fdba638e6c999d7..36a680270c44b9bd54da95ade04b4dc2087cb76d 100644 (file)
@@ -1779,11 +1779,11 @@ TEST(AsyncSSLSocketTest, ConnectWriteReadCloseTFOWithTFOServerDisabled) {
 
 class ConnCallback : public AsyncSocket::ConnectCallback {
  public:
-  virtual void connectSuccess() noexcept override {
+  void connectSuccess() noexcept override {
     state = State::SUCCESS;
   }
 
-  virtual void connectErr(const AsyncSocketException& ex) noexcept override {
+  void connectErr(const AsyncSocketException& ex) noexcept override {
     state = State::ERROR;
     error = ex.what();
   }
index e4a73c19b0b491c30cbc7ed072c6cad1f2d83e59..d2acbf43258165148113925a4fd2641efaabc8a9 100644 (file)
@@ -133,7 +133,7 @@ public:
       , exception(AsyncSocketException::UNKNOWN, "none")
       , mcb_(mcb) {}
 
-  ~WriteCallbackBase() {
+  ~WriteCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -145,7 +145,7 @@ public:
     }
   }
 
-  virtual void writeSuccess() noexcept override {
+  void writeSuccess() noexcept override {
     std::cerr << "writeSuccess" << std::endl;
     state = STATE_SUCCEEDED;
   }
@@ -175,7 +175,7 @@ public:
   explicit ExpectWriteErrorCallback(SendMsgParamsCallbackBase* mcb = nullptr)
       : WriteCallbackBase(mcb) {}
 
-  ~ExpectWriteErrorCallback() {
+  ~ExpectWriteErrorCallback() override {
     EXPECT_EQ(STATE_FAILED, state);
     EXPECT_EQ(exception.type_,
              AsyncSocketException::AsyncSocketExceptionType::NETWORK_ERROR);
@@ -203,7 +203,7 @@ public:
   explicit WriteCheckTimestampCallback(SendMsgParamsCallbackBase* mcb = nullptr)
     : WriteCallbackBase(mcb) {}
 
-  ~WriteCheckTimestampCallback() {
+  ~WriteCheckTimestampCallback() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
     EXPECT_TRUE(gotTimestamp_);
     EXPECT_TRUE(gotByteSeq_);
@@ -283,7 +283,7 @@ public AsyncTransportWrapper::ReadCallback {
   explicit ReadCallbackBase(WriteCallbackBase* wcb)
       : wcb_(wcb), state(STATE_WAITING) {}
 
-  ~ReadCallbackBase() {
+  ~ReadCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -323,7 +323,7 @@ public:
       : ReadCallbackBase(wcb)
       , buffers() {}
 
-  ~ReadCallback() {
+  ~ReadCallback() override {
     for (std::vector<Buffer>::iterator it = buffers.begin();
          it != buffers.end();
          ++it) {
@@ -539,7 +539,7 @@ public:
     cv_.wait(lock, [this] { return state != STATE_WAITING; });
   }
 
-  ~HandshakeCallback() {
+  ~HandshakeCallback() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
@@ -570,7 +570,7 @@ public:
       SSLServerAcceptCallbackBase(hcb),
       timeout_(timeout) {}
 
-  virtual ~SSLServerAcceptCallback() {
+  ~SSLServerAcceptCallback() override {
     if (timeout_ > 0) {
       // if we set a timeout, we expect failure
       EXPECT_EQ(hcb_->state, STATE_FAILED);
@@ -1038,7 +1038,7 @@ class RenegotiatingServer : public AsyncSSLSocket::HandshakeCB,
     socket_->sslAccept(this);
   }
 
-  ~RenegotiatingServer() {
+  ~RenegotiatingServer() override {
     socket_->setReadCB(nullptr);
   }
 
@@ -1216,7 +1216,7 @@ class SSLClient : public AsyncSocket::ConnectCallback,
     memset(buf_, 'a', sizeof(buf_));
   }
 
-  ~SSLClient() {
+  ~SSLClient() override {
     if (session_) {
       SSL_SESSION_free(session_);
     }
index f6abde8b0eb5e1b87d88ca6ee27333fcfc401f36..b84251f787977a4dbd5ce5157a7e0f79e49eaf8b 100644 (file)
@@ -96,7 +96,7 @@ class ReadCallback : public folly::AsyncTransportWrapper::ReadCallback {
         buffers(),
         maxBufferSz(_maxBufferSz) {}
 
-  ~ReadCallback() {
+  ~ReadCallback() override {
     for (std::vector<Buffer>::iterator it = buffers.begin();
          it != buffers.end();
          ++it) {
index dacb8e54e8ff8fc84550648ee6082f7ee6a8700b..407552ac4e1b2e1d9165e0b390331192c8aadd09 100644 (file)
@@ -34,50 +34,50 @@ namespace test {
 class TestConnectionEventCallback
     : public AsyncServerSocket::ConnectionEventCallback {
  public:
-  virtual void onConnectionAccepted(
+  void onConnectionAccepted(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionAccepted_++;
   }
 
-  virtual void onConnectionAcceptError(const int /* err */) noexcept override {
+  void onConnectionAcceptError(const int /* err */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionAcceptedError_++;
   }
 
-  virtual void onConnectionDropped(
+  void onConnectionDropped(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionDropped_++;
   }
 
-  virtual void onConnectionEnqueuedForAcceptorCallback(
+  void onConnectionEnqueuedForAcceptorCallback(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionEnqueuedForAcceptCallback_++;
   }
 
-  virtual void onConnectionDequeuedByAcceptorCallback(
+  void onConnectionDequeuedByAcceptorCallback(
       const int /* socket */,
       const SocketAddress& /* addr */) noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     connectionDequeuedByAcceptCallback_++;
   }
 
-  virtual void onBackoffStarted() noexcept override {
+  void onBackoffStarted() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffStarted_++;
   }
 
-  virtual void onBackoffEnded() noexcept override {
+  void onBackoffEnded() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffEnded_++;
   }
 
-  virtual void onBackoffError() noexcept override {
+  void onBackoffError() noexcept override {
     folly::RWSpinLock::WriteHolder holder(spinLock_);
     backoffError_++;
   }
index 1f0c9597f53a2bef9df4fb399605101fd3094b33..7f05f5b6bf26d98a2bfbcadc7520ee2fbe13e09e 100644 (file)
@@ -20,8 +20,7 @@
 using namespace folly;
 
 class DeleteGuarder : public DelayedDestruction {
-
-  ~DeleteGuarder() {
+  ~DeleteGuarder() override {
     doFoo();
   }
 
index 7e5d9827d7d82dbac3aed22f3ec39b53a8b4b002..614f2303b756087494122790175456faad641299 100644 (file)
@@ -369,7 +369,7 @@ void QueueTest::destroyCallback() {
 
     std::function<void(int)> *fn;
    protected:
-    virtual ~DestroyTestConsumer() = default;
+    ~DestroyTestConsumer() override = default;
   };
 
   EventBase eventBase;
index 2ec6bfeda7de1abfa540a26bf4350d41425c937e..750ff7fac9bd0c3c2ad7c2f4e737aaf303d53e37 100644 (file)
@@ -131,7 +131,7 @@ TEST(RequestContext, deadlockTest) {
    public:
     explicit DeadlockTestData(const std::string& val) : val_(val) {}
 
-    virtual ~DeadlockTestData() {
+    ~DeadlockTestData() override {
       RequestContext::get()->setContextData(
           val_, std::make_unique<TestData>(1));
     }
index cc83a4b2cb57277a50dd73b211598d01e2c14a14..a25bbb894f5544f5bf5bd15a060112d127b1e2e6 100644 (file)
@@ -47,7 +47,7 @@ class SSLServerAcceptCallbackBase : public AsyncServerSocket::AcceptCallback {
   explicit SSLServerAcceptCallbackBase(HandshakeCallback* hcb)
       : state(STATE_WAITING), hcb_(hcb) {}
 
-  ~SSLServerAcceptCallbackBase() {
+  ~SSLServerAcceptCallbackBase() override {
     EXPECT_EQ(STATE_SUCCEEDED, state);
   }
 
index 28a7a85d23ed0a8e7f3e7b305172565570c3a35e..055fffe27eeb192eb1ccf103919f9fd69a5c9371 100644 (file)
@@ -69,7 +69,7 @@ class UndelayedDestruction : public TDD {
    * the object directly from the event loop (e.g., directly from a
    * EventBase::LoopCallback), or when the event loop is stopped.
    */
-  virtual ~UndelayedDestruction() {
+  ~UndelayedDestruction() override {
     // Crash if the caller is destroying us with outstanding destructor guards.
     if (this->getDestructorGuardCount() != 0) {
       abort();
index 7c1b803fb344fcb7176f1932d58a3d389ad1b1f1..10cf02ccd34fe5cf5613fd140b745bb0329fb933 100644 (file)
@@ -44,8 +44,7 @@ class TestWriteChainAsyncTransportWrapper :
   }
 
   // Allow this to be constructed on the stack for easier testing.
-  virtual ~TestWriteChainAsyncTransportWrapper() {
-  }
+  ~TestWriteChainAsyncTransportWrapper() override {}
 };
 
 MATCHER_P(BufMatches, expected, "") {
index 7ed6f1074bae76ef24ce43cccd9ff784810e2393..be95ea4dfef9a6496dee19d62f3a1a9de5bd2a60 100644 (file)
@@ -499,7 +499,7 @@ class TestEagerInitParallelExecutor : public folly::Executor {
     }
   }
 
-  virtual ~TestEagerInitParallelExecutor() override {
+  ~TestEagerInitParallelExecutor() override {
     for (auto eb : eventBases_) {
       eb->runInEventBaseThread([eb] { eb->terminateLoopSoon(); });
     }
@@ -508,7 +508,7 @@ class TestEagerInitParallelExecutor : public folly::Executor {
     }
   }
 
-  virtual void add(folly::Func func) override {
+  void add(folly::Func func) override {
     const auto index = (counter_ ++) % eventBases_.size();
     eventBases_[index]->add(std::move(func));
   }
index 28ecaeecbeb3c45e17575d4b532e417020ccc863..8a1d6a35cc522e3b721d9b5c31cd60ee6b6d31e2 100644 (file)
@@ -274,7 +274,7 @@ struct VirtualBase {
 struct VirtualImpl : VirtualBase {
   void foo() override { /* noop */
   }
-  virtual ~VirtualImpl() {}
+  ~VirtualImpl() override {}
 };
 
 #ifndef __clang__
index 74a822e30d601a33c7beb68a414622942e815dbd..7065695406eade9deac6fd2107b3fa51872fdf1a 100644 (file)
@@ -281,7 +281,7 @@ struct WriteFileAfterFork
     : public Subprocess::DangerousPostForkPreExecCallback {
   explicit WriteFileAfterFork(std::string filename)
     : filename_(std::move(filename)) {}
-  virtual ~WriteFileAfterFork() {}
+  ~WriteFileAfterFork() override {}
   int operator()() override {
     return writeFile(std::string("ok"), filename_.c_str()) ? 0 : errno;
   }