Skip to content

Commit d70d69b

Browse files
Merge pull request #5761 from poechsel/master
SemanticDB generator
2 parents 71dbcab + 4abf222 commit d70d69b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1638
-293
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ trait FlagsOpsImpl extends scala.tasty.reflect.FlagsOps with CoreImpl {
4343
def StableRealizable: Flags = core.Flags.StableRealizable
4444
def Param: Flags = core.Flags.Param
4545
def ParamAccessor: Flags = core.Flags.ParamAccessor
46+
def Enum: Flags = core.Flags.Enum
47+
def ModuleClass: Flags = core.Flags.ModuleClass
48+
def PrivateLocal: Flags = core.Flags.PrivateLocal
49+
def Package: Flags = core.Flags.Package
50+
def ImplClass: Flags = core.Flags.ImplClass
4651
}
4752

4853
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package dotty.tools.dotc.tastyreflect
22

33
import dotty.tools.dotc.ast.{Trees, untpd}
44
import dotty.tools.dotc.core.StdNames.nme
5+
import dotty.tools.dotc.core.Decorators._
56

67
trait ImportSelectorOpsImpl extends scala.tasty.reflect.ImportSelectorOps with CoreImpl {
78

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ trait PatternOpsImpl extends scala.tasty.reflect.PatternOps with CoreImpl {
3636
def PatternDeco(pattern: Pattern): PatternAPI = new PatternAPI {
3737
def pos(implicit ctx: Context): Position = pattern.sourcePos
3838
def tpe(implicit ctx: Context): Type = pattern.tpe.stripTypeVar
39+
def symbol(implicit ctx: Context): Symbol = pattern.symbol
3940
}
4041

4142
object Pattern extends PatternModule {

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ trait SymbolOpsImpl extends scala.tasty.reflect.SymbolOps with CoreImpl {
3030

3131
def owner(implicit ctx: Context): Symbol = symbol.owner
3232

33+
def isLocalDummy(implicit ctx: Context): Boolean = symbol.isLocalDummy
34+
def isRefinementClass(implicit ctx: Context): Boolean = symbol.isRefinementClass
35+
def isAliasType(implicit ctx: Context): Boolean = symbol.isAliasType
36+
def isAnonymousClass(implicit ctx: Context): Boolean = symbol.isAnonymousClass
37+
def isAnonymousFunction(implicit ctx: Context): Boolean = symbol.isAnonymousFunction
38+
def isAbstractType(implicit ctx: Context): Boolean = symbol.isAbstractType
39+
def isClassConstructor(implicit ctx: Context): Boolean = symbol.isClassConstructor
40+
3341
def localContext(implicit ctx: Context): Context = {
3442
if (symbol.exists) ctx.withOwner(symbol)
3543
else ctx
@@ -167,6 +175,11 @@ trait SymbolOpsImpl extends scala.tasty.reflect.SymbolOps with CoreImpl {
167175
if (sym.exists) Some(sym.asTerm) else None
168176
}
169177

178+
def moduleClass(implicit ctx: Context): Option[Symbol] = {
179+
val sym = symbol.moduleClass
180+
if (sym.exists) Some(sym.asTerm) else None
181+
}
182+
170183
private def isField(sym: Symbol)(implicit ctx: Context): Boolean = sym.isTerm && !sym.is(Flags.Method)
171184
}
172185

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ trait TypeOrBoundsOpsImpl extends scala.tasty.reflect.TypeOrBoundsOps with CoreI
2121

2222
def classSymbol(implicit ctx: Context): Option[ClassSymbol] =
2323
if (tpe.classSymbol.exists) Some(tpe.classSymbol.asClass) else None
24+
25+
def typeSymbol(implicit ctx: Context): Symbol = tpe.typeSymbol
2426
}
2527

2628
def ConstantTypeDeco(x: ConstantType): Type.ConstantTypeAPI = new Type.ConstantTypeAPI {

library/src/scala/tasty/reflect/FlagsOps.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,21 @@ trait FlagsOps extends Core {
101101

102102
/** Is this symbol a parameter accessor */
103103
def ParamAccessor: Flags
104+
105+
/** Is this symbol an enum */
106+
def Enum: Flags
107+
108+
/** Is this symbol a module class */
109+
def ModuleClass: Flags
110+
111+
/** Is this symbol labeled private[this] */
112+
def PrivateLocal: Flags
113+
114+
/** Is this symbol a package */
115+
def Package: Flags
116+
117+
/** Is this symbol an implementation class of a Scala2 trait */
118+
def ImplClass: Flags
104119
}
105120

106121
}

library/src/scala/tasty/reflect/PatternOps.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ trait PatternOps extends Core {
1414
def pos(implicit ctx: Context): Position
1515

1616
def tpe(implicit ctx: Context): Type
17+
18+
def symbol(implicit ctx: Context): Symbol
1719
}
1820
implicit def PatternDeco(pattern: Pattern): PatternAPI
1921

library/src/scala/tasty/reflect/Printers.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ trait Printers
129129
if (flags.is(Flags.StableRealizable)) flagList += "Flags.StableRealizable"
130130
if (flags.is(Flags.Param)) flagList += "Flags.Param"
131131
if (flags.is(Flags.ParamAccessor)) flagList += "Flags.ParamAccessor"
132+
if (flags.is(Flags.Enum)) flagList += "Flags.Enum"
133+
if (flags.is(Flags.ModuleClass)) flagList += "Flags.ModuleClass"
134+
if (flags.is(Flags.PrivateLocal)) flagList += "Flags.PrivateLocal"
135+
if (flags.is(Flags.Package)) flagList += "Flags.Package"
136+
if (flags.is(Flags.ImplClass)) flagList += "Flags.ImplClass"
132137
flagList.result().mkString(" | ")
133138
}
134139

@@ -504,6 +509,11 @@ trait Printers
504509
if (flags.is(Flags.StableRealizable)) flagList += "stableRealizable"
505510
if (flags.is(Flags.Param)) flagList += "param"
506511
if (flags.is(Flags.ParamAccessor)) flagList += "paramAccessor"
512+
if (flags.is(Flags.Enum)) flagList += "enum"
513+
if (flags.is(Flags.ModuleClass)) flagList += "moduleClass"
514+
if (flags.is(Flags.PrivateLocal)) flagList += "private[this]"
515+
if (flags.is(Flags.Package)) flagList += "package"
516+
if (flags.is(Flags.ImplClass)) flagList += "implClass"
507517
flagList.result().mkString("/*", " ", "*/")
508518
}
509519

library/src/scala/tasty/reflect/SymbolOps.scala

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ trait SymbolOps extends Core {
1414
/** Flags of this symbol */
1515
def flags(implicit ctx: Context): Flags
1616

17+
def isLocalDummy(implicit ctx: Context): Boolean
18+
def isRefinementClass(implicit ctx: Context): Boolean
19+
def isAliasType(implicit ctx: Context): Boolean
20+
def isAnonymousClass(implicit ctx: Context): Boolean
21+
def isAnonymousFunction(implicit ctx: Context): Boolean
22+
def isAbstractType(implicit ctx: Context): Boolean
23+
def isClassConstructor(implicit ctx: Context): Boolean
24+
1725
/** This symbol is private within the resulting type. */
1826
def privateWithin(implicit ctx: Context): Option[Type]
1927

@@ -26,6 +34,7 @@ trait SymbolOps extends Core {
2634
/** The full name of this symbol up to the root package. */
2735
def fullName(implicit ctx: Context): String
2836

37+
/** The position of this symbol */
2938
def pos(implicit ctx: Context): Position
3039

3140
def localContext(implicit ctx: Context): Context
@@ -111,6 +120,7 @@ trait SymbolOps extends Core {
111120
/** The symbol of the companion module */
112121
def companionModule(implicit ctx: Context): Option[ValSymbol]
113122

123+
def moduleClass(implicit ctx: Context): Option[Symbol]
114124
}
115125
implicit def ClassSymbolDeco(symbol: ClassSymbol): ClassSymbolAPI
116126

@@ -170,7 +180,7 @@ trait SymbolOps extends Core {
170180
}
171181

172182
trait BindSymbolAPI {
173-
/** Bind pattern of this defintion. */
183+
/** Bind pattern of this definition. */
174184
def tree(implicit ctx: Context): Bind
175185
}
176186
implicit def BindSymbolDeco(symbol: BindSymbol): BindSymbolAPI

library/src/scala/tasty/reflect/TypeOrBoundsOps.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ trait TypeOrBoundsOps extends Core {
5454
def <:<(other: Type)(implicit ctx: Context): Boolean
5555
def widen(implicit ctx: Context): Type
5656
def classSymbol(implicit ctx: Context): Option[ClassSymbol]
57+
def typeSymbol(implicit ctx: Context): Symbol
5758
}
5859

5960
val IsType: IsTypeModule

0 commit comments

Comments
 (0)