github / github/codeql

Writing a query to find declarations of nested structs in Golang.

未关闭
#17,134 5 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
CodeQL
星标
10.1k
派生
2.1k
平均合并
2 天 15 小时
30 天内合并 PR
141

描述

**Description of the issue**

I want to write a query to find the nested structs in an struct in Golang.
Let's say my struct is something like:
```
type SomeStruct struct {
field1 int
field2 dto.NewStruct
field3 []*statusCode
field4 map[string]http.Response
field5 map[category.Category]map[time.Time]*http.Header
field6 []statusCode
field7 []*time.Time
field8 http.Request
field9 statusCode
}
```
and I want to write a query that gives me all the nested types in this struct ie. `statusCode,Response,Category,Time,Header,NewStruct` etc.
The field types can be more complex than what is mentioned here.
My main problem statement is to find the declarations of these nested structs, which I will continue my query by finding all `typedecl` with their `idents` matching with the above mentioned `idents` while matching the import path and the filepath for nested objects from different packages like `dto.NewStruct`. If there is some better approach please suggest.
Please suggest me an approach.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。