diff options
Diffstat (limited to 'src/go/types/testdata/shifts.src')
-rw-r--r-- | src/go/types/testdata/shifts.src | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/go/types/testdata/shifts.src b/src/go/types/testdata/shifts.src index ebc95ba4d7..c9a38ae169 100644 --- a/src/go/types/testdata/shifts.src +++ b/src/go/types/testdata/shifts.src @@ -193,14 +193,27 @@ func shifts6() { _ = float32(1.0 /* ERROR "must be integer" */ <<s) _ = float32(1.1 /* ERROR "must be integer" */ <<s) + _ = int32(0x80000000 /* ERROR "overflows int32" */ << s) + // TODO(rfindley) Eliminate the redundant error here. + _ = int32(( /* ERROR "truncated to int32" */ 0x80000000 /* ERROR "truncated to int32" */ + 0i) << s) + + _ = int(1+0i<<0) + _ = int((1+0i)<<s) + _ = int(1.0<<s) + _ = int(complex(1, 0)<<s) + _ = int(float32/* ERROR "must be integer" */(1.0) <<s) + _ = int(1.1 /* ERROR must be integer */ <<s) + _ = int(( /* ERROR "must be integer" */ 1+1i) <<s) + + _ = complex(1 /* ERROR "must be integer" */ <<s, 0) + var b []int _ = append(b, 1<<s) _ = append(b, 1.0<<s) + _ = append(b, (1+0i)<<s) _ = append(b, 1.1 /* ERROR "must be integer" */ <<s) - - _ = append(b, 1<<s) - _ = append(b, 1.0<<s) // should fail - see TODO in append code - _ = append(b, 1.1 /* ERROR "must be integer" */ <<s) + _ = append(b, (1 + 0i) <<s) + _ = append(b, ( /* ERROR "must be integer" */ 1 + 1i) <<s) _ = complex(1.0 /* ERROR "must be integer" */ <<s, 0) _ = complex(1.1 /* ERROR "must be integer" */ <<s, 0) @@ -379,4 +392,4 @@ func issue22969() { var _ int8 = 0xff /* ERROR "overflows int8" */ << s var _ int16 = 0xffff /* ERROR "overflows int16" */ << s var _ int32 = 0x80000000 /* ERROR "overflows int32" */ << s -}
\ No newline at end of file +} |