Skip to content

False positive unused warning in 3.7 nightly on extension method with default argument #22746

Closed
@mrdziuban

Description

@mrdziuban

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 parameter

Expectation

Both a and f are used in def foo so they should not be reported unused

Metadata

Metadata

Assignees

Labels

area:lintingLinting warnings enabled with -W or -Xlintitype:bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions