Skip to content

Commit 7b8ffd7

Browse files
committed
small update for types
1 parent a43c728 commit 7b8ffd7

File tree

3 files changed

+26
-24
lines changed

3 files changed

+26
-24
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ trait TypeOrBoundsTreesOpsImpl extends scala.tasty.reflect.TypeOrBoundsTreeOps w
1818

1919
def TypeTreeDeco(tpt: TypeTree): TypeTreeAPI = new TypeTreeAPI {
2020
def pos(implicit ctx: Context): Position = tpt.pos
21+
def symbol(implicit ctx: Context): Symbol = tpt.symbol
2122
def tpe(implicit ctx: Context): Type = tpt.tpe.stripTypeVar
2223
def symbol(implicit ctx: Context): Symbol = tpt.symbol
2324
}
@@ -31,8 +32,6 @@ trait TypeOrBoundsTreesOpsImpl extends scala.tasty.reflect.TypeOrBoundsTreeOps w
3132

3233
object TypeTree extends TypeTreeModule {
3334

34-
def symbol(x: TypeTree)(implicit ctx: Context): Symbol =
35-
x.symbol
3635
object Synthetic extends SyntheticExtractor {
3736
def unapply(x: TypeTree)(implicit ctx: Context): Boolean = x match {
3837
case x @ Trees.TypeTree() => !x.tpe.isInstanceOf[Types.TypeBounds]

library/src/scala/tasty/reflect/TypeOrBoundsTreeOps.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ trait TypeOrBoundsTreeOps extends Core {
2828
val TypeTree: TypeTreeModule
2929
abstract class TypeTreeModule {
3030

31-
def symbol(x: TypeTree)(implicit ctx: Context): Symbol
3231

3332
/** TypeTree containing an inferred type */
3433
val Synthetic: SyntheticExtractor

semanticdb/src/dotty/semanticdb/SemanticdbConsumer.scala

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,13 @@ class SemanticdbConsumer extends TastyConsumer {
8383
else {
8484
symbol match {
8585
case IsPackageSymbol(symbol) => symbol.name + "/"
86-
case IsClassSymbol(symbol) => symbol.name + "#"
8786
case IsDefSymbol(symbol) =>
8887
symbol.name + disimbiguate(previous_symbol + symbol.name) + "."
8988
case IsValSymbol(symbol) => symbol.name + "."
89+
case IsTypeSymbol(symbol) =>
90+
symbol.name + "#"
91+
case IsClassSymbol(symbol) =>
92+
symbol.name + (if (symbol.flags.isObject) "." else "#")
9093
case owner => {
9194
""
9295
}
@@ -107,7 +110,6 @@ class SemanticdbConsumer extends TastyConsumer {
107110
val symbol_path = iterateParent(symbol)
108111
if (symbol_path == "" || symbol.name == "<init>") return
109112

110-
//println(symbol_path, symbol, range)
111113
occurrences =
112114
occurrences :+
113115
s.SymbolOccurrence(
@@ -136,30 +138,26 @@ class SemanticdbConsumer extends TastyConsumer {
136138
range.endColumn)
137139
}
138140

141+
def typetreeSymbol(typetree: TypeTree): Unit =
142+
typetree match {
143+
case TypeTree.Synthetic => ()
144+
case _ =>
145+
addOccurence(typetree.symbol,
146+
s.SymbolOccurrence.Role.REFERENCE,
147+
range(typetree.pos, typetree.symbol.name))
148+
}
149+
139150
override def traverseTree(tree: Tree)(implicit ctx: Context): Unit = {
140151
//println(tree.pos.startColumn, tree.symbol.name, tree.pos.endColumn)
141152
tree match {
142153
case IsDefinition(body) => {
143-
144-
def typetreeSymbol(typetree: TypeTree): Unit =
145-
typetree match {
146-
case TypeTree.Synthetic => ()
147-
case _ =>
148-
println(tree.symbol,
149-
typetree,
150-
iterateParent(TypeTree.symbol(typetree)))
151-
addOccurence(
152-
TypeTree.symbol(typetree),
153-
s.SymbolOccurrence.Role.REFERENCE,
154-
range(typetree.pos, TypeTree.symbol(typetree).name))
154+
if (tree.symbol.name != "<init>") {
155+
val _ = tree match {
156+
case DefDef(_, _, _, typetree, _) => typetreeSymbol(typetree)
157+
case ValDef(_, typetree, _) => typetreeSymbol(typetree)
158+
case _ => ()
155159
}
156-
157-
val _ = tree match {
158-
case DefDef(_, _, _, typetree, _) => typetreeSymbol(typetree)
159-
case ValDef(_, typetree, _) => typetreeSymbol(typetree)
160-
case _ => ()
161160
}
162-
163161
addOccurence(tree.symbol,
164162
s.SymbolOccurrence.Role.DEFINITION,
165163
range(tree.symbol.pos, tree.symbol.name))
@@ -173,14 +171,20 @@ class SemanticdbConsumer extends TastyConsumer {
173171
super.traverseTree(tree)
174172
}
175173

176-
case Term.Ident(body) => {
174+
case Term.Ident(_) => {
177175
//println(tree.pos.startColumn, tree.pos.endColumn)
178176
//println(tree.namePos.startColumn, tree.namePos.endColumn)
179177
addOccurence(tree.symbol,
180178
s.SymbolOccurrence.Role.REFERENCE,
181179
range(tree.pos, tree.symbol.name))
182180
super.traverseTree(tree)
183181
}
182+
case PackageClause(_) =>
183+
addOccurence(tree.symbol,
184+
s.SymbolOccurrence.Role.REFERENCE,
185+
range(tree.pos, tree.symbol.name))
186+
super.traverseTree(tree)
187+
184188
case tree =>
185189
super.traverseTree(tree)
186190
}

0 commit comments

Comments
 (0)