tree 32257ad09da0afd06ed3bef82f19edfcf8e0ba4f
parent 0f6c86e10a7ea0d3609772e21edbd38e7b4630ae
author Darius Jokilehto <dariusjokilehto+os@gmail.com> 1685094194 +0100
committer Darius Jokilehto <dariusjokilehto+os@gmail.com> 1685094453 +0100

Fix feature warnings

We enable the feature flag so sbt displays the warnings.

The following warnings are fixed:

[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/AggregatedHistogramFilterByDates.scala:32:36: postfix operator >= should be enabled
[warn] by making the implicit value scala.language.postfixOps visible.
[warn] This can be achieved by adding the import clause 'import scala.language.postfixOps'
[warn] or by setting the compiler option -language:postfixOps.
[warn] See the Scaladoc for value scala.language.postfixOps for a discussion
[warn] why the feature should be explicitly enabled.
[warn]     if (from.fold(true)(commitDate >=) && to.fold(true)(commitDate <)) {
[warn]                                    ^
[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/AggregatedHistogramFilterByDates.scala:32:68: postfix operator < should be enabled
[warn] by making the implicit value scala.language.postfixOps visible.
[warn]     if (from.fold(true)(commitDate >=) && to.fold(true)(commitDate <)) {
[warn]                                                                    ^
[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/DateConversions.scala:21:16: implicit conversion method isoStringToLongDate should be enabled
[warn] by making the implicit value scala.language.implicitConversions visible.
[warn] This can be achieved by adding the import clause 'import scala.language.implicitConversions'
[warn] or by setting the compiler option -language:implicitConversions.
[warn] See the Scaladoc for value scala.language.implicitConversions for a discussion
[warn] why the feature should be explicitly enabled.
[warn]   implicit def isoStringToLongDate(s: String): Long = JavaSqlTimestampHelper.parseTimestamp(s).getTime
[warn]                ^

This warning will be fixed in a subsequent commit once we've bumped
Scala to a version containing `Using`.
[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/ManagedResources.scala:22:16: reflective access of structural type member method close should be enabled
[warn] by making the implicit value scala.language.reflectiveCalls visible.
[warn] This can be achieved by adding the import clause 'import scala.language.reflectiveCalls'
[warn] or by setting the compiler option -language:reflectiveCalls.
[warn] See the Scaladoc for value scala.language.reflectiveCalls for a discussion
[warn] why the feature should be explicitly enabled.
[warn]       resource.close()
[warn]                ^
[warn] four warnings found

Change-Id: I0f7ee02cba2cae2878fe4d5299044e15e5aead56
