Skip to content

Commit 9e8c454

Browse files
committed
Make Flags and abstract type in TASTy reflect
1 parent d72ef55 commit 9e8c454

File tree

12 files changed

+180
-250
lines changed

12 files changed

+180
-250
lines changed

compiler/src/dotty/tools/dotc/tastyreflect/CoreImpl.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,6 @@ trait CoreImpl extends scala.tasty.reflect.Core {
127127
type BindSymbol = core.Symbols.TermSymbol
128128
type ValSymbol = core.Symbols.TermSymbol
129129
type NoSymbol = core.Symbols.NoSymbol.type
130+
131+
type Flags = core.Flags.FlagSet
130132
}

compiler/src/dotty/tools/dotc/tastyreflect/FlagSet.scala

Lines changed: 0 additions & 68 deletions
This file was deleted.

compiler/src/dotty/tools/dotc/tastyreflect/FlagsOpsImpl.scala

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,40 @@ import scala.tasty.reflect
77

88
trait FlagsOpsImpl extends scala.tasty.reflect.FlagsOps with CoreImpl {
99

10-
def FlagsDeco(flagSet: scala.tasty.reflect.FlagSet): FlagsAPI = new FlagsAPI {
11-
def is(that: reflect.FlagSet): Boolean = flagSet.asInstanceOf[FlagSet].flags is that.asInstanceOf[FlagSet].flags
12-
def |(that: reflect.FlagSet): reflect.FlagSet = new FlagSet(flagSet.asInstanceOf[FlagSet].flags | that.asInstanceOf[FlagSet].flags)
13-
def &(that: reflect.FlagSet): reflect.FlagSet = new FlagSet(flagSet.asInstanceOf[FlagSet].flags & that.asInstanceOf[FlagSet].flags)
10+
def FlagsDeco(flagSet: Flags): FlagsAPI = new FlagsAPI {
11+
def is(that: Flags): Boolean = flagSet is that
12+
def |(that: Flags): Flags = flagSet | that
13+
def &(that: Flags): Flags = flagSet & that
1414
}
1515

1616
object Flags extends FlagsModule {
17-
def Protected: FlagSet = new FlagSet(core.Flags.Protected)
18-
def Abstract: FlagSet = new FlagSet(core.Flags.Abstract)
19-
def Final: FlagSet = new FlagSet(core.Flags.Final)
20-
def Sealed: FlagSet = new FlagSet(core.Flags.Sealed)
21-
def Case: FlagSet = new FlagSet(core.Flags.Case)
22-
def Implicit: FlagSet = new FlagSet(core.Flags.Implicit)
23-
def Erased: FlagSet = new FlagSet(core.Flags.Erased)
24-
def Lazy: FlagSet = new FlagSet(core.Flags.Lazy)
25-
def Override: FlagSet = new FlagSet(core.Flags.Override)
26-
def Inline: FlagSet = new FlagSet(core.Flags.Inline)
27-
def Macro: FlagSet = new FlagSet(core.Flags.Macro)
28-
def Static: FlagSet = new FlagSet(core.Flags.JavaStatic)
29-
def Object: FlagSet = new FlagSet(core.Flags.Module)
30-
def Trait: FlagSet = new FlagSet(core.Flags.Trait)
31-
def Local: FlagSet = new FlagSet(core.Flags.Local)
32-
def Synthetic: FlagSet = new FlagSet(core.Flags.Synthetic)
33-
def Artifact: FlagSet = new FlagSet(core.Flags.Artifact)
34-
def Mutable: FlagSet = new FlagSet(core.Flags.Mutable)
35-
def FieldAccessor: FlagSet = new FlagSet(core.Flags.Accessor)
36-
def CaseAcessor: FlagSet = new FlagSet(core.Flags.CaseAccessor)
37-
def Covariant: FlagSet = new FlagSet(core.Flags.Covariant)
38-
def Contravariant: FlagSet = new FlagSet(core.Flags.Contravariant)
39-
def Scala2X: FlagSet = new FlagSet(core.Flags.Scala2x)
40-
def DefaultParameterized: FlagSet = new FlagSet(core.Flags.DefaultParameterized)
41-
def Stable: FlagSet = new FlagSet(core.Flags.Stable)
42-
def Param: FlagSet = new FlagSet(core.Flags.Param)
43-
def ParamAccessor: FlagSet = new FlagSet(core.Flags.ParamAccessor)
17+
def Protected: Flags = core.Flags.Protected
18+
def Abstract: Flags = core.Flags.Abstract
19+
def Final: Flags = core.Flags.Final
20+
def Sealed: Flags = core.Flags.Sealed
21+
def Case: Flags = core.Flags.Case
22+
def Implicit: Flags = core.Flags.Implicit
23+
def Erased: Flags = core.Flags.Erased
24+
def Lazy: Flags = core.Flags.Lazy
25+
def Override: Flags = core.Flags.Override
26+
def Inline: Flags = core.Flags.Inline
27+
def Macro: Flags = core.Flags.Macro
28+
def Static: Flags = core.Flags.JavaStatic
29+
def Object: Flags = core.Flags.Module
30+
def Trait: Flags = core.Flags.Trait
31+
def Local: Flags = core.Flags.Local
32+
def Synthetic: Flags = core.Flags.Synthetic
33+
def Artifact: Flags = core.Flags.Artifact
34+
def Mutable: Flags = core.Flags.Mutable
35+
def FieldAccessor: Flags = core.Flags.Accessor
36+
def CaseAcessor: Flags = core.Flags.CaseAccessor
37+
def Covariant: Flags = core.Flags.Covariant
38+
def Contravariant: Flags = core.Flags.Contravariant
39+
def Scala2X: Flags = core.Flags.Scala2x
40+
def DefaultParameterized: Flags = core.Flags.DefaultParameterized
41+
def Stable: Flags = core.Flags.Stable
42+
def Param: Flags = core.Flags.Param
43+
def ParamAccessor: Flags = core.Flags.ParamAccessor
4444
}
4545

4646
}

compiler/src/dotty/tools/dotc/tastyreflect/PrintersImpl.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
package dotty.tools.dotc.tastyreflect
2+
import dotty.tools.dotc.core.Flags
23

34
trait PrintersImpl extends scala.tasty.reflect.Printers with scala.tasty.reflect.Core { reflect: ReflectionImpl =>
45

@@ -48,4 +49,9 @@ trait PrintersImpl extends scala.tasty.reflect.Printers with scala.tasty.reflect
4849
def showCode(implicit ctx: Context): String = showSourceCode.showSymbol(symbol)
4950
}
5051

52+
/** Adds `show` as an extension method of a `Flags` */
53+
implicit def FlagsShowDeco(flags: Flags): ShowAPI = new ShowAPI {
54+
def show(implicit ctx: Context): String = showExtractors.showFlags(flags)
55+
def showCode(implicit ctx: Context): String = showSourceCode.showFlags(flags)
56+
}
5157
}

compiler/src/dotty/tools/dotc/tastyreflect/SymbolOpsImpl.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ trait SymbolOpsImpl extends scala.tasty.reflect.SymbolOps with CoreImpl {
99

1010
def SymbolDeco(symbol: Symbol): SymbolAPI = new SymbolAPI {
1111

12-
def flags(implicit ctx: Context): FlagSet = new FlagSet(symbol.flags)
12+
def flags(implicit ctx: Context): Flags = symbol.flags
1313

1414
def privateWithin(implicit ctx: Context): Option[Type] = {
1515
val within = symbol.privateWithin

library/src/scala/tasty/reflect/Core.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ package scala.tasty.reflect
109109
* +- BindSymbol
110110
* +- NoSymbol
111111
*
112+
* +- Flags
113+
*
112114
* Aliases:
113115
* # TermOrTypeTree = Term | TypeTree
114116
*
@@ -445,4 +447,6 @@ trait Core {
445447
/** No symbol available. */
446448
type NoSymbol <: Symbol
447449

450+
/** FlagSet of a Symbol */
451+
type Flags
448452
}

library/src/scala/tasty/reflect/FlagSet.scala

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)