Index: src/pkg/reflect/all_test.go |
=================================================================== |
--- a/src/pkg/reflect/all_test.go |
+++ b/src/pkg/reflect/all_test.go |
@@ -375,6 +375,29 @@ |
} |
} |
+// Ensure the slice type is available even if never used elsewhere. |
+type brandNewType int |
+ |
+func TestArraySlicing(t *testing.T) { |
+ va := NewValue([10]brandNewType{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) |
+ vi := va.(*ArrayValue).Slice(2, 5).Interface() |
+ v := NewValue(vi) |
+ s := valueToString(v) |
+ const want1 = "[]reflect_test.brandNewType{3, 4, 5}" |
+ if s != want1 { |
+ t.Errorf("Slice: have %#q want %#q", s, want1) |
+ } |
+ |
+ va = NewValue([10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) |
+ vi = va.(*ArrayValue).Slice(2, 5).Interface() |
+ v = NewValue(vi) |
+ s = valueToString(v) |
+ const want2 = "[]int{3, 4, 5}" |
+ if s != want2 { |
+ t.Errorf("Slice: have %#q want %#q", s, want2) |
+ } |
+} |
+ |
func TestPtrPointTo(t *testing.T) { |
var ip *int32 |
var i int32 = 1234 |