t.Fatalf("should loop four times")
}
}},
- {"method", ValueOf(methodIter{}).Method(0), func(t *testing.T, s iter.Seq[Value]) {
+ {"method", ValueOf(methodIter{}).MethodByName("Seq"), func(t *testing.T, s iter.Seq[Value]) {
i := int64(0)
for v := range s {
if v.Int() != i {
t.Fatalf("should loop four times")
}
}},
- {"method", ValueOf(methodIter2{}).Method(0), func(t *testing.T, s iter.Seq2[Value, Value]) {
+ {"method", ValueOf(methodIter2{}).MethodByName("Seq2"), func(t *testing.T, s iter.Seq2[Value, Value]) {
i := int64(0)
for v1, v2 := range s {
if v1.Int() != i {
}
}
+// For Type.CanSeq test.
+func (methodIter) NonSeq(yield func(int)) {}
+
// methodIter2 is a type from which we can derive a method
// value that is an iter.Seq2.
type methodIter2 struct{}
}
}
}
+
+// For Type.CanSeq2 test.
+func (methodIter2) NonSeq2(yield func(int, int)) {}
}{
{"func(func(int) bool)", reflect.TypeOf(func(func(int) bool) {}), true},
{"func(func(int))", reflect.TypeOf(func(func(int)) {}), false},
+ {"methodIter.Seq", reflect.ValueOf(methodIter{}).MethodByName("Seq").Type(), true},
+ {"methodIter.NonSeq", reflect.ValueOf(methodIter{}).MethodByName("NonSeq").Type(), false},
{"int64", reflect.TypeOf(int64(1)), true},
{"uint64", reflect.TypeOf(uint64(1)), true},
{"*[4]int", reflect.TypeOf(&[4]int{}), true},
}{
{"func(func(int, int) bool)", reflect.TypeOf(func(func(int, int) bool) {}), true},
{"func(func(int, int))", reflect.TypeOf(func(func(int, int)) {}), false},
+ {"methodIter2.Seq2", reflect.ValueOf(methodIter2{}).MethodByName("Seq2").Type(), true},
+ {"methodIter2.NonSeq2", reflect.ValueOf(methodIter2{}).MethodByName("NonSeq2").Type(), false},
{"int64", reflect.TypeOf(int64(1)), false},
{"uint64", reflect.TypeOf(uint64(1)), false},
{"*[4]int", reflect.TypeOf(&[4]int{}), true},