Better error message when trying to call things that are not functions

This commit is contained in:
Kamil Śliwak
2023-04-04 17:30:37 +02:00
parent 293690e5a4
commit a019f400d0
13 changed files with 46 additions and 8 deletions
@@ -0,0 +1,7 @@
enum E { A, B, C }
contract C {
uint a = E.B(1000);
}
// ----
// TypeError 5704: (46-55): Enum is not callable.
@@ -5,4 +5,4 @@ contract C
}
}
// ----
// TypeError 5704: (53-60): Type is not callable
// TypeError 5704: (53-60): Rational number literal is not callable.
@@ -0,0 +1,5 @@
contract C {
uint a = msg(1000);
}
// ----
// TypeError 5704: (26-35): Magic variable is not callable.
@@ -0,0 +1,6 @@
contract C {
mapping (uint => uint) m;
uint a = m(1000);
}
// ----
// TypeError 5704: (56-63): Mapping is not callable.
@@ -0,0 +1,7 @@
contract C {
uint a = m(1000);
modifier m(uint) { _; }
}
// ----
// TypeError 5704: (26-33): Modifier is not callable.
@@ -0,0 +1,9 @@
==== Source: A.sol ====
==== Source: B.sol ====
import "A.sol" as A;
contract C {
uint a = A(1000);
}
// ----
// TypeError 5704: (B.sol:48-55): Module is not callable.
@@ -6,4 +6,4 @@ contract C {
}
}
// ----
// TypeError 5704: (72-78): Type is not callable
// TypeError 5704: (72-78): Contract is not callable.