diff --git a/app/current/src/main/scala/io/scalajs/nodejs/fs/FSWatcher.scala b/app/current/src/main/scala/io/scalajs/nodejs/fs/FSWatcher.scala
index cac2e2e82..95825092f 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/fs/FSWatcher.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/fs/FSWatcher.scala
@@ -28,7 +28,7 @@ object FSWatcher {
/**
* File System Watcher Extensions
*/
- implicit class FSWatcherExtensions(val watcher: FSWatcher) extends AnyVal {
+ implicit final class FSWatcherExtensions(val watcher: FSWatcher) extends AnyVal {
/**
* Emitted when something changes in a watched directory or file. See more details in fs.watch().
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/fs/ReadStream.scala b/app/current/src/main/scala/io/scalajs/nodejs/fs/ReadStream.scala
index 1ccfb0001..09b2037bc 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/fs/ReadStream.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/fs/ReadStream.scala
@@ -57,7 +57,7 @@ object ReadStream {
/**
* Read Stream Events
*/
- implicit class ReadStreamEvents(val stream: ReadStream) extends AnyVal {
+ implicit final class ReadStreamEvents(val stream: ReadStream) extends AnyVal {
/**
* Emitted when the ReadStream's underlying file descriptor has been closed using the fs.close() method.
@@ -83,7 +83,7 @@ object ReadStream {
/**
* Read Stream Extensions
*/
- implicit class ReadStreamExtensions(val stream: ReadStream) extends AnyVal {
+ implicit final class ReadStreamExtensions(val stream: ReadStream) extends AnyVal {
@inline
def closeFuture: Future[Unit] = promiseCallback1[Unit](stream.close)
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/fs/WriteStream.scala b/app/current/src/main/scala/io/scalajs/nodejs/fs/WriteStream.scala
index 730d5ff0d..1f079ae17 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/fs/WriteStream.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/fs/WriteStream.scala
@@ -54,7 +54,7 @@ object WriteStream {
/**
* Write Stream Events
*/
- implicit class WriteStreamEvents(val stream: WriteStream) extends AnyVal {
+ implicit final class WriteStreamEvents(val stream: WriteStream) extends AnyVal {
/**
* Emitted when the WriteStream's underlying file descriptor has been closed using the fs.close() method.
@@ -80,7 +80,7 @@ object WriteStream {
/**
* Write Stream Extensions
*/
- implicit class WriteStreamExtensions(val stream: WriteStream) extends AnyVal {
+ implicit final class WriteStreamExtensions(val stream: WriteStream) extends AnyVal {
@inline
def closeFuture: Future[Unit] = promiseCallback1[Unit](stream.close)
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/fs/package.scala b/app/current/src/main/scala/io/scalajs/nodejs/fs/package.scala
index 7d7a1d02f..c5a6d8320 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/fs/package.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/fs/package.scala
@@ -36,7 +36,7 @@ package object fs {
* File System Extensions
* @param fs the given [[Fs file system]] instance
*/
- final implicit class FsExtensions(private val fs: Fs) extends AnyVal {
+ implicit final class FsExtensions(private val fs: Fs) extends AnyVal {
@inline
def accessFuture(path: Buffer | String): Future[Unit] = {
promiseWithError0[FileIOError](fs.access(path, _))
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/http/Server.scala b/app/current/src/main/scala/io/scalajs/nodejs/http/Server.scala
index 88eef1048..9dd9baa50 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/http/Server.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/http/Server.scala
@@ -32,7 +32,7 @@ object Server {
* Server Events
* @param server the given [[Server]]
*/
- final implicit class ServerEvents(val server: Server) extends AnyVal {
+ implicit final class ServerEvents(val server: Server) extends AnyVal {
/**
* Emitted each time a request with an HTTP Expect: 100-continue is received. If this event is not listened for,
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/https/package.scala b/app/current/src/main/scala/io/scalajs/nodejs/https/package.scala
index b5e946cea..6953001bf 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/https/package.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/https/package.scala
@@ -16,7 +16,7 @@ package object https {
/**
* Https Extensions
*/
- final implicit class HttpExtensions(val https: Https) extends AnyVal {
+ implicit final class HttpExtensions(val https: Https) extends AnyVal {
/**
* Like http.get() but for HTTPS.
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/net/package.scala b/app/current/src/main/scala/io/scalajs/nodejs/net/package.scala
index d0b1ec69e..1dac4d796 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/net/package.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/net/package.scala
@@ -17,7 +17,7 @@ package object net {
* net.Server Events
* @param server the given [[Server server]]
*/
- implicit class ServerEvents(val server: Server) extends AnyVal {
+ implicit final class ServerEvents(val server: Server) extends AnyVal {
/**
* Emitted when a new connection is made. socket is an instance of net.Socket.
@@ -46,7 +46,7 @@ package object net {
* net.Socket Extensions
* @param socket the given [[Socket socket]]
*/
- implicit class SocketExtensions(val socket: Socket) extends AnyVal {
+ implicit final class SocketExtensions(val socket: Socket) extends AnyVal {
/////////////////////////////////////////////////////////////////////////////////
// Futures
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/readline/Interface.scala b/app/current/src/main/scala/io/scalajs/nodejs/readline/Interface.scala
index 99b434604..e21026a3c 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/readline/Interface.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/readline/Interface.scala
@@ -100,7 +100,7 @@ object Interface {
* Readline Interface Events
* @param readline the given [[Interface Readline Interface]]
*/
- implicit class ReadlineEvents(val readline: Interface) extends AnyVal {
+ implicit final class ReadlineEvents(val readline: Interface) extends AnyVal {
/**
* Emitted when close() is called. Also emitted when the input stream receives its 'end' event.
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/repl/REPLServer.scala b/app/current/src/main/scala/io/scalajs/nodejs/repl/REPLServer.scala
index 41c804b28..306b3383b 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/repl/REPLServer.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/repl/REPLServer.scala
@@ -76,7 +76,7 @@ object REPLServer {
* REPL Server Extensions
* @param server the given [[REPLServer REPL Server]]
*/
- final implicit class REPLServerExtensions[T <: REPLServer](val server: T) extends AnyVal {
+ implicit final class REPLServerExtensions[T <: REPLServer](val server: T) extends AnyVal {
/**
* Emitted when the user exits the REPL in any of the defined ways. Namely, typing .exit at the repl,
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/repl/package.scala b/app/current/src/main/scala/io/scalajs/nodejs/repl/package.scala
index 823a519e6..cd4889d32 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/repl/package.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/repl/package.scala
@@ -13,7 +13,7 @@ package object repl {
* REPL Server events
* @param server the given [[REPLServer instance]]
*/
- final implicit class REPLServerEvents(val server: REPLServer) extends AnyVal {
+ implicit final class REPLServerEvents(val server: REPLServer) extends AnyVal {
@inline
def contextAs[T]: T = server.context.asInstanceOf[T]
@@ -47,7 +47,7 @@ package object repl {
*
NODE_REPL_MODE
*
*/
- final implicit class EnvironmentVariableOptions(private val env: process.Environment) extends AnyVal {
+ implicit final class EnvironmentVariableOptions(private val env: process.Environment) extends AnyVal {
/**
* When a valid path is given, persistent REPL history will be saved to the specified file rather
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/timers/Immediate.scala b/app/current/src/main/scala/io/scalajs/nodejs/timers/Immediate.scala
index d2410b948..1cd285e9b 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/timers/Immediate.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/timers/Immediate.scala
@@ -32,7 +32,7 @@ object Immediate {
* Immediate Enrichment
* @param immediate the given [[Immediate immediate]] handle
*/
- implicit class ImmediateEnrichment(val immediate: Immediate) extends AnyVal {
+ implicit final class ImmediateEnrichment(val immediate: Immediate) extends AnyVal {
@inline
def clear(): Unit = clearImmediate(immediate)
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/timers/Interval.scala b/app/current/src/main/scala/io/scalajs/nodejs/timers/Interval.scala
index dddde1a93..5217862ca 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/timers/Interval.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/timers/Interval.scala
@@ -27,7 +27,7 @@ object Interval {
* Interval Enrichment
* @param handle the given [[Interval interval]] handle
*/
- implicit class IntervalEnrichment(val handle: Interval) extends AnyVal {
+ implicit final class IntervalEnrichment(val handle: Interval) extends AnyVal {
@inline
def clear(): Unit = clearInterval(handle)
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/timers/Timeout.scala b/app/current/src/main/scala/io/scalajs/nodejs/timers/Timeout.scala
index 62fca15c7..903167711 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/timers/Timeout.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/timers/Timeout.scala
@@ -35,7 +35,7 @@ object Timeout {
* Timeout Enrichment
* @param handle the given [[Timeout timeout]] handle
*/
- implicit class TimeoutEnrichment(val handle: Timeout) extends AnyVal {
+ implicit final class TimeoutEnrichment(val handle: Timeout) extends AnyVal {
@inline
def clear(): Unit = clearTimeout(handle)
diff --git a/app/current/src/main/scala/io/scalajs/nodejs/tty/package.scala b/app/current/src/main/scala/io/scalajs/nodejs/tty/package.scala
index 944c792cd..9d983d6ee 100644
--- a/app/current/src/main/scala/io/scalajs/nodejs/tty/package.scala
+++ b/app/current/src/main/scala/io/scalajs/nodejs/tty/package.scala
@@ -9,7 +9,7 @@ package object tty {
* Write Stream Events
* @param stream the given [[WriteStream stream]]
*/
- implicit class WriteStreamEvents(val stream: WriteStream) extends AnyVal {
+ implicit final class WriteStreamEvents(val stream: WriteStream) extends AnyVal {
/**
* The 'resize' event is emitted whenever either of the writeStream.columns or writeStream.rows properties have
diff --git a/core/src/main/scala/io/scalajs/collection/JsCollection.scala b/core/src/main/scala/io/scalajs/collection/JsCollection.scala
index 1e4067116..cb921b2ce 100644
--- a/core/src/main/scala/io/scalajs/collection/JsCollection.scala
+++ b/core/src/main/scala/io/scalajs/collection/JsCollection.scala
@@ -40,7 +40,7 @@ object JsCollection {
* JavaScript Collection Enrichment
* @param collection the given [[JsCollection collection]]
*/
- implicit class JsCollectionEnrichment[T](val collection: JsCollection[T]) extends AnyVal {
+ implicit final class JsCollectionEnrichment[T](val collection: JsCollection[T]) extends AnyVal {
@inline
def get(index: Int): Option[T] = Option(collection(index))
diff --git a/core/src/main/scala/io/scalajs/package.scala b/core/src/main/scala/io/scalajs/package.scala
index 128f11d7c..3043eb5ff 100644
--- a/core/src/main/scala/io/scalajs/package.scala
+++ b/core/src/main/scala/io/scalajs/package.scala
@@ -18,7 +18,7 @@ package object scalajs {
* JSON Enrichment
* @param json the given [[JSON]] object
*/
- implicit class JSONEnrichment(val json: JSON) extends AnyVal {
+ implicit final class JSONEnrichment(val json: JSON) extends AnyVal {
@inline
def parseAs[T](text: String): T = json.parse(text).asInstanceOf[T]
diff --git a/core/src/main/scala/io/scalajs/util/DateHelper.scala b/core/src/main/scala/io/scalajs/util/DateHelper.scala
index 31fcca1ff..ee091f4ff 100644
--- a/core/src/main/scala/io/scalajs/util/DateHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/DateHelper.scala
@@ -12,7 +12,7 @@ object DateHelper {
* Date Enrichment
* @param date0 the given [[js.Date date]]
*/
- implicit class DateEnrichment(val date0: js.Date) extends AnyVal {
+ implicit final class DateEnrichment(private val date0: js.Date) extends AnyVal {
@inline
def +(duration: Duration) = new js.Date(date0.getTime() + duration.toMillis)
@@ -41,7 +41,7 @@ object DateHelper {
* Duration Enrichment
* @param duration the given [[Duration duration]]
*/
- implicit class DurationEnrichment(val duration: Duration) extends AnyVal {
+ implicit final class DurationEnrichment(private val duration: Duration) extends AnyVal {
@inline
def +(date: js.Date) = new js.Date(date.getTime() + duration.toMillis)
diff --git a/core/src/main/scala/io/scalajs/util/JSONHelper.scala b/core/src/main/scala/io/scalajs/util/JSONHelper.scala
index cf4c09722..e951d2ffa 100644
--- a/core/src/main/scala/io/scalajs/util/JSONHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/JSONHelper.scala
@@ -13,7 +13,7 @@ object JSONHelper {
* JSON Conversions
* @param value the given JavaScript value
*/
- implicit class JSONConversionsToJson[T <: js.Any](val value: T) extends AnyVal {
+ implicit final class JSONConversionsToJson[T <: js.Any](val value: T) extends AnyVal {
@inline
def toJson: String = JSON.stringify(value)
@@ -27,7 +27,7 @@ object JSONHelper {
* JSON Conversions
* @param text the given text string
*/
- implicit class JSONConversionFromJson(val text: String) extends AnyVal {
+ implicit final class JSONConversionFromJson(val text: String) extends AnyVal {
@inline
def fromJson[T <: js.Any]: T = JSON.parse(text).asInstanceOf[T]
diff --git a/core/src/main/scala/io/scalajs/util/JsUnderOrHelper.scala b/core/src/main/scala/io/scalajs/util/JsUnderOrHelper.scala
index f347d1668..7e803ef5e 100644
--- a/core/src/main/scala/io/scalajs/util/JsUnderOrHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/JsUnderOrHelper.scala
@@ -12,7 +12,7 @@ object JsUnderOrHelper {
* UndefOr Extensions
* @param valueA the given [[js.UndefOr value]]
*/
- implicit class UndefOrExtensions[T](val valueA: js.UndefOr[T]) extends AnyVal {
+ implicit final class UndefOrExtensions[T](private val valueA: js.UndefOr[T]) extends AnyVal {
@inline def ?==(valueB: js.UndefOr[T]): Boolean = valueA.exists(valueB.contains)
@@ -40,7 +40,7 @@ object JsUnderOrHelper {
* UndefOr Boolean Extensions
* @param value the given [[js.UndefOr value]]
*/
- implicit class UndefOrBoolExtensions(val value: js.UndefOr[Boolean]) extends AnyVal {
+ implicit final class UndefOrBoolExtensions(private val value: js.UndefOr[Boolean]) extends AnyVal {
@inline
def isTrue: Boolean = value.flat.contains(true)
@@ -51,7 +51,7 @@ object JsUnderOrHelper {
* UndefOr Double Extensions
* @param value the given [[js.UndefOr value]]
*/
- implicit class UndefOrDoubleExtensions(val value: js.UndefOr[Double]) extends AnyVal {
+ implicit final class UndefOrDoubleExtensions(val value: js.UndefOr[Double]) extends AnyVal {
@inline
def orZero: Double = value.flat getOrElse 0.0
@@ -62,7 +62,7 @@ object JsUnderOrHelper {
* UndefOr Integer Extensions
* @param value the given [[js.UndefOr value]]
*/
- implicit class UndefOrIntExtensions(val value: js.UndefOr[Int]) extends AnyVal {
+ implicit final class UndefOrIntExtensions(val value: js.UndefOr[Int]) extends AnyVal {
@inline
def orZero: Int = value.flat getOrElse 0
diff --git a/core/src/main/scala/io/scalajs/util/OptionHelper.scala b/core/src/main/scala/io/scalajs/util/OptionHelper.scala
index 232996b22..9be5b14c5 100644
--- a/core/src/main/scala/io/scalajs/util/OptionHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/OptionHelper.scala
@@ -13,7 +13,7 @@ object OptionHelper {
* Option Extensions
* @param valueA the given [[Option optional value]]
*/
- implicit class OptionExtensions[T](val valueA: Option[T]) extends AnyVal {
+ implicit final class OptionExtensions[T](val valueA: Option[T]) extends AnyVal {
@inline def ?==(valueB: js.UndefOr[T]): Boolean = valueA.exists(v => valueB.exists(_ == v))
@@ -39,7 +39,7 @@ object OptionHelper {
* Option Boolean Extensions
* @param value the given [[Option value]]
*/
- implicit class OptionBoolExtensions(val value: Option[Boolean]) extends AnyVal {
+ implicit final class OptionBoolExtensions(val value: Option[Boolean]) extends AnyVal {
@inline def isTrue: Boolean = value.contains(true)
@@ -49,7 +49,7 @@ object OptionHelper {
* Option Double Extensions
* @param value the given [[Option value]]
*/
- implicit class OptionDoubleExtensions(val value: Option[Double]) extends AnyVal {
+ implicit final class OptionDoubleExtensions(val value: Option[Double]) extends AnyVal {
@inline def orZero: Double = value getOrElse 0.0
@@ -59,7 +59,7 @@ object OptionHelper {
* Option Integer Extensions
* @param value the given [[Option value]]
*/
- implicit class OptionIntExtensions(val value: Option[Int]) extends AnyVal {
+ implicit final class OptionIntExtensions(val value: Option[Int]) extends AnyVal {
@inline def orZero: Int = value getOrElse 0
diff --git a/core/src/main/scala/io/scalajs/util/PromiseHelper.scala b/core/src/main/scala/io/scalajs/util/PromiseHelper.scala
index 8649d8b52..07dd11315 100644
--- a/core/src/main/scala/io/scalajs/util/PromiseHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/PromiseHelper.scala
@@ -273,7 +273,7 @@ object PromiseHelper {
* @param task the given [[Future task]]
* @tparam T the return type of the task
*/
- implicit class TimeExtensions[T](val task: Future[T]) extends AnyVal {
+ implicit final class TimeExtensions[T](val task: Future[T]) extends AnyVal {
@inline
def withTimer(action: String, showHeader: Boolean = false)(implicit ec: ExecutionContext): Future[T] = {
diff --git a/core/src/main/scala/io/scalajs/util/ScalaJsHelper.scala b/core/src/main/scala/io/scalajs/util/ScalaJsHelper.scala
index a49b4e5b2..3e31601bf 100644
--- a/core/src/main/scala/io/scalajs/util/ScalaJsHelper.scala
+++ b/core/src/main/scala/io/scalajs/util/ScalaJsHelper.scala
@@ -30,7 +30,7 @@ object ScalaJsHelper {
* js.Dynamic to Value Extensions
* @param obj the given [[js.Dynamic object]]
*/
- implicit class JsAnyExtensions(val obj: js.Any) extends AnyVal {
+ implicit final class JsAnyExtensions(val obj: js.Any) extends AnyVal {
@inline
def asUndefOr[T]: js.UndefOr[T] = obj.asInstanceOf[js.UndefOr[T]].flat
@@ -61,7 +61,7 @@ object ScalaJsHelper {
* js.Array Extensions
* @param array the given [[js.Array array]]
*/
- implicit class JsArrayExtensions[A](val array: js.Array[A]) extends AnyVal {
+ implicit final class JsArrayExtensions[A](val array: js.Array[A]) extends AnyVal {
@inline
def indexWhereOpt(f: A => Boolean): Option[Int] = array.indexWhere(f) match {
@@ -83,7 +83,7 @@ object ScalaJsHelper {
* js.Dictionary Extensions
* @param dict the given [[js.Dictionary dictionary]]
*/
- implicit class JsDictionaryExtensions[A](val dict: js.Dictionary[A]) extends AnyVal {
+ implicit final class JsDictionaryExtensions[A](val dict: js.Dictionary[A]) extends AnyVal {
@inline
def replaceWith(items: (String, A)*): Unit = {