fixup! User-defined literal suffixes: Tests

This commit is contained in:
Kamil Śliwak 2023-04-11 17:30:56 +02:00
parent 5edad8f450
commit 876fcef584
6 changed files with 42 additions and 39 deletions

View File

@ -1,19 +1,19 @@
function uSuffix(uint8, uint) pure suffix returns (int8) {} function uSuffix(uint8, uint) pure suffix returns (uint) {}
function uSuffix(uint16, uint) pure suffix returns (int16) {} function uSuffix(uint16, uint) pure suffix returns (int) {}
function iSuffix(int8, uint) pure suffix returns (int24) {} function iSuffix(int8, uint) pure suffix returns (uint) {}
function iSuffix(int16, uint) pure suffix returns (int32) {} function iSuffix(int16, uint) pure suffix returns (int) {}
function iuSuffix(uint8, uint) pure suffix returns (int40) {} function iuSuffix(uint8, uint) pure suffix returns (int) {}
function iuSuffix(int8, uint) pure suffix returns (int48) {} function iuSuffix(int8, uint) pure suffix returns (uint) {}
contract C { contract C {
int16 a = 1.024 uSuffix; int a = 1.024 uSuffix;
int32 b = 1.024 iSuffix; int b = 1.024 iSuffix;
int16 c = -1.024 uSuffix; int c = -1.024 uSuffix;
int32 d = -1.024 iSuffix; int d = -1.024 iSuffix;
int40 e = 2.55 iuSuffix; int e = 2.55 iuSuffix;
int40 f = -2.55 iuSuffix; int f = -2.55 iuSuffix;
} }

View File

@ -1,8 +1,8 @@
function iuSuffix(uint8, uint) pure suffix returns (uint) {} function iuSuffix(uint8, uint) pure suffix returns (int) {}
function iuSuffix(int8, uint) pure suffix returns (uint) {} function iuSuffix(int8, uint) pure suffix returns (int) {}
contract C { contract C {
uint a = 1.27 iuSuffix; uint a = 1.27 iuSuffix;
} }
// ---- // ----
// TypeError 4487: (153-161): No unique declaration found after argument-dependent lookup. // TypeError 4487: (151-159): No unique declaration found after argument-dependent lookup.

View File

@ -1,8 +1,8 @@
function uSuffix(uint8, uint) pure suffix returns (uint) {} function uSuffix(uint8, uint) pure suffix returns (int) {}
function uSuffix(uint16, uint) pure suffix returns (uint) {} function uSuffix(uint16, uint) pure suffix returns (int) {}
contract C { contract C {
uint a = 1.27 uSuffix; uint a = 1.27 uSuffix;
} }
// ---- // ----
// TypeError 4487: (153-160): No unique declaration found after argument-dependent lookup. // TypeError 4487: (151-158): No unique declaration found after argument-dependent lookup.

View File

@ -1,10 +1,13 @@
function suffix256(uint) pure suffix returns (uint) {} function suffix256(uint) pure suffix returns (bool) {}
function suffix256(uint, uint) pure suffix returns (int) {} function suffix256(uint, uint) pure suffix returns (address) {}
function suffix8(uint) pure suffix returns (uint8) {} function suffix8(uint) pure suffix returns (bool) {}
function suffix8(uint8, uint) pure suffix returns (int8) {} function suffix8(uint8, uint) pure suffix returns (address) {}
contract C { contract C {
int a = 1.1 suffix256; // Not ambiguous: no way to convert 1.1 into uint.
uint8 b = 1024 suffix8; address a = 1.1 suffix256;
// Not ambiguous: 1024 won't fit into uint8.
bool b = 1024 suffix8;
} }

View File

@ -1,5 +1,5 @@
function suffix(uint) pure suffix returns (int) {} function suffix(uint) pure suffix returns (bool) {}
function suffix(uint, uint) pure suffix returns (int) {} function suffix(uint, uint) pure suffix returns (address) {}
contract C { contract C {
function f() public pure { function f() public pure {
@ -7,4 +7,4 @@ contract C {
} }
} }
// ---- // ----
// TypeError 4487: (171-177): No unique declaration found after argument-dependent lookup. // TypeError 4487: (176-182): No unique declaration found after argument-dependent lookup.

View File

@ -1,19 +1,19 @@
function uSuffix(uint8) pure suffix returns (int8) {} function uSuffix(uint8) pure suffix returns (uint) {}
function uSuffix(uint16) pure suffix returns (int16) {} function uSuffix(uint16) pure suffix returns (int) {}
function iSuffix(int8) pure suffix returns (int24) {} function iSuffix(int8) pure suffix returns (uint) {}
function iSuffix(int16) pure suffix returns (int32) {} function iSuffix(int16) pure suffix returns (int) {}
function iuSuffix(uint8) pure suffix returns (int40) {} function iuSuffix(uint8) pure suffix returns (int) {}
function iuSuffix(int8) pure suffix returns (int48) {} function iuSuffix(int8) pure suffix returns (uint) {}
contract C { contract C {
int16 a = 1024 uSuffix; int a = 1024 uSuffix;
int32 b = 1024 iSuffix; int b = 1024 iSuffix;
int16 c = -1024 uSuffix; int c = -1024 uSuffix;
int32 d = -1024 iSuffix; int d = -1024 iSuffix;
int40 e = 255 iuSuffix; int e = 255 iuSuffix;
int40 f = -255 iuSuffix; int f = -255 iuSuffix;
} }