diff --git a/compiler/src/dotty/tools/dotc/typer/Typer.scala b/compiler/src/dotty/tools/dotc/typer/Typer.scala index 71265fc07249..0a4612cf2d69 100644 --- a/compiler/src/dotty/tools/dotc/typer/Typer.scala +++ b/compiler/src/dotty/tools/dotc/typer/Typer.scala @@ -3803,7 +3803,7 @@ class Typer extends Namer mapOver(tp) } - if tree.symbol.is(Module) + if tree.symbol.isOneOf(Module | Enum) && !(tree.tpe frozen_<:< pt) // fast track && !(tree.tpe frozen_<:< approx(pt)) then diff --git a/scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureProvider.scala b/scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureProvider.scala index 6d3667fdab62..a2ade47bbbb2 100644 --- a/scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureProvider.scala +++ b/scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureProvider.scala @@ -22,8 +22,6 @@ object ScalaSignatureProvider: givenClassSignature(documentable, cls, builder) case Kind.Given(d: Kind.Def, _, _) => givenMethodSignature(documentable, d, builder) - case Kind.Given(Kind.Val, _, _) => - givenPropertySignature(documentable, builder) case cls: Kind.Class => classSignature(documentable, cls, builder) case enm: Kind.Enum => diff --git a/tests/neg/i9740b.scala b/tests/neg/i9740b.scala new file mode 100644 index 000000000000..8006056684c7 --- /dev/null +++ b/tests/neg/i9740b.scala @@ -0,0 +1,19 @@ +enum Recovery: + case RecoveryCompleted + +enum TypedRecovery: + case TypedRecoveryCompleted + +import Recovery.* +import TypedRecovery.* + +class Test { + TypedRecoveryCompleted match { + case RecoveryCompleted => println("Recovery completed") // error + case TypedRecoveryCompleted => println("Typed recovery completed") + } + + def foo(x: TypedRecovery) = x match + case RecoveryCompleted => // error + case TypedRecoveryCompleted => +} diff --git a/tests/run/option-extract.scala b/tests/run/option-extract.scala index 7b87ad28bc68..e0397afcf903 100644 --- a/tests/run/option-extract.scala +++ b/tests/run/option-extract.scala @@ -6,7 +6,7 @@ enum Option[+A]: opaque type ExtractResult[B] = (=> B) => B def extract[B](f: A => B): ExtractResult[B] = - def result(default: => B): B = this match + def result(default: => B): B = (this: Option[A]) match case None => default case Some(elem) => f(elem) result