@@ -460,17 +460,20 @@ func makeBody(value reflect.Value, params fieldParameters) (e encoder, err error
460
460
case flagType :
461
461
return bytesEncoder (nil ), nil
462
462
case timeType :
463
- t := value . Interface ().( time.Time )
463
+ t , _ := reflect. TypeAssert [ time.Time ]( value )
464
464
if params .timeType == TagGeneralizedTime || outsideUTCRange (t ) {
465
465
return makeGeneralizedTime (t )
466
466
}
467
467
return makeUTCTime (t )
468
468
case bitStringType :
469
- return bitStringEncoder (value .Interface ().(BitString )), nil
469
+ v , _ := reflect.TypeAssert [BitString ](value )
470
+ return bitStringEncoder (v ), nil
470
471
case objectIdentifierType :
471
- return makeObjectIdentifier (value .Interface ().(ObjectIdentifier ))
472
+ v , _ := reflect.TypeAssert [ObjectIdentifier ](value )
473
+ return makeObjectIdentifier (v )
472
474
case bigIntType :
473
- return makeBigInt (value .Interface ().(* big.Int ))
475
+ v , _ := reflect.TypeAssert [* big.Int ](value )
476
+ return makeBigInt (v )
474
477
}
475
478
476
479
switch v := value ; v .Kind () {
@@ -605,7 +608,7 @@ func makeField(v reflect.Value, params fieldParameters) (e encoder, err error) {
605
608
}
606
609
607
610
if v .Type () == rawValueType {
608
- rv := v . Interface ().( RawValue )
611
+ rv , _ := reflect. TypeAssert [ RawValue ]( v )
609
612
if len (rv .FullBytes ) != 0 {
610
613
return bytesEncoder (rv .FullBytes ), nil
611
614
}
@@ -650,7 +653,8 @@ func makeField(v reflect.Value, params fieldParameters) (e encoder, err error) {
650
653
tag = params .stringType
651
654
}
652
655
case TagUTCTime :
653
- if params .timeType == TagGeneralizedTime || outsideUTCRange (v .Interface ().(time.Time )) {
656
+ t , _ := reflect.TypeAssert [time.Time ](v )
657
+ if params .timeType == TagGeneralizedTime || outsideUTCRange (t ) {
654
658
tag = TagGeneralizedTime
655
659
}
656
660
}
0 commit comments