Skip to content

Commit 916eac9

Browse files
committed
add @inline implicit AnyVal benchs
1 parent 1822b50 commit 916eac9

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/main/scala/ImplicitClassTest.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,19 @@ object implicitClasses {
88

99
implicit final class ImplicitStandard[A](val oa: Option[A]) { def bar = oa.isDefined }
1010
implicit final class ImplicitAnyVal[A](val oa: Option[A]) extends AnyVal { def bar = oa.isDefined }
11+
@inline implicit final class ImplicitInlineAnyVal[A](val oa: Option[A]) extends AnyVal { def bar = oa.isDefined }
1112

1213
}
1314

1415
object implicitFunctions {
1516

1617
final class ImplicitStandard[A](val oa: Option[A]) { def bar = oa.isDefined }
1718
final class ImplicitAnyVal[A](val oa: Option[A]) extends AnyVal { def bar = oa.isDefined }
19+
@inline final class ImplicitInlineAnyVal[A](val oa: Option[A]) extends AnyVal { def bar = oa.isDefined }
1820

1921
implicit def toStandard[A](oa: Option[A]) = new ImplicitStandard(oa)
2022
implicit def toAnyVal[A](oa: Option[A]) = new ImplicitAnyVal(oa)
23+
@inline implicit def toInlineAnyVal[A](oa: Option[A]) = new ImplicitInlineAnyVal(oa)
2124
}
2225

2326
@State(Scope.Thread)
@@ -40,6 +43,12 @@ class ImplicitClassTest {
4043
option.bar
4144
}
4245

46+
@Benchmark
47+
def testClassInlineAnyVal = {
48+
import implicitClasses.ImplicitAnyVal
49+
option.bar
50+
}
51+
4352
@Benchmark
4453
def testFunctionStandard = {
4554
import implicitFunctions.toStandard
@@ -51,4 +60,10 @@ class ImplicitClassTest {
5160
import implicitFunctions.toAnyVal
5261
option.bar
5362
}
63+
64+
@Benchmark
65+
def testFunctionInlineAnyVal = {
66+
import implicitFunctions.toInlineAnyVal
67+
option.bar
68+
}
5469
}

0 commit comments

Comments
 (0)