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(uint16, uint) pure suffix returns (int16) {}
function uSuffix(uint8, uint) pure suffix returns (uint) {}
function uSuffix(uint16, uint) pure suffix returns (int) {}
function iSuffix(int8, uint) pure suffix returns (int24) {}
function iSuffix(int16, uint) pure suffix returns (int32) {}
function iSuffix(int8, uint) pure suffix returns (uint) {}
function iSuffix(int16, uint) pure suffix returns (int) {}
function iuSuffix(uint8, uint) pure suffix returns (int40) {}
function iuSuffix(int8, uint) pure suffix returns (int48) {}
function iuSuffix(uint8, uint) pure suffix returns (int) {}
function iuSuffix(int8, uint) pure suffix returns (uint) {}
contract C {
int16 a = 1.024 uSuffix;
int32 b = 1.024 iSuffix;
int a = 1.024 uSuffix;
int b = 1.024 iSuffix;
int16 c = -1.024 uSuffix;
int32 d = -1.024 iSuffix;
int c = -1.024 uSuffix;
int d = -1.024 iSuffix;
int40 e = 2.55 iuSuffix;
int40 f = -2.55 iuSuffix;
int e = 2.55 iuSuffix;
int f = -2.55 iuSuffix;
}

View File

@ -1,8 +1,8 @@
function iuSuffix(uint8, uint) pure suffix returns (uint) {}
function iuSuffix(int8, uint) pure suffix returns (uint) {}
function iuSuffix(uint8, uint) pure suffix returns (int) {}
function iuSuffix(int8, uint) pure suffix returns (int) {}
contract C {
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(uint16, uint) pure suffix returns (uint) {}
function uSuffix(uint8, uint) pure suffix returns (int) {}
function uSuffix(uint16, uint) pure suffix returns (int) {}
contract C {
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, uint) pure suffix returns (int) {}
function suffix256(uint) pure suffix returns (bool) {}
function suffix256(uint, uint) pure suffix returns (address) {}
function suffix8(uint) pure suffix returns (uint8) {}
function suffix8(uint8, uint) pure suffix returns (int8) {}
function suffix8(uint) pure suffix returns (bool) {}
function suffix8(uint8, uint) pure suffix returns (address) {}
contract C {
int a = 1.1 suffix256;
uint8 b = 1024 suffix8;
// Not ambiguous: no way to convert 1.1 into uint.
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, uint) pure suffix returns (int) {}
function suffix(uint) pure suffix returns (bool) {}
function suffix(uint, uint) pure suffix returns (address) {}
contract C {
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(uint16) pure suffix returns (int16) {}
function uSuffix(uint8) pure suffix returns (uint) {}
function uSuffix(uint16) pure suffix returns (int) {}
function iSuffix(int8) pure suffix returns (int24) {}
function iSuffix(int16) pure suffix returns (int32) {}
function iSuffix(int8) pure suffix returns (uint) {}
function iSuffix(int16) pure suffix returns (int) {}
function iuSuffix(uint8) pure suffix returns (int40) {}
function iuSuffix(int8) pure suffix returns (int48) {}
function iuSuffix(uint8) pure suffix returns (int) {}
function iuSuffix(int8) pure suffix returns (uint) {}
contract C {
int16 a = 1024 uSuffix;
int32 b = 1024 iSuffix;
int a = 1024 uSuffix;
int b = 1024 iSuffix;
int16 c = -1024 uSuffix;
int32 d = -1024 iSuffix;
int c = -1024 uSuffix;
int d = -1024 iSuffix;
int40 e = 255 iuSuffix;
int40 f = -255 iuSuffix;
int e = 255 iuSuffix;
int f = -255 iuSuffix;
}