Skip to content

Commit

Permalink
Merge pull request #979 from dwijnand/sealed-extends-sealed
Browse files Browse the repository at this point in the history
  • Loading branch information
eed3si9n authored May 28, 2021
2 parents 0ce6445 + a2a38b4 commit bff96c7
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ class ExtractAPI[GlobalType <: Global](
if (sym.isPackageObjectClass) DefinitionType.PackageModule
else DefinitionType.Module
} else DefinitionType.ClassDef
val childrenOfSealedClass = sort(sym.children.toArray).map(c => processType(c, c.tpe))
val childrenOfSealedClass = sort(sym.sealedDescendants.toArray).map(c => processType(c, c.tpe))
val topLevel = sym.owner.isPackageClass
val anns = annotations(in, c)
val modifiers = getModifiers(c)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sealed trait Z
sealed trait A extends Z
class B extends A
class C extends A
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
object App {
def foo(z: Z) = z match {
case _: B =>
case _: C =>
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
sealed trait Z
sealed trait A extends Z
class B extends A
class C extends A
class D extends A
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
scalac.options = -Xfatal-warnings
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
> compile

# Introduce a new class C that also extends A
$ copy-file changes/A.scala A.scala

# App.scala needs recompiling because the pattern match in it
# is no longer exhaustive, which emits a warning
-> compile

0 comments on commit bff96c7

Please sign in to comment.