Skip to content

Commit 5fd25e4

Browse files
Merge pull request #10622 from dotty-staging/add-missing-reflect-falgs
Rework reflect Flags
2 parents 5de93b8 + 53b6bd8 commit 5fd25e4

File tree

14 files changed

+70
-38
lines changed

14 files changed

+70
-38
lines changed

compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2464,6 +2464,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
24642464
def CaseAccessor: Flags = dotc.core.Flags.CaseAccessor
24652465
def Contravariant: Flags = dotc.core.Flags.Contravariant
24662466
def Covariant: Flags = dotc.core.Flags.Covariant
2467+
def Deferred: Flags = dotc.core.Flags.Deferred
24672468
def EmptyFlags = dotc.core.Flags.EmptyFlags
24682469
def Enum: Flags = dotc.core.Flags.Enum
24692470
def Erased: Flags = dotc.core.Flags.Erased
@@ -2474,14 +2475,17 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
24742475
def Given: Flags = dotc.core.Flags.Given
24752476
def HasDefault: Flags = dotc.core.Flags.HasDefault
24762477
def Implicit: Flags = dotc.core.Flags.Implicit
2478+
def Infix: Flags = dotc.core.Flags.Infix
24772479
def Inline: Flags = dotc.core.Flags.Inline
24782480
def JavaDefined: Flags = dotc.core.Flags.JavaDefined
2481+
def JavaStatic: Flags = dotc.core.Flags.JavaStatic
24792482
def Lazy: Flags = dotc.core.Flags.Lazy
24802483
def Local: Flags = dotc.core.Flags.Local
24812484
def Macro: Flags = dotc.core.Flags.Macro
2482-
def ModuleClass: Flags = dotc.core.Flags.ModuleClass
2485+
def Method: Flags = dotc.core.Flags.Method
2486+
def Module: Flags = dotc.core.Flags.Module
24832487
def Mutable: Flags = dotc.core.Flags.Mutable
2484-
def Object: Flags = dotc.core.Flags.Module
2488+
def NoInits: Flags = dotc.core.Flags.NoInits
24852489
def Opaque: Flags = dotc.core.Flags.Opaque
24862490
def Open: Flags = dotc.core.Flags.Open
24872491
def Override: Flags = dotc.core.Flags.Override
@@ -2497,6 +2501,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
24972501
def Static: Flags = dotc.core.Flags.JavaStatic
24982502
def Synthetic: Flags = dotc.core.Flags.Synthetic
24992503
def Trait: Flags = dotc.core.Flags.Trait
2504+
def Transparent: Flags = dotc.core.Flags.Transparent
25002505
end Flags
25012506

25022507
object FlagsMethodsImpl extends FlagsMethods:

