Skip to content

Commit f3a0c0b

Browse files
committed
fix:(go) add receiver into Node.Dependencies
1 parent e908c9f commit f3a0c0b

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

lang/uniast/node.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func calOffset(ref, dep FileLine) int {
9090

9191
func (r *Repository) AddRelation(node *Node, dep Identity, depFl FileLine) {
9292
line := calOffset(node.FileLine(), depFl)
93-
node.Dependencies = append(node.Dependencies, Relation{
93+
node.Dependencies = InsertRelation(node.Dependencies, Relation{
9494
Identity: dep,
9595
Kind: DEPENDENCY,
9696
Line: line,
@@ -104,7 +104,7 @@ func (r *Repository) AddRelation(node *Node, dep Identity, depFl FileLine) {
104104
}
105105
r.Graph[key] = nd
106106
}
107-
nd.References = append(nd.References, Relation{
107+
nd.References = InsertRelation(nd.References, Relation{
108108
Identity: node.Identity,
109109
Kind: REFERENCE,
110110
Line: line,
@@ -145,6 +145,9 @@ func (r *Repository) BuildGraph() error {
145145
for _, dep := range f.Types {
146146
r.AddRelation(n, dep.Identity, dep.FileLine)
147147
}
148+
if f.Receiver != nil {
149+
r.AddRelation(n, f.Receiver.Type, n.FileLine())
150+
}
148151
for _, dep := range f.GlobalVars {
149152
r.AddRelation(n, dep.Identity, dep.FileLine)
150153
}

lang/uniast/utils.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,15 @@ func InserImport(ids []Import, id Import) []Import {
3939
return append(ids, id)
4040
}
4141

42+
func InsertRelation(ids []Relation, id Relation) []Relation {
43+
for _, i := range ids {
44+
if i.Identity == id.Identity {
45+
return ids
46+
}
47+
}
48+
return append(ids, id)
49+
}
50+
4251
func LoadRepo(path string) (*Repository, error) {
4352
bs, err := os.ReadFile(path)
4453
if err != nil {

0 commit comments

Comments
 (0)