1
1
package dotty .tools .dotc .transform
2
2
3
3
import dotty .tools .dotc .ast .tpd
4
- import dotty .tools .dotc .ast .tpd .TreeTraverser
4
+ import dotty .tools .dotc .ast .tpd .{ Inlined , TreeTraverser }
5
5
import dotty .tools .dotc .ast .untpd
6
6
import dotty .tools .dotc .ast .untpd .ImportSelector
7
7
import dotty .tools .dotc .config .ScalaSettings
@@ -59,6 +59,7 @@ class CheckUnused extends MiniPhase:
59
59
// ========== SETUP ============
60
60
61
61
override def prepareForUnit (tree : tpd.Tree )(using Context ): Context =
62
+ println(tree)
62
63
val data = UnusedData ()
63
64
val fresh = ctx.fresh.setProperty(_key, data)
64
65
fresh
@@ -75,15 +76,16 @@ class CheckUnused extends MiniPhase:
75
76
traverser.traverse(tree)
76
77
ctx
77
78
79
+ def prepareForInlined (tree : Inlined )(using Context ): Context =
80
+ traverser.traverse(tree.call)
81
+ ctx
82
+
78
83
override def prepareForIdent (tree : tpd.Ident )(using Context ): Context =
79
84
if tree.symbol.exists then
80
85
val prefixes = LazyList .iterate(tree.typeOpt.normalizedPrefix)(_.normalizedPrefix).takeWhile(_ != NoType )
81
86
.take(10 ) // Failsafe for the odd case if there was an infinite cycle
82
- for {
83
- prefix <- prefixes
84
- } {
87
+ for prefix <- prefixes do
85
88
unusedDataApply(_.registerUsed(prefix.classSymbol, None ))
86
- }
87
89
unusedDataApply(_.registerUsed(tree.symbol, Some (tree.name)))
88
90
else if tree.hasType then
89
91
unusedDataApply(_.registerUsed(tree.tpe.classSymbol, Some (tree.name)))
0 commit comments