Default parameter values should be avoided in favor of method overloading. Why?
def add(a: Int, b: Int = 2) = a + b
List(1).map(add) // Compile error
def add2(a: Int) = add2(a, b = 2)
def add2(a: Int, b: Int) = a + b
diff --git a/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala b/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
index d78f809..a13c972 100644 | |
--- a/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
+++ b/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
@@ -17,6 +17,9 @@ import akka.util.Switch | |
import scala.concurrent.duration.Duration | |
import scala.util.control.NonFatal | |
import java.util.concurrent.TimeUnit | |
+import akka.actor.ActorSystem | |
+import akka.event.LoggingAdapter |
diff --git a/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala b/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
index d78f809..a13c972 100644 | |
--- a/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
+++ b/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala | |
@@ -17,6 +17,9 @@ import akka.util.Switch | |
import scala.concurrent.duration.Duration | |
import scala.util.control.NonFatal | |
import java.util.concurrent.TimeUnit | |
+import akka.actor.ActorSystem | |
+import akka.event.LoggingAdapter |
commit c6a47ed6c2f5a91fb7394ea7e9a3695af029aa0c | |
Author: Ólafur Páll Geirsson <[email protected]> | |
Date: Wed Sep 6 11:29:51 2017 +0200 | |
Undo manual fixes. | |
diff --git a/akka-actor/src/main/scala/akka/event/EventBus.scala b/akka-actor/src/main/scala/akka/event/EventBus.scala | |
index ff76b3c..d61fce4 100644 | |
--- a/akka-actor/src/main/scala/akka/event/EventBus.scala | |
+++ b/akka-actor/src/main/scala/akka/event/EventBus.scala |
import scalafix._ | |
import scala.meta._ | |
case object NoDefaultParams extends Rule("NoDefaultParams") { | |
val error = LintCategory.error( | |
"Default parameter values should be avoided, use method overloading instead. " + | |
"Details: https://gist.github.com/olafurpg/38699f591329c3bcff52b7412dcb696b" | |
) | |
override def check(ctx: RuleCtx): List[LintMessage] = ctx.tree.collect { | |
case param"..$_ $_: $_ = ${Some(default)}" => | |
error.at(s"default parameter values are not allowed.", default.pos) |
/* | |
rule = "https://gist.githubusercontent.com/olafurpg/7b022c7120156716def282028b091e8b/raw/2a83cfc22462804c53a9fb67d0c0220b8b82f124/NoDefaultParameters.scala" | |
*/ | |
package test | |
class NoDefaultParams { | |
def foo(e: Int = 2) = e // assert: NoDefaultParams | |
def bar(e: Int) = e | |
} |
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
1: tests/src/test-2.11/scala/records/test/[email protected]
2: _root_.spire.math.FpFilterExact#`===`(Lspire/math/FpFilter;Lspire/algebra/Signed;Lalgebra/ring/Rng;)Z.
2: _root_.records.test.Typecheck.typed(Ljava/lang/String;)V.
2: _root_.sourcecode.Text.apply(Ljava/lang/Object;)Lsourcecode/Text;.
2: _root_.spire.syntax.IsRealOps#isWhole()Z.
2: _root_.monix.types.Functor.Ops#map(Lscala/Function1;)Ljava/lang/Object;.
2: _root_.spire.syntax.BitStringOps#bitCount()I.
2: _root_.com.typesafe.scalalogging.Logger#debug(Ljava/lang/String;Ljava/lang/Throwable;)V.