Improves error with suggestion to remove parantheses.

This commit is contained in:
Erik Kundt 2018-07-11 01:44:51 +02:00
parent 34a031609e
commit 7c7e154a7b
4 changed files with 7 additions and 4 deletions

View File

@ -556,7 +556,7 @@ void TypeChecker::endVisit(InheritanceSpecifier const& _inheritance)
toString(arguments->size()) +
" arguments given but expected " +
toString(parameterTypes.size()) +
"."
". Remove parentheses if you do not want to provide arguments here."
);
}
for (size_t i = 0; i < std::min(arguments->size(), parameterTypes.size()); ++i)

View File

@ -1,7 +1,10 @@
contract Base {
constructor(uint) public {}
}
contract Base2 {
constructor(uint, uint) public {}
}
contract Derived is Base(2) { }
contract Derived2 is Base(), Derived() { }
// ----
// TypeError: (101-107): Wrong argument count for constructor call: 0 arguments given but expected 1.
// TypeError: (156-162): Wrong argument count for constructor call: 0 arguments given but expected 1. Remove parentheses if you do not want to provide arguments here.

View File

@ -6,5 +6,5 @@ contract Derived2 is Base {
constructor() Base(2) public { }
}
// ----
// TypeError: (74-81): Wrong argument count for constructor call: 1 arguments given but expected 2.
// TypeError: (74-81): Wrong argument count for constructor call: 1 arguments given but expected 2. Remove parentheses if you do not want to provide arguments here.
// TypeError: (130-137): Wrong argument count for modifier invocation: 1 arguments given but expected 2.

View File

@ -1,4 +1,4 @@
interface I {}
contract C is I(2) {}
// ----
// TypeError: (29-33): Wrong argument count for constructor call: 1 arguments given but expected 0.
// TypeError: (29-33): Wrong argument count for constructor call: 1 arguments given but expected 0. Remove parentheses if you do not want to provide arguments here.