diff --git a/compiler/src/scala/quoted/internal/impl/QuoteContextImpl.scala b/compiler/src/scala/quoted/internal/impl/QuoteContextImpl.scala index b4f9831d2da4..950b1c856749 100644 --- a/compiler/src/scala/quoted/internal/impl/QuoteContextImpl.scala +++ b/compiler/src/scala/quoted/internal/impl/QuoteContextImpl.scala @@ -2442,6 +2442,7 @@ class QuoteContextImpl private (ctx: Context) extends QuoteContext, QuoteUnpickl def ModuleClass: Flags = dotc.core.Flags.ModuleClass def Mutable: Flags = dotc.core.Flags.Mutable def Object: Flags = dotc.core.Flags.Module + def Opaque: Flags = dotc.core.Flags.Opaque def Override: Flags = dotc.core.Flags.Override def Package: Flags = dotc.core.Flags.Package def Param: Flags = dotc.core.Flags.Param diff --git a/library/src/scala/quoted/QuoteContext.scala b/library/src/scala/quoted/QuoteContext.scala index dd3befc360f5..df79362eeb33 100644 --- a/library/src/scala/quoted/QuoteContext.scala +++ b/library/src/scala/quoted/QuoteContext.scala @@ -3184,6 +3184,9 @@ trait QuoteContext { self: internal.QuoteUnpickler & internal.QuoteMatching => /** Is this symbol an object or its class (used for a ValDef or a ClassDef extends Modifier respectively) */ def Object: Flags + /** Is this symbol `opaque` */ + def Opaque: Flags + /** Is this symbol `override` */ def Override: Flags diff --git a/scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala b/scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala index 65489dd3b233..23e2a57b2201 100644 --- a/scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala +++ b/scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala @@ -31,7 +31,7 @@ trait SyntheticsSupport: def isDefaultHelperMethod: Boolean = ".*\\$default\\$\\d+$".r.matches(s.name) - def isOpaque: Boolean = hackIsOpaque(using qctx)(s) + def isOpaque: Boolean = s.flags.is(Flags.Opaque) def isInfix: Boolean = hackIsInfix(using qctx)(s) @@ -77,13 +77,6 @@ trait SyntheticsSupport: }.toList } - def hackIsOpaque(using QuoteContext)(rsym: qctx.reflect.Symbol): Boolean = { - import dotty.tools.dotc - given dotc.core.Contexts.Context = qctx.reflect.rootContext.asInstanceOf - val sym = rsym.asInstanceOf[dotc.core.Symbols.Symbol] - sym.is(dotc.core.Flags.Opaque) - } - def hackGetSupertypes(using QuoteContext)(rdef: qctx.reflect.ClassDef) = { import qctx.reflect._ import dotty.tools.dotc