@@ -35,12 +35,14 @@ class SemanticdbConsumer(sourceFile: java.nio.file.Path) extends TastyConsumer {
35
35
36
36
object ChildTraverser extends TreeTraverser {
37
37
var children : List [Tree ] = Nil
38
+ var childrenType : List [TypeOrBoundsTree ] = Nil
38
39
override def traverseTree (tree : Tree )(implicit ctx : Context ): Unit =
39
40
children = tree :: children
40
41
override def traversePattern (pattern : Pattern )(
41
42
implicit ctx : Context ): Unit = ()
42
43
override def traverseTypeTree (tree : TypeOrBoundsTree )(
43
- implicit ctx : Context ): Unit = ()
44
+ implicit ctx : Context ): Unit =
45
+ childrenType = tree :: childrenType
44
46
override def traverseCaseDef (tree : CaseDef )(implicit ctx : Context ): Unit =
45
47
()
46
48
override def traverseTypeCaseDef (tree : TypeCaseDef )(
@@ -52,6 +54,11 @@ class SemanticdbConsumer(sourceFile: java.nio.file.Path) extends TastyConsumer {
52
54
traverseTreeChildren(tree)(ctx)
53
55
return children
54
56
}
57
+ def getChildrenType (tree : TypeOrBoundsTree )(implicit ctx : Context ): List [TypeOrBoundsTree ] = {
58
+ childrenType = Nil
59
+ traverseTypeTreeChildren(tree)(ctx)
60
+ return childrenType
61
+ }
55
62
}
56
63
57
64
object Traverser extends TreeTraverser {
@@ -66,6 +73,12 @@ class SemanticdbConsumer(sourceFile: java.nio.file.Path) extends TastyConsumer {
66
73
67
74
implicit class TypeTreeExtender (tree : TypeTree ) {
68
75
def isUserCreated : Boolean = {
76
+ val children : List [Position ] =
77
+ ChildTraverser .getChildrenType(tree)(reflect.rootContext).collect(_ match {
78
+ case IsTypeTree (tt) => tt.pos})
79
+ println(children)
80
+ return ! ((tree.pos.exists && tree.pos.start == tree.pos.end && children == Nil ) || children
81
+ .exists(_ == tree.pos))
69
82
return ! (tree.pos.exists && tree.pos.start == tree.pos.end)
70
83
}
71
84
}
@@ -436,7 +449,7 @@ class SemanticdbConsumer(sourceFile: java.nio.file.Path) extends TastyConsumer {
436
449
def addOccurenceTypeTree (typetree : TypeTree ,
437
450
type_symbol : s.SymbolOccurrence .Role ,
438
451
range : s.Range ): Unit = {
439
- println(typetree)
452
+ println(typetree.symbol, typetree.isUserCreated )
440
453
if (typetree.isUserCreated) {
441
454
addOccurence(typetree.symbol, type_symbol, range)
442
455
}
0 commit comments