aboutsummaryrefslogtreecommitdiff
path: root/src/lib/json
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-02-11 17:55:16 -0800
committerRuss Cox <rsc@golang.org>2009-02-11 17:55:16 -0800
commit49e2087848c6c8a0f32bee62d2242d85ab044b33 (patch)
tree3a27c60cd93482129d8beda588d769a2d7868d4d /src/lib/json
parent7cd24361bd66f11ec2beb1905052a3b73cdf3dac (diff)
downloadgo-49e2087848c6c8a0f32bee62d2242d85ab044b33.tar.xz
insert type assertions when narrowing.
R=r OCL=24349 CL=24913
Diffstat (limited to 'src/lib/json')
-rw-r--r--src/lib/json/generic.go4
-rw-r--r--src/lib/json/struct.go4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/json/generic.go b/src/lib/json/generic.go
index b57fcb12e2..08ae8dc29f 100644
--- a/src/lib/json/generic.go
+++ b/src/lib/json/generic.go
@@ -75,7 +75,7 @@ func (j *_Array) Elem(i int) Json {
if i < 0 || i >= j.a.Len() {
return Null
}
- return j.a.At(i)
+ return j.a.At(i).(Json)
}
func (j *_Array) String() string {
s := "[";
@@ -232,7 +232,7 @@ func (b *_JsonBuilder) Get() Json {
case b.ptr != nil:
return *b.ptr;
case b.a != nil:
- return b.a.At(b.i);
+ return b.a.At(b.i).(Json);
case b.m != nil:
return b.m[b.k];
}
diff --git a/src/lib/json/struct.go b/src/lib/json/struct.go
index f37ee461ef..82e0a80a7b 100644
--- a/src/lib/json/struct.go
+++ b/src/lib/json/struct.go
@@ -122,7 +122,7 @@ func (b *_StructBuilder) Array() {
pv := v.(reflect.PtrValue);
psubtype := pv.Type().(reflect.PtrType).Sub();
if pv.Get() == nil && psubtype.Kind() == reflect.ArrayKind {
- av := reflect.NewSliceValue(psubtype, 0, 8);
+ av := reflect.NewSliceValue(psubtype.(reflect.ArrayType), 0, 8);
pv.SetSub(av);
}
}
@@ -148,7 +148,7 @@ func (b *_StructBuilder) Elem(i int) Builder {
for n <= i {
n *= 2
}
- av1 := reflect.NewSliceValue(av.Type(), av.Len(), n);
+ av1 := reflect.NewSliceValue(av.Type().(reflect.ArrayType), av.Len(), n);
av1.CopyFrom(av, av.Len());
pv.SetSub(av1);
av = av1;