Skip to content

Commit c8f766d

Browse files
committed
Add Flags.Opaque to reflection API
1 parent ac806b8 commit c8f766d

File tree

3 files changed

+5
-8
lines changed

3 files changed

+5
-8
lines changed

compiler/src/scala/quoted/internal/impl/QuoteContextImpl.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2442,6 +2442,7 @@ class QuoteContextImpl private (ctx: Context) extends QuoteContext, QuoteUnpickl
24422442
def ModuleClass: Flags = dotc.core.Flags.ModuleClass
24432443
def Mutable: Flags = dotc.core.Flags.Mutable
24442444
def Object: Flags = dotc.core.Flags.Module
2445+
def Opaque: Flags = dotc.core.Flags.Opaque
24452446
def Override: Flags = dotc.core.Flags.Override
24462447
def Package: Flags = dotc.core.Flags.Package
24472448
def Param: Flags = dotc.core.Flags.Param

library/src/scala/quoted/QuoteContext.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3184,6 +3184,9 @@ trait QuoteContext { self: internal.QuoteUnpickler & internal.QuoteMatching =>
31843184
/** Is this symbol an object or its class (used for a ValDef or a ClassDef extends Modifier respectively) */
31853185
def Object: Flags
31863186

3187+
/** Is this symbol `opaque` */
3188+
def Opaque: Flags
3189+
31873190
/** Is this symbol `override` */
31883191
def Override: Flags
31893192

scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ trait SyntheticsSupport:
3131

3232
def isDefaultHelperMethod: Boolean = ".*\\$default\\$\\d+$".r.matches(s.name)
3333

34-
def isOpaque: Boolean = hackIsOpaque(using qctx)(s)
34+
def isOpaque: Boolean = s.flags.is(Flags.Opaque)
3535

3636
def isInfix: Boolean = hackIsInfix(using qctx)(s)
3737

@@ -77,13 +77,6 @@ trait SyntheticsSupport:
7777
}.toList
7878
}
7979

80-
def hackIsOpaque(using QuoteContext)(rsym: qctx.reflect.Symbol): Boolean = {
81-
import dotty.tools.dotc
82-
given dotc.core.Contexts.Context = qctx.reflect.rootContext.asInstanceOf
83-
val sym = rsym.asInstanceOf[dotc.core.Symbols.Symbol]
84-
sym.is(dotc.core.Flags.Opaque)
85-
}
86-
8780
def hackGetSupertypes(using QuoteContext)(rdef: qctx.reflect.ClassDef) = {
8881
import qctx.reflect._
8982
import dotty.tools.dotc

0 commit comments

Comments
 (0)