@@ -2487,13 +2487,13 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2487
2487
newMethod(owner, name, tpe, Flags .EmptyFlags , noSymbol)
2488
2488
def newMethod (owner : Symbol , name : String , tpe : TypeRepr , flags : Flags , privateWithin : Symbol ): Symbol =
2489
2489
checkValidFlags(flags.toTermFlags, Flags .validMethodFlags)
2490
- dotc.core.Symbols .newSymbol(owner, name.toTermName, flags | dotc.core.Flags .Method , tpe, privateWithin)
2490
+ dotc.core.Symbols .newSymbol(owner, name.toTermName, flags.toInternalFlags | dotc.core.Flags .Method , tpe, privateWithin)
2491
2491
def newVal (owner : Symbol , name : String , tpe : TypeRepr , flags : Flags , privateWithin : Symbol ): Symbol =
2492
2492
checkValidFlags(flags.toTermFlags, Flags .validValFlags)
2493
- dotc.core.Symbols .newSymbol(owner, name.toTermName, flags, tpe, privateWithin)
2493
+ dotc.core.Symbols .newSymbol(owner, name.toTermName, flags.toInternalFlags , tpe, privateWithin)
2494
2494
def newBind (owner : Symbol , name : String , flags : Flags , tpe : TypeRepr ): Symbol =
2495
2495
checkValidFlags(flags.toTermFlags, Flags .validBindFlags)
2496
- dotc.core.Symbols .newSymbol(owner, name.toTermName, flags | dotc.core.Flags .Case , tpe)
2496
+ dotc.core.Symbols .newSymbol(owner, name.toTermName, flags.toInternalFlags | dotc.core.Flags .Case , tpe)
2497
2497
def noSymbol : Symbol = dotc.core.Symbols .NoSymbol
2498
2498
2499
2499
private inline def checkValidFlags (inline flags : Flags , inline valid : Flags ): Unit =
@@ -2510,7 +2510,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2510
2510
extension (self : Symbol )
2511
2511
def owner : Symbol = self.denot.owner
2512
2512
def maybeOwner : Symbol = self.denot.maybeOwner
2513
- def flags : Flags = self.denot.flags
2513
+ def flags : Flags = self.denot.flags.toExternalFlags
2514
2514
2515
2515
def privateWithin : Option [TypeRepr ] =
2516
2516
val within : Symbol =
@@ -2764,7 +2764,6 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2764
2764
2765
2765
object Flags extends FlagsModule :
2766
2766
def Abstract : Flags = dotc.core.Flags .Abstract
2767
- def AbsOverride : Flags = dotc.core.Flags .AbsOverride
2768
2767
def Artifact : Flags = dotc.core.Flags .Artifact
2769
2768
def Case : Flags = dotc.core.Flags .Case
2770
2769
def CaseAccessor : Flags = dotc.core.Flags .CaseAccessor
@@ -2811,8 +2810,8 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2811
2810
def Trait : Flags = dotc.core.Flags .Trait
2812
2811
def Transparent : Flags = dotc.core.Flags .Transparent
2813
2812
2814
- private [QuotesImpl ] def validMethodFlags : Flags = Private | Protected | Override | Deferred | Final | Method | Implicit | Given | Local | JavaStatic | AbsOverride // Synthetic | ExtensionMethod | Exported | Erased | Infix | Invisible
2815
- private [QuotesImpl ] def validValFlags : Flags = Private | Protected | Override | Deferred | Final | Param | Implicit | Lazy | Mutable | Local | ParamAccessor | Module | Package | Case | CaseAccessor | Given | Enum | JavaStatic | AbsOverride // Synthetic | Erased | Invisible
2813
+ private [QuotesImpl ] def validMethodFlags : Flags = Private | Protected | Override | Deferred | Final | Method | Implicit | Given | Local | JavaStatic // Synthetic | ExtensionMethod | Exported | Erased | Infix | Invisible
2814
+ private [QuotesImpl ] def validValFlags : Flags = Private | Protected | Override | Deferred | Final | Param | Implicit | Lazy | Mutable | Local | ParamAccessor | Module | Package | Case | CaseAccessor | Given | Enum | JavaStatic // Synthetic | Erased | Invisible
2816
2815
private [QuotesImpl ] def validBindFlags : Flags = Case // | Implicit | Given | Erased
2817
2816
end Flags
2818
2817
@@ -2822,6 +2821,16 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2822
2821
def | (that : Flags ): Flags = dotc.core.Flags .or(self, that) // TODO: Replace with dotc.core.Flags.|(self)(that) once extension names have stabilized
2823
2822
def & (that : Flags ): Flags = dotc.core.Flags .and(self, that)// TODO: Replace with dotc.core.Flags.&(self)(that) once extension names have stabilized
2824
2823
def show : String = Extractors .showFlags(using QuotesImpl .this )(self)
2824
+
2825
+ private [QuotesImpl ] inline def toInternalFlags : Flags =
2826
+ if self.isAllOf(dotc.core.Flags .AbstractOverride ) then
2827
+ self &~ dotc.core.Flags .AbstractOverride | dotc.core.Flags .AbsOverride
2828
+ else self
2829
+
2830
+ private [QuotesImpl ] inline def toExternalFlags : Flags =
2831
+ if self.is(dotc.core.Flags .AbsOverride ) then
2832
+ self &~ dotc.core.Flags .AbsOverride | dotc.core.Flags .AbstractOverride
2833
+ else self
2825
2834
end extension
2826
2835
end FlagsMethods
2827
2836
0 commit comments