Skip to content

Commit 79ee0a2

Browse files
committed
Address review comment
1 parent 788ae4e commit 79ee0a2

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

compiler/src/dotty/tools/dotc/typer/Checking.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ trait Checking {
11801180
*/
11811181
def checkEnumCaseRefsLegal(cdef: TypeDef, enumCtx: Context)(using Context): Unit = {
11821182

1183-
def checkCaseOrDefault(stat: Tree, caseCtx: Context) = {
1183+
def checkEnumCaseOrDefault(stat: Tree, caseCtx: Context) = {
11841184

11851185
def check(tree: Tree) = {
11861186
// allow access to `sym` if a typedIdent just outside the enclosing enum
@@ -1219,16 +1219,16 @@ trait Checking {
12191219

12201220
cdef.rhs match {
12211221
case impl: Template =>
1222-
def isCase(stat: Tree) = stat match {
1223-
case _: ValDef | _: TypeDef => stat.symbol.is(Case)
1222+
def isEnumCase(stat: Tree) = stat match {
1223+
case _: ValDef | _: TypeDef => stat.symbol.isAllOf(EnumCase)
12241224
case _ => false
12251225
}
12261226
val cases =
1227-
for (stat <- impl.body if isCase(stat))
1227+
for (stat <- impl.body if isEnumCase(stat))
12281228
yield untpd.ImportSelector(untpd.Ident(stat.symbol.name.toTermName))
12291229
val caseImport: Import = Import(ref(cdef.symbol), cases)
12301230
val caseCtx = enumCtx.importContext(caseImport, caseImport.symbol)
1231-
for (stat <- impl.body) checkCaseOrDefault(stat, caseCtx)
1231+
for (stat <- impl.body) checkEnumCaseOrDefault(stat, caseCtx)
12321232
case _ =>
12331233
}
12341234
}

tests/neg/i11081.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
enum Outer:
2+
case Foo(u: Unavailable) // error
3+
case Bar(u: DefinitelyNotAvailable) // error
4+
object Outer:
5+
class Unavailable(i: Int)
6+
case class DefinitelyNotAvailable()

0 commit comments

Comments
 (0)