Skip to content

Commit f0ae39d

Browse files
committed
Separate MatchReducer (Issue 24120)
1 parent 31aac54 commit f0ae39d

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

.git-blame-ignore-revs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
46a26945a172429740ebdd1fc83517130670080b
2+
# Move MatchReducer to its own file (from TypeComparer.scala to MatchReducer.scala)
3+
31aac54ad1a8079cb53903437a27b2de81b82de6

compiler/src/dotty/tools/dotc/core/MatchReducer.scala

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
package dotty.tools
2+
package dotc
3+
package core
4+
5+
import Types.*, Contexts.*, Symbols.*, Flags.*, Names.*, NameOps.*, Denotations.*
6+
import Decorators.*
7+
import Phases.{gettersPhase, elimByNamePhase}
8+
import StdNames.nme
9+
import TypeOps.refineUsingParent
10+
import collection.mutable
11+
import util.{Stats, NoSourcePosition, EqHashMap}
12+
import config.Config
13+
import config.Feature.{migrateTo3, sourceVersion}
14+
import config.Printers.{subtyping, gadts, matchTypes, capt, noPrinter}
15+
import config.SourceVersion
16+
import TypeErasure.{erasedLub, erasedGlb}
17+
import TypeApplications.*
18+
import Variances.{Variance, variancesConform}
19+
import Constants.Constant
20+
import scala.util.control.NonFatal
21+
import typer.ProtoTypes.constrained
22+
import typer.Applications.productSelectorTypes
23+
import reporting.trace
24+
import annotation.constructorOnly
25+
import cc.*
26+
import Capabilities.Capability
27+
import NameKinds.WildcardParamName
28+
import MatchTypes.isConcrete
29+
import reporting.Message.Note
30+
import scala.util.boundary, boundary.break
31+
132
object MatchReducer:
233
import printing.*, Texts.*
334
enum MatchResult extends Showable:
@@ -15,8 +46,6 @@ object MatchReducer:
1546
case NoInstance(fails) => "NoInstance(" ~ Text(fails.map(p.toText(_) ~ p.toText(_)), ", ") ~ ")"
1647

1748
/** A type comparer for reducing match types.
18-
* TODO: Not sure this needs to be a type comparer. Can we make it a
19-
* separate class?
2049
*/
2150
class MatchReducer(initctx: Context) extends TypeComparer(initctx) {
2251
import MatchReducer.*

0 commit comments

Comments
 (0)