False positive unused warning in 3.7 nightly on extension method with default argument
Closed this issue · 1 comments
mrdziuban commented
Compiler version
3.7.0-RC1-bin-20250306-73ba485-NIGHTLY
Minimized code
With -Wunused:params enabled:
import java.time.ZonedDateTime
trait Foo[A] {
def apply(a: A, t: ZonedDateTime): A
}
extension [A](a: A)(using f: Foo[A]) {
def foo(t: ZonedDateTime = ZonedDateTime.now): A = f(a, t)
}Output
-- [E198] Unused Symbol Warning: /Users/matt/scala3.7-nightly-unused/src/main/scala/example/Test.scala:7:14 ------------
7 |extension [A](a: A)(using f: Foo[A]) {
| ^
| unused explicit parameter
-- [E198] Unused Symbol Warning: /Users/matt/scala3.7-nightly-unused/src/main/scala/example/Test.scala:7:26 ------------
7 |extension [A](a: A)(using f: Foo[A]) {
| ^
| unused implicit parameterExpectation
Both a and f are used in def foo so they should not be reported unused
som-snytt commented
I guess because defaults get dependencies they don't use.
def foo$default$3[A >: Nothing <: Any](a: A)(using f: Foo[A]):
java.time.ZonedDateTime @uncheckedVariance = java.time.ZonedDateTime.now()
}