compiler/src/scala/quoted/runtime/impl/printers/Extractors.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,26 @@ object Extractors {
2626
if (flags.is(Flags.CaseAccessor)) flagList += "Flags.CaseAccessor"
2727
if (flags.is(Flags.Contravariant)) flagList += "Flags.Contravariant"
2828
if (flags.is(Flags.Covariant)) flagList += "Flags.Covariant"
29+
if (flags.is(Flags.Deferred)) flagList += "Flags.Deferred"
2930
if (flags.is(Flags.Enum)) flagList += "Flags.Enum"
3031
if (flags.is(Flags.Erased)) flagList += "Flags.Erased"
31-
if (flags.is(Flags.ExtensionMethod)) flagList += "Flags.ExtensionMethod"
3232
if (flags.is(Flags.Exported)) flagList += "Flags.Exported"
33+
if (flags.is(Flags.ExtensionMethod)) flagList += "Flags.ExtensionMethod"
3334
if (flags.is(Flags.FieldAccessor)) flagList += "Flags.FieldAccessor"
3435
if (flags.is(Flags.Final)) flagList += "Flags.Final"
3536
if (flags.is(Flags.HasDefault)) flagList += "Flags.HasDefault"
3637
if (flags.is(Flags.Implicit)) flagList += "Flags.Implicit"
38+
if (flags.is(Flags.Infix)) flagList += "Flags.Infix"
3739
if (flags.is(Flags.Inline)) flagList += "Flags.Inline"
3840
if (flags.is(Flags.JavaDefined)) flagList += "Flags.JavaDefined"
41+
if (flags.is(Flags.JavaStatic)) flagList += "Flags.JavaStatic"
3942
if (flags.is(Flags.Lazy)) flagList += "Flags.Lazy"
4043
if (flags.is(Flags.Local)) flagList += "Flags.Local"
4144
if (flags.is(Flags.Macro)) flagList += "Flags.Macro"
42-
if (flags.is(Flags.ModuleClass)) flagList += "Flags.ModuleClass"
45+
if (flags.is(Flags.Method)) flagList += "Flags.Method"
46+
if (flags.is(Flags.Module)) flagList += "Flags.Module"
4347
if (flags.is(Flags.Mutable)) flagList += "Flags.Mutable"
44-
if (flags.is(Flags.Object)) flagList += "Flags.Object"
48+
if (flags.is(Flags.NoInits)) flagList += "Flags.NoInits"
4549
if (flags.is(Flags.Override)) flagList += "Flags.Override"
4650
if (flags.is(Flags.Package)) flagList += "Flags.Package"
4751
if (flags.is(Flags.Param)) flagList += "Flags.Param"
@@ -55,6 +59,7 @@ object Extractors {
5559
if (flags.is(Flags.Static)) flagList += "Flags.javaStatic"
5660
if (flags.is(Flags.Synthetic)) flagList += "Flags.Synthetic"
5761
if (flags.is(Flags.Trait)) flagList += "Flags.Trait"
62+
if (flags.is(Flags.Transparent)) flagList += "Flags.Transparent"
5863
flagList.result().mkString(" | ")
5964
}
6065

compiler/src/scala/quoted/runtime/impl/printers/SourceCode.scala

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,26 @@ object SourceCode {
2727
if (flags.is(Flags.CaseAccessor)) flagList += "caseAccessor"
2828
if (flags.is(Flags.Contravariant)) flagList += "contravariant"
2929
if (flags.is(Flags.Covariant)) flagList += "covariant"
30+
if (flags.is(Flags.Deferred)) flagList += "deferred"
3031
if (flags.is(Flags.Enum)) flagList += "enum"
3132
if (flags.is(Flags.Erased)) flagList += "erased"
32-
if (flags.is(Flags.ExtensionMethod)) flagList += "extension"
3333
if (flags.is(Flags.Exported)) flagList += "exported"
34+
if (flags.is(Flags.ExtensionMethod)) flagList += "extension"
3435
if (flags.is(Flags.FieldAccessor)) flagList += "accessor"
3536
if (flags.is(Flags.Final)) flagList += "final"
3637
if (flags.is(Flags.HasDefault)) flagList += "hasDefault"
3738
if (flags.is(Flags.Implicit)) flagList += "implicit"
39+
if (flags.is(Flags.Infix)) flagList += "infix"
3840
if (flags.is(Flags.Inline)) flagList += "inline"
3941
if (flags.is(Flags.JavaDefined)) flagList += "javaDefined"
42+
if (flags.is(Flags.JavaStatic)) flagList += "static"
4043
if (flags.is(Flags.Lazy)) flagList += "lazy"
4144
if (flags.is(Flags.Local)) flagList += "local"
4245
if (flags.is(Flags.Macro)) flagList += "macro"
43-
if (flags.is(Flags.ModuleClass)) flagList += "moduleClass"
46+
if (flags.is(Flags.Method)) flagList += "method"
47+
if (flags.is(Flags.Module)) flagList += "object"
4448
if (flags.is(Flags.Mutable)) flagList += "mutable"
45-
if (flags.is(Flags.Object)) flagList += "object"
49+
if (flags.is(Flags.NoInits)) flagList += "noInits"
4650
if (flags.is(Flags.Override)) flagList += "override"
4751
if (flags.is(Flags.Package)) flagList += "package"
4852
if (flags.is(Flags.Param)) flagList += "param"
@@ -56,6 +60,7 @@ object SourceCode {
5660
if (flags.is(Flags.Static)) flagList += "javaStatic"
5761
if (flags.is(Flags.Synthetic)) flagList += "synthetic"
5862
if (flags.is(Flags.Trait)) flagList += "trait"
63+
if (flags.is(Flags.Transparent)) flagList += "transparent"
5964
flagList.result().mkString("/*", " ", "*/")
6065
}
6166

@@ -109,7 +114,7 @@ object SourceCode {
109114
case tree @ PackageClause(name, stats) =>
110115
val stats1 = stats.collect {
111116
case stat: PackageClause => stat
112-
case stat: Definition if !(stat.symbol.flags.is(Flags.Object) && stat.symbol.flags.is(Flags.Lazy)) => stat
117+
case stat: Definition if !(stat.symbol.flags.is(Flags.Module) && stat.symbol.flags.is(Flags.Lazy)) => stat
113118
case stat @ Import(_, _) => stat
114119
}
115120
name match {
@@ -133,19 +138,19 @@ object SourceCode {
133138
val flags = cdef.symbol.flags
134139
if (flags.is(Flags.Implicit)) this += highlightKeyword("implicit ")
135140
if (flags.is(Flags.Sealed)) this += highlightKeyword("sealed ")
136-
if (flags.is(Flags.Final) && !flags.is(Flags.Object)) this += highlightKeyword("final ")
141+
if (flags.is(Flags.Final) && !flags.is(Flags.Module)) this += highlightKeyword("final ")
137142
if (flags.is(Flags.Case)) this += highlightKeyword("case ")
138143

139144
if (name == "package$") {
140145
this += highlightKeyword("package object ") += highlightTypeDef(cdef.symbol.owner.name.stripSuffix("$"))
141146
}
142-
else if (flags.is(Flags.Object)) this += highlightKeyword("object ") += highlightTypeDef(name.stripSuffix("$"))
147+
else if (flags.is(Flags.Module)) this += highlightKeyword("object ") += highlightTypeDef(name.stripSuffix("$"))
143148
else if (flags.is(Flags.Trait)) this += highlightKeyword("trait ") += highlightTypeDef(name)
144149
else if (flags.is(Flags.Abstract)) this += highlightKeyword("abstract class ") += highlightTypeDef(name)
145150
else this += highlightKeyword("class ") += highlightTypeDef(name)
146151

147152
val typeParams = stats.collect { case targ: TypeDef => targ }.filter(_.symbol.isTypeParam).zip(targs)
148-
if (!flags.is(Flags.Object)) {
153+
if (!flags.is(Flags.Module)) {
149154
printTargsDefs(typeParams)
150155
val it = argss.iterator
151156
while (it.hasNext)
@@ -201,7 +206,7 @@ object SourceCode {
201206
// Currently the compiler does not allow overriding some of the methods generated for case classes
202207
d.symbol.flags.is(Flags.Synthetic) &&
203208
(d match {
204-
case DefDef("apply" | "unapply" | "writeReplace", _, _, _, _) if d.symbol.owner.flags.is(Flags.Object) => true
209+
case DefDef("apply" | "unapply" | "writeReplace", _, _, _, _) if d.symbol.owner.flags.is(Flags.Module) => true
205210
case DefDef(n, _, _, _, _) if d.symbol.owner.flags.is(Flags.Case) =>
206211
n == "copy" ||
207212
n.matches("copy\\$default\\$[1-9][0-9]*") || // default parameters for the copy method
@@ -210,7 +215,7 @@ object SourceCode {
210215
case _ => false
211216
})
212217
}
213-
def isInnerModuleObject = d.symbol.flags.is(Flags.Lazy) && d.symbol.flags.is(Flags.Object)
218+
def isInnerModuleObject = d.symbol.flags.is(Flags.Lazy) && d.symbol.flags.is(Flags.Module)
214219
!flags.is(Flags.Param) && !flags.is(Flags.ParamAccessor) && !flags.is(Flags.FieldAccessor) && !isUndecompilableCaseClassMethod && !isInnerModuleObject
215220
}
216221
val stats1 = stats.collect {
@@ -259,7 +264,7 @@ object SourceCode {
259264
val flags = vdef.symbol.flags
260265
if (flags.is(Flags.Implicit)) this += highlightKeyword("implicit ")
261266
if (flags.is(Flags.Override)) this += highlightKeyword("override ")
262-
if (flags.is(Flags.Final) && !flags.is(Flags.Object)) this += highlightKeyword("final ")
267+
if (flags.is(Flags.Final) && !flags.is(Flags.Module)) this += highlightKeyword("final ")
263268

264269
printProtectedOrPrivate(vdef)
265270

@@ -299,7 +304,7 @@ object SourceCode {
299304
if (flags.is(Flags.Implicit)) this += highlightKeyword("implicit ")
300305
if (flags.is(Flags.Inline)) this += highlightKeyword("inline ")
301306
if (flags.is(Flags.Override)) this += highlightKeyword("override ")
302-
if (flags.is(Flags.Final) && !flags.is(Flags.Object)) this += highlightKeyword("final ")
307+
if (flags.is(Flags.Final) && !flags.is(Flags.Module)) this += highlightKeyword("final ")
303308

304309
printProtectedOrPrivate(ddef)
305310

@@ -466,7 +471,7 @@ object SourceCode {
466471

467472
case Block(stats0, expr) =>
468473
val stats = stats0.filter {
469-
case tree: ValDef => !tree.symbol.flags.is(Flags.Object)
474+
case tree: ValDef => !tree.symbol.flags.is(Flags.Module)
470475
case _ => true
471476
}
472477
printFlatBlock(stats, expr)
@@ -1158,7 +1163,7 @@ object SourceCode {
11581163

11591164
case ThisType(tp) =>
11601165
tp match {
1161-
case tp: TypeRef if !tp.typeSymbol.flags.is(Flags.Object) =>
1166+
case tp: TypeRef if !tp.typeSymbol.flags.is(Flags.Module) =>
11621167
printFullClassName(tp)
11631168
this += highlightTypeDef(".this")
11641169
case TypeRef(prefix, name) if name.endsWith("$") =>

library/src/scala/quoted/Quotes.scala

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3890,7 +3890,9 @@ trait Quotes { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
38903890
/** Is this symbol `abstract` */
38913891
def Abstract: Flags
38923892

3893-
/** Was this symbol generated by Scala compiler */
3893+
/** Is this generated by Scala compiler.
3894+
* Coresponds to ACC_SYNTHETIC in the JVM.
3895+
*/
38943896
def Artifact: Flags
38953897

38963898
/** Is this symbol `case` */
@@ -3905,6 +3907,9 @@ trait Quotes { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
39053907
/** Is this symbol a type parameter marked as covariant `+` */
39063908
def Covariant: Flags
39073909

3910+
/** Is a declared, but not defined member */
3911+
def Deferred: Flags
3912+
39083913
/** The empty set of flags */
39093914
def EmptyFlags: Flags
39103915

@@ -3935,12 +3940,18 @@ trait Quotes { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
39353940
/** Is this symbol `implicit` */
39363941
def Implicit: Flags
39373942

3943+
/** Is an infix method or type */
3944+
def Infix: Flags
3945+
39383946
/** Is this symbol `inline` */
39393947
def Inline: Flags
39403948

39413949
/** Is this symbol defined in a Java class */
39423950
def JavaDefined: Flags
39433951

3952+
/** Is implemented as a Java static */
3953+
def JavaStatic: Flags
3954+
39443955
/** Is this symbol `lazy` */
39453956
def Lazy: Flags
39463957

@@ -3950,14 +3961,16 @@ trait Quotes { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
39503961
/** Is this symbol marked as a macro. An inline method containing toplevel splices */
39513962
def Macro: Flags
39523963

3953-
/** Is this symbol a module class */
3954-
def ModuleClass: Flags
3964+
def Method: Flags
3965+
3966+
/** Is this symbol an object or its class (used for a ValDef or a ClassDef extends Modifier respectively) */
3967+
def Module: Flags
39553968

39563969
/** Is this symbol a `var` (when used on a ValDef) */
39573970
def Mutable: Flags
39583971

3959-
/** Is this symbol an object or its class (used for a ValDef or a ClassDef extends Modifier respectively) */
3960-
def Object: Flags
3972+
/** Trait does not have fields or initialization code. */
3973+
def NoInits: Flags
39613974

39623975
/** Is this symbol `opaque` */
39633976
def Opaque: Flags
@@ -4003,6 +4016,10 @@ trait Quotes { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
40034016

40044017
/** Is this symbol a trait */
40054018
def Trait: Flags
4019+
4020+
/** Is a transparent inline method or trait */
4021+
def Transparent: Flags
4022+
40064023
}
40074024

40084025
/** Makes extension methods on `Flags` available without any imports */

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ trait ClassLikeSupport:
2121
private val placeholderModifier = JMap(ctx.sourceSet -> KotlinModifier.Empty.INSTANCE)
2222

2323
private def kindForClasslike(sym: Symbol): Kind =
24-
if sym.flags.is(Flags.Object) then Kind.Object
24+
if sym.flags.is(Flags.Module) then Kind.Object
2525
else if sym.flags.is(Flags.Trait) then Kind.Trait
2626
else if sym.flags.is(Flags.Enum) then Kind.Enum
2727
else Kind.Class
@@ -125,9 +125,9 @@ trait ClassLikeSupport:
125125
.map { _ =>
126126
parseMethod(dd.symbol, kind = Kind.Given(getGivenInstance(dd).map(_.asSignature), None))
127127
}
128-
128+
129129
case dd: DefDef if !dd.symbol.isHiddenByVisibility && dd.symbol.isExported =>
130-
val exportedTarget = dd.rhs.collect {
130+
val exportedTarget = dd.rhs.collect {
131131
case a: Apply => a.fun.asInstanceOf[Select]
132132
case s: Select => s
133133
}
@@ -137,7 +137,7 @@ trait ClassLikeSupport:
137137
case Select(qualifier: Ident, _) => qualifier.tpe.typeSymbol.normalizedName
138138
}.getOrElse("instance")
139139
val dri = dd.rhs.collect {
140-
case s: Select if s.symbol.isDefDef => s.symbol.dri
140+
case s: Select if s.symbol.isDefDef => s.symbol.dri
141141
}.orElse(exportedTarget.map(_.qualifier.tpe.typeSymbol.dri))
142142
Some(parseMethod(dd.symbol, kind = Kind.Exported).withOrigin(Origin.ExportedFrom(s"$instanceName.$functionName", dri)))
143143

@@ -151,7 +151,7 @@ trait ClassLikeSupport:
151151
&& (!vd.symbol.flags.is(Flags.Case) || !vd.symbol.flags.is(Flags.Enum))
152152
&& vd.symbol.isGiven =>
153153
val classDef = Some(vd.tpt.tpe).flatMap(_.classSymbol.map(_.tree.asInstanceOf[ClassDef]))
154-
Some(classDef.filter(_.symbol.flags.is(Flags.ModuleClass)).fold[Member](parseValDef(vd))(parseGivenClasslike(_)))
154+
Some(classDef.filter(_.symbol.flags.is(Flags.Module)).fold[Member](parseValDef(vd))(parseGivenClasslike(_)))
155155

156156
case vd: ValDef if !isSyntheticField(vd.symbol) && (!vd.symbol.flags.is(Flags.Case) || !vd.symbol.flags.is(Flags.Enum)) =>
157157
Some(parseValDef(vd))
@@ -261,7 +261,7 @@ trait ClassLikeSupport:
261261
)
262262

263263
def parseClasslike(classDef: ClassDef, signatureOnly: Boolean = false): DClass = classDef match
264-
case c: ClassDef if classDef.symbol.flags.is(Flags.Object) => parseObject(c, signatureOnly)
264+
case c: ClassDef if classDef.symbol.flags.is(Flags.Module) => parseObject(c, signatureOnly)
265265
case c: ClassDef if classDef.symbol.flags.is(Flags.Enum) => parseEnum(c, signatureOnly)
266266
case clazz => DClass(classDef)(signatureOnly = signatureOnly)
267267

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ trait NameNormalizer { self: TastyParser =>
66
import qctx.reflect._
77
extension (s: Symbol) def normalizedName: String = {
88
val withoutGivenPrefix = if s.isGiven then s.name.stripPrefix("given_") else s.name
9-
val withoutObjectSuffix = if s.flags.is(Flags.Object) then withoutGivenPrefix.stripSuffix("$") else withoutGivenPrefix
9+
val withoutObjectSuffix = if s.flags.is(Flags.Module) then withoutGivenPrefix.stripSuffix("$") else withoutGivenPrefix
1010
val constructorNormalizedName = if s.isClassConstructor then "this" else withoutObjectSuffix
1111
constructorNormalizedName
1212
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class SymOps[Q <: Quotes](val q: Q):
7878

7979
def getCompanionSymbol: Option[Symbol] = Some(sym.companionClass).filter(_.exists)
8080

81-
def isCompanionObject: Boolean = sym.flags.is(Flags.Object) && sym.companionClass.exists
81+
def isCompanionObject: Boolean = sym.flags.is(Flags.Module) && sym.companionClass.exists
8282

8383
def isGiven: Boolean = sym.flags.is(Flags.Given)
8484

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ trait SyntheticsSupport:
3838
def getAllMembers: List[Symbol] = hackGetAllMembers(using qctx)(s)
3939

4040
def isSyntheticField(c: Symbol) =
41-
c.flags.is(Flags.CaseAccessor) || (c.flags.is(Flags.Object) && !c.flags.is(Flags.Given))
41+
c.flags.is(Flags.CaseAccessor) || (c.flags.is(Flags.Module) && !c.flags.is(Flags.Given))
4242

4343
def isValidPos(pos: Position) =
4444
pos.exists && pos.start != pos.end

scala3doc/src/dotty/dokka/tasty/comments/MemberLookup.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ trait MemberLookup {
101101
)
102102

103103
def hackResolveModule(s: Symbol): Symbol =
104-
if s.flags.is(Flags.Object) then s.moduleClass else s
104+
if s.flags.is(Flags.Module) then s.moduleClass else s
105105

106106
val matched = syms.find(matches)
107107

scala3doc/test/dotty/dokka/tasty/comments/MemberLookupTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class LookupTestCases[Q <: Quotes](val q: Quotes) {
8686
case class Sym(symbol: q.reflect.Symbol) {
8787
def fld(name: String) =
8888
def hackResolveModule(s: q.reflect.Symbol): q.reflect.Symbol =
89-
if s.flags.is(q.reflect.Flags.Object) then s.moduleClass else s
89+
if s.flags.is(q.reflect.Flags.Module) then s.moduleClass else s
9090
Sym(hackResolveModule(symbol.field(name)))
9191
def fun(name: String) =
9292
val List(sym) = symbol.method(name)

tests/run-custom-args/tasty-interpreter/interpreter/jvm/Interpreter.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class Interpreter[Q <: Quotes & Singleton](using q0: Q) extends TreeInterpreter[
7171
// FIXME not necesarly static
7272
jvmReflection.interpretStaticVal(fn.symbol.owner, fn.symbol)
7373
case _ =>
74-
if (fn.symbol.flags.is(Flags.Object))
74+
if (fn.symbol.flags.is(Flags.Module))
7575
jvmReflection.loadModule(fn.symbol.moduleClass)
7676
else
7777
jvmReflection.interpretStaticVal(fn.symbol.owner, fn.symbol)

0 commit comments

Comments
 (0)