@@ -17,6 +17,7 @@ import dotty.tools.dotc.transform.TreeTransforms.{MiniPhaseTransform, Transforme
1717 *
1818 * if `unused val x: T = ...` including parameters
1919 * then `x` --> `(default value for T)`
20+ * `x.Y` --> `T#Y`
2021 */
2122class UnusedRefs extends MiniPhaseTransform with InfoTransformer {
2223 import tpd ._
@@ -48,17 +49,17 @@ class UnusedRefs extends MiniPhaseTransform with InfoTransformer {
4849
4950 /* Tree transform */
5051
51- override def transformApply (tree : tpd. Apply )(implicit ctx : Context , info : TransformerInfo ): tpd. Tree = transformUnused(tree)
52- override def transformIdent (tree : tpd. Ident )(implicit ctx : Context , info : TransformerInfo ): tpd. Tree = transformUnused(tree)
53- override def transformSelect (tree : tpd. Select )(implicit ctx : Context , info : TransformerInfo ): tpd. Tree = transformUnused(tree)
52+ override def transformApply (tree : Apply )(implicit ctx : Context , info : TransformerInfo ): Tree = transformUnused(tree)
53+ override def transformIdent (tree : Ident )(implicit ctx : Context , info : TransformerInfo ): Tree = transformUnused(tree)
54+ override def transformSelect (tree : Select )(implicit ctx : Context , info : TransformerInfo ): Tree = transformUnused(tree)
5455
55- private def transformUnused (tree : tpd. Tree )(implicit ctx : Context , info : TransformerInfo ): tpd. Tree = {
56+ private def transformUnused (tree : Tree )(implicit ctx : Context , info : TransformerInfo ): Tree = {
5657 if (! tree.symbol.is(Unused )) tree
5758 else {
5859 tree.tpe.widen match {
5960 case _ : MethodType => tree // Do the transformation higher in the tree if needed
6061 case _ =>
61- val result = tpd. defaultValue(tree.tpe) match {
62+ val result = defaultValue(tree.tpe) match {
6263 case t @ TypeApply (fun, args) => cpy.TypeApply (t)(fun = fun, args = args.map(transform)) // asInstanceOf inserted by defaultValue
6364 case t => t
6465 }
@@ -70,7 +71,7 @@ class UnusedRefs extends MiniPhaseTransform with InfoTransformer {
7071 }
7172 }
7273
73- override def transformTypeTree (tree : tpd. TypeTree )(implicit ctx : Context , info : TransformerInfo ): tpd. Tree = {
74+ override def transformTypeTree (tree : TypeTree )(implicit ctx : Context , info : TransformerInfo ): Tree = {
7475 val newType = removeUnusedPaths(tree.tpe)
7576 if (tree.tpe == newType) tree
7677 else TypeTree (newType)
@@ -79,8 +80,7 @@ class UnusedRefs extends MiniPhaseTransform with InfoTransformer {
7980
8081 /* Tree info */
8182
82- override def transformInfo (tp : Type , sym : Symbol )(implicit ctx : Context ): Type =
83- removeUnusedPaths(tp)
83+ override def transformInfo (tp : Type , sym : Symbol )(implicit ctx : Context ): Type = removeUnusedPaths(tp)
8484
8585 private def removeUnusedPaths (tp : Type )(implicit ctx : Context ): Type = {
8686 // TODO: handle variance
0 commit comments