diff --git a/message/extract/extract.go b/message/extract/extract.go index 5f1aae5..e156f77 100644 --- a/message/extract/extract.go +++ b/message/extract/extract.go @@ -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') @@ -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() diff --git a/message/extract/extract_test.go b/message/extract/extract_test.go index 17685a1..977d767 100644 --- a/message/extract/extract_test.go +++ b/message/extract/extract_test.go @@ -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 { @@ -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 { @@ -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) diff --git a/message/extract/testdata/testdata.go b/message/extract/testdata/testdata.go index 258958b..b939b80 100644 --- a/message/extract/testdata/testdata.go +++ b/message/extract/testdata/testdata.go @@ -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")