Skip to content

Commit

Permalink
fix(message/extract): 能正确处理 Phrase("%s", Phrase("abc")) 形式中的第二个参数的调用
Browse files Browse the repository at this point in the history
  • Loading branch information
caixw committed Feb 17, 2025
1 parent f26240b commit 46babe0
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
6 changes: 3 additions & 3 deletions message/extract/extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,12 @@ func (ex *extractor) inspect(expr *ast.CallExpr, info *types.Info) bool {
s := f.Signature() // typ.Recv 永远返回 nil,只有通过 types.Func.Signature 返回的才会有正确的返回值
if s.Recv() == nil { // func
if !ex.tryAppendMsg(expr, f.Pkg().Path(), "", f.Name()) {
return false
return true
}
} else { // method
pkgName, structName := parseTypeName(s.Recv().Type().String())
if !ex.tryAppendMsg(expr, pkgName, structName, f.Name()) {
return false
return true
}
}
case *types.Alias: // type Alias = localeutil.StringPhrase; Alias('key')
Expand All @@ -197,7 +197,7 @@ func (ex *extractor) inspect(expr *ast.CallExpr, info *types.Info) bool {

pkgName, funcName := parseTypeName(rhs.String())
if !ex.tryAppendMsg(expr, pkgName, "", funcName) {
return false
return true
}
case *types.Named: // type X string; X('key')
obj := typ.Obj()
Expand Down
6 changes: 3 additions & 3 deletions message/extract/extract_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func TestExtract(t *testing.T) {
a.NotError(err).NotNil(l)

m := l.Messages
a.Length(m, 4).
a.Length(m, 5).
Length(sliceutil.Dup(m, func(m1, m2 message.Message) bool { return m1.Key == m2.Key }), 0) // 没有重复值

for _, mm := range m {
Expand All @@ -91,7 +91,7 @@ func TestExtract(t *testing.T) {
NotNil(l)

m := l.Messages
a.Length(m, 9).
a.Length(m, 10).
Length(sliceutil.Dup(m, func(m1, m2 message.Message) bool { return m1.Key == m2.Key }), 0) // 没有重复值

for _, mm := range m {
Expand Down Expand Up @@ -121,7 +121,7 @@ func TestExtract(t *testing.T) {
NotNil(l)

m := l.Messages
a.Length(m, 23)
a.Length(m, 24)

for _, mm := range m {
t.Log(mm.Key)
Expand Down
2 changes: 1 addition & 1 deletion message/extract/testdata/testdata.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var (
_ = localeutil.Phrase(constValue)

_ = localeutil.Phrase("phrase 1")
_ = localeutil.Phrase("phrase 1") // 同值,应该忽略
_ = localeutil.Phrase("phrase 1", localeutil.Phrase("arg")) // 同值,应该忽略,但是参数是一个新的值,需要提取。
_ = localeutil.Phrase("phrase %d", "2")

_ = localeutil.Error("error 1")
Expand Down

0 comments on commit 46babe0

Please sign in to comment.