Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
e74582cc
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
e74582cc
编写于
1月 18, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: [go] fix interface{} as param issues
上级
eea04448
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
8 deletion
+18
-8
pkg/infrastructure/ast/cocago/cocago_builder.go
pkg/infrastructure/ast/cocago/cocago_builder.go
+12
-2
pkg/infrastructure/ast/cocago/testdata/regression/coll_stack.json
...astructure/ast/cocago/testdata/regression/coll_stack.json
+6
-6
未找到文件。
pkg/infrastructure/ast/cocago/cocago_builder.go
浏览文件 @
e74582cc
...
...
@@ -41,6 +41,9 @@ func BuildPropertyField(name string, field *ast.Field) *CodeProperty {
typeType
=
"Star"
case
*
ast
.
SelectorExpr
:
typeName
=
getSelectorName
(
*
x
)
case
*
ast
.
InterfaceType
:
typeType
=
"interface"
typeType
=
"interface{}"
// todo: need check for all interface
default
:
fmt
.
Fprintf
(
output
,
"BuildPropertyField %s
\n
"
,
reflect
.
TypeOf
(
x
))
}
...
...
@@ -161,7 +164,7 @@ func BuildMethodCallExprStmt(it *ast.ExprStmt, codeFunc *CodeFunction, fields []
func
BuildCallFromExpr
(
expr
*
ast
.
CallExpr
,
codeFunc
*
CodeFunction
,
fields
[]
CodeField
,
imports
[]
CodeImport
,
currentPackage
string
,
localVars
[]
CodeProperty
)
CodeCall
{
_
,
selector
,
selName
:=
BuildExpr
(
expr
.
Fun
.
(
ast
.
Expr
))
target
:=
ParseTarget
(
selector
,
fields
,
localVars
)
target
:=
ParseTarget
(
selector
,
fields
,
localVars
,
codeFunc
)
packageName
:=
getPackageName
(
target
,
imports
)
if
packageName
==
""
{
packageName
=
currentPackage
...
...
@@ -218,7 +221,14 @@ func getPackageName(target string, imports []CodeImport) string {
return
packageName
}
func
ParseTarget
(
selector
string
,
fields
[]
CodeField
,
localVars
[]
CodeProperty
)
string
{
func
ParseTarget
(
selector
string
,
fields
[]
CodeField
,
localVars
[]
CodeProperty
,
codeFunc
*
CodeFunction
)
string
{
if
codeFunc
!=
nil
{
for
_
,
param
:=
range
codeFunc
.
Parameters
{
if
param
.
TypeValue
==
selector
{
return
param
.
TypeType
}
}
}
for
_
,
localVar
:=
range
localVars
{
if
selector
==
localVar
.
TypeValue
{
return
localVar
.
TypeType
...
...
pkg/infrastructure/ast/cocago/testdata/regression/coll_stack.json
浏览文件 @
e74582cc
...
...
@@ -23,7 +23,7 @@
"StopLine"
:
0
,
"StopLinePosition"
:
0
},
"Type"
:
""
"Type"
:
"
t
"
},
{
"MethodName"
:
"Unlock"
,
...
...
@@ -36,7 +36,7 @@
"StopLine"
:
0
,
"StopLinePosition"
:
0
},
"Type"
:
""
"Type"
:
"
interface{}
"
},
{
"MethodName"
:
"PushFront"
,
...
...
@@ -58,7 +58,7 @@
"StopLine"
:
0
,
"StopLinePosition"
:
0
},
"Type"
:
""
"Type"
:
"
t
"
}
],
"InnerFunctions"
:
null
,
...
...
@@ -75,7 +75,7 @@
"Name"
:
"t"
,
"Parameters"
:
null
,
"ReturnTypes"
:
null
,
"TypeType"
:
""
,
"TypeType"
:
"
interface{}
"
,
"TypeValue"
:
""
}
],
...
...
@@ -129,7 +129,7 @@
"Name"
:
""
,
"Parameters"
:
null
,
"ReturnTypes"
:
null
,
"TypeType"
:
""
,
"TypeType"
:
"
interface{}
"
,
"TypeValue"
:
""
}
],
...
...
@@ -186,7 +186,7 @@
"Name"
:
""
,
"Parameters"
:
null
,
"ReturnTypes"
:
null
,
"TypeType"
:
""
,
"TypeType"
:
"
interface{}
"
,
"TypeValue"
:
""
}
],
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录