Skip to content

Commit 98fef62

Browse files
committed
Make all enums in cc derive CanEqual
Caught one bug in CaptureSet
1 parent 128cf25 commit 98fef62

File tree

5 files changed

+8
-8
lines changed

5 files changed

+8
-8
lines changed

compiler/src/dotty/tools/dotc/cc/Capability.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ object Capabilities:
925925
* Unclassified : No set exists since some parts of tcs are not classified
926926
* ClassifiedAs(clss: All parts of tcss are classified with classes in clss
927927
*/
928-
enum Classifiers:
928+
enum Classifiers derives CanEqual:
929929
case UnknownClassifier
930930
case Unclassified
931931
case ClassifiedAs(clss: List[ClassSymbol])
@@ -966,7 +966,7 @@ object Capabilities:
966966
/** The place of - and cause for - creating a fresh capability. Used for
967967
* error diagnostics
968968
*/
969-
enum Origin:
969+
enum Origin derives CanEqual:
970970
case InDecl(sym: Symbol)
971971
case TypeArg(tp: Type)
972972
case UnsafeAssumePure

compiler/src/dotty/tools/dotc/cc/CaptureSet.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ sealed abstract class CaptureSet extends Showable:
156156
*/
157157
final def maybeExclusive(using Context): Boolean = reporting.trace(i"mabe exclusive $this"):
158158
if isConst then elems.exists(_.maybeExclusive)
159-
else mutability != ReadOnly
159+
else mutability != Reader
160160

161161
final def keepAlways: Boolean = this.isInstanceOf[EmptyWithProvenance]
162162

@@ -541,7 +541,7 @@ object CaptureSet:
541541
type Vars = SimpleIdentitySet[Var]
542542
type Deps = SimpleIdentitySet[CaptureSet]
543543

544-
enum Mutability:
544+
enum Mutability derives CanEqual:
545545
case Writer, Reader, Ignored
546546

547547
def | (that: Mutability): Mutability =

compiler/src/dotty/tools/dotc/cc/CheckCaptures.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ object CheckCaptures:
4040
val name: String = "cc"
4141
val description: String = "capture checking"
4242

43-
enum EnvKind:
43+
enum EnvKind derives CanEqual:
4444
case Regular // normal case
4545
case NestedInOwner // environment is a temporary one nested in the owner's environment,
4646
// and does not have a different actual owner symbol

compiler/src/dotty/tools/dotc/cc/Mutability.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import typer.ProtoTypes.LhsProto
1515
object Mutability:
1616

1717
/** Either OK, or a reason why capture set cannot be exclusive */
18-
private enum Exclusivity:
18+
private enum Exclusivity derives CanEqual:
1919
case OK
2020

2121
/** Enclosing symbol `sym` is a method of class `cls`, but not an update method */

compiler/src/dotty/tools/dotc/cc/SepCheck.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import Capabilities.*
3131
object SepCheck:
3232

3333
/** Enumerates kinds of captures encountered so far */
34-
enum Captures:
34+
enum Captures derives CanEqual:
3535
case None
3636
case Explicit // one or more explicitly declared captures
3737
case Hidden // exacttly one hidden captures
@@ -45,7 +45,7 @@ object SepCheck:
4545
end Captures
4646

4747
/** The role in which a checked type appears, used for composing error messages */
48-
enum TypeRole:
48+
enum TypeRole derives CanEqual:
4949
case Result(sym: Symbol, inferred: Boolean)
5050
case Argument(arg: Tree, meth: Symbol)
5151
case Qualifier(qual: Tree, meth: Symbol)

0 commit comments

Comments
 (0)