Skip to content

Commit c961308

Browse files
authored
Merge pull request #10364 from dotty-staging/add-opaque-to-reflection
Add Flags.Opaque to reflection API
2 parents 0ada0e5 + c8f766d commit c961308

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
@@ -3176,6 +3176,9 @@ trait QuoteContext { self: internal.QuoteUnpickler & internal.QuoteMatching =>
31763176
/** Is this symbol an object or its class (used for a ValDef or a ClassDef extends Modifier respectively) */
31773177
def Object: Flags
31783178

3179+
/** Is this symbol `opaque` */
3180+
def Opaque: Flags
3181+
31793182
/** Is this symbol `override` */
31803183
def Override: Flags
31813184

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)