Skip to content

Commit 44a8fe6

Browse files
committed
Remove unnecessary runBefore
1 parent 788b264 commit 44a8fe6

File tree

2 files changed

+8
-13
lines changed

2 files changed

+8
-13
lines changed

compiler/src/dotty/tools/dotc/Compiler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class Compiler {
7373
new ShortcutImplicits, // Allow implicit functions without creating closures
7474
new CrossCastAnd, // Normalize selections involving intersection types.
7575
new Splitter), // Expand selections involving union types into conditionals
76-
List(new UnusedDecls, // Removes all unused defs and vals decls (except parameters)
76+
List(new UnusedDecls, // Removes all unused defs and vals decls
7777
new VCInlineMethods, // Inlines calls to value class methods
7878
new SeqLiterals, // Express vararg arguments as arrays
7979
new InterceptedMethods, // Special handling of `==`, `|=`, `getClass` methods

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

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@ import dotty.tools.dotc.core.Contexts._
55
import dotty.tools.dotc.core.DenotTransformers.InfoTransformer
66
import dotty.tools.dotc.core.Flags._
77
import dotty.tools.dotc.core.Symbols._
8+
import dotty.tools.dotc.core.Phases.Phase
89
import dotty.tools.dotc.core.Types._
910
import dotty.tools.dotc.transform.TreeTransforms.{MiniPhaseTransform, TransformerInfo}
1011

1112
/** This phase removes unused declarations of `def`s and `val`s (except for parameters).
12-
* It assumes that:
13-
* - Unused defs and vals are not used
14-
* - There are no unused parameter declarations
1513
*
1614
* `unused def f(...) = ...` and `unused val x = ...` are removed
1715
*/
@@ -20,9 +18,8 @@ class UnusedDecls extends MiniPhaseTransform with InfoTransformer {
2018

2119
override def phaseName: String = "unusedDecls"
2220

23-
override def runsAfterGroupsOf = Set(
24-
classOf[UnusedParams], // ensure no unused parameters declarations
25-
classOf[UnusedRefs] // ensures declarations are not used
21+
override def runsAfterGroupsOf: Set[Class[_ <: Phase]] = Set(
22+
classOf[PatternMatcher] // Make sure pattern match errors are emitted
2623
)
2724

2825
/** Check what the phase achieves, to be called at any point after it is finished. */
@@ -34,13 +31,11 @@ class UnusedDecls extends MiniPhaseTransform with InfoTransformer {
3431

3532
/* Tree transform */
3633

37-
override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree =
38-
if (tree.symbol.is(Unused)) EmptyTree
39-
else tree
34+
override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree = transformValOrDefDef(tree)
35+
override def transformValDef(tree: ValDef)(implicit ctx: Context, info: TransformerInfo): Tree = transformValOrDefDef(tree)
4036

41-
override def transformValDef(tree: ValDef)(implicit ctx: Context, info: TransformerInfo): Tree =
42-
if (tree.symbol.is(Unused)) EmptyTree
43-
else tree
37+
private def transformValOrDefDef(tree: ValOrDefDef)(implicit ctx: Context): Tree =
38+
if (tree.symbol is Unused) EmptyTree else tree
4439

4540

4641
/* Info transform */

0 commit comments

Comments
 (0)