Skip to content

False positive unused given in extensions when referring to type alias #23250

Closed
@WojciechMazur

Description

@WojciechMazur

Similar to #23125 but this one still fails in main

Compiler version

Last good release: 3.7.0-RC1-bin-20250118-b801042-NIGHTLY
First bad release: 3.7.0-RC1-bin-20250227-1b0be01-NIGHTLY
Affects 3.7.0, 3.7.1-RC2
Bisect points to c65d45d

Minimized code

//> using options -Wunused:all -Werror

trait MonadError[F[_], E]
type MonadThrow[F[_]] = MonadError[F, Throwable]

trait MetaStreams[F[_]]:
  def use[A]: F[A] = ???
trait WriteResult

trait MetaStreamsSyntax:
  extension [F[_]](ms: MetaStreams[F])(using MonadThrow[F])
    def setMaxAge(): F[WriteResult] = 
      summon[MonadThrow[F]]
      ms.use[WriteResult]

    def setTruncateBefore(): F[WriteResult] =
      ms.use[WriteResult]

Output

[error] ./test.scala:13:46
[error] unused implicit parameter
[error]   extension [F[_]](ms: MetaStreams[F])(using MonadThrow[F])
[error]                                              ^

Expectation

Should not report unused MonadThrow

Metadata

Metadata

Assignees

Labels

area:lintingLinting warnings enabled with -W or -Xlintitype:bugregressionThis worked in a previous version but doesn't anymore

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions