Skip to content

Commit 656f2c5

Browse files
authored
CheckUnused examines type of Apply (#24465)
Fixes #24457 Record type of apply.
2 parents 01e92e0 + e258c87 commit 656f2c5

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

compiler/src/dotty/tools/dotc/transform/CheckUnused.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ class CheckUnused private (phaseMode: PhaseMode, suffix: String) extends MiniPha
122122
case Apply(Select(left, nme.Equals | nme.NotEquals), right :: Nil) =>
123123
val caneq = defn.CanEqualClass.typeRef.appliedTo(left.tpe.widen :: right.tpe.widen :: Nil)
124124
resolveScoped(caneq)
125-
case _ =>
125+
case tree =>
126+
refUsage(tree.tpe.typeSymbol)
126127
tree
127128

128129
override def transformTypeApply(tree: TypeApply)(using Context): tree.type =

tests/warn/i24457.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//> using options -Werror -Wunused:all
2+
///> using scala 3.8.0-RC1
3+
4+
object test {
5+
private case class Impl()
6+
inline def makeImpl(): Any = Impl() // inline is not germane
7+
8+
def seth =
9+
case class Loop()
10+
println(Loop())
11+
}
12+
13+
@main def main = println:
14+
test.makeImpl()

tests/warn/i24459.scala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//> using options -Werror -Wunused:all
2+
///> using scala 3.8.0-RC1
3+
4+
trait Suite {
5+
inline def test(body: => Any): Any = body
6+
}
7+
8+
object Test {
9+
private case class I()
10+
}
11+
12+
class Test extends Suite {
13+
test {
14+
val i = Test.I()
15+
i.hashCode
16+
}
17+
}

0 commit comments

Comments
 (0)