Merge PR #7084: types: fix panic on Int.BigInt()

This commit is contained in:
Federico Kunze
2020-08-18 09:16:23 -04:00
committed by GitHub
parent 740a4c50c7
commit 7f0c3f0093
4 changed files with 15 additions and 0 deletions
+4
View File
@@ -208,6 +208,10 @@ func (d Dec) Abs() Dec { return Dec{new(big.Int).Abs(d.i)} } // absolut
// BigInt returns a copy of the underlying big.Int.
func (d Dec) BigInt() *big.Int {
if d.IsNil() {
return nil
}
copy := new(big.Int)
return copy.Set(d.i)
}
+8
View File
@@ -76,9 +76,17 @@ type Int struct {
// BigInt converts Int to big.Int
func (i Int) BigInt() *big.Int {
if i.IsNil() {
return nil
}
return new(big.Int).Set(i.i)
}
// IsNil returns true if Int is uninitialized
func (i Int) IsNil() bool {
return i.i == nil
}
// NewInt constructs Int from int64
func NewInt(n int64) Int {
return Int{big.NewInt(n)}
+2
View File
@@ -81,6 +81,8 @@ func TestIntPanic(t *testing.T) {
// Division-by-zero check
require.Panics(t, func() { i1.Quo(NewInt(0)) })
require.NotPanics(t, func() { Int{}.BigInt() })
}
// Tests below uses randomness