`-Wunused:locals` gives false positives for some calls to transparent inline functions
Compiler version
3.3.0
Minimized code
//> using option -Wunused:locals
//> using scala 3.3.0
class PartiallyApplied[A] {
transparent inline def func[B](): Nothing = ???
}
def call[A] = new PartiallyApplied[A]
def good = call[Int].func[String]()
def bad = { call[Int].func[String]() }
Output
-- Warning: /home/...snip.../Foo.scala:11:34 -------------------
11 |def bad = { call[Int].func[String]() }
| ^
| unused local definition
1 warning found
Expectation
No warnings are issued.
Other
This affects Monocle's macros such as GenLens.
I'm not certain whether or not my example can be minimized further. Interestingly, calling a transparent inline function directly doesn't trigger any warnings.
//> using option -Wunused:locals
//> using scala 3.3.0
transparent inline def func2[A]() = ???
def good2a = func2[Int]()
def good2b = { func2[Int]() }
looks like my own lens macro suffers the same issue, and it's a bit annoying to switch off warnings where ever i construct a lens. is there a workaround i can try maybe?
any news on this? the problem still seems to persist in 3.4.0-RC1
It has to do with the tree representation Inlined; it must learn to ignore the bindings that are warning.
looks like my own lens macro suffers the same issue
Also faced this issue in https://github.com/optics-dev/Monocle/issues/1484
@jtjeferreira thanks I just returned to my PR to fix unused bugs, so I'll try out your example. Sorry I missed last release cycle. Assigned myself as a reminder.