Updates Changelog, syntax test and simplifies type checker.

This commit is contained in:
Erik Kundt 2018-07-10 12:05:41 +02:00
parent 038554abe0
commit 34a031609e
2 changed files with 2 additions and 10 deletions

View File

@ -558,10 +558,8 @@ void TypeChecker::endVisit(InheritanceSpecifier const& _inheritance)
toString(parameterTypes.size()) +
"."
);
if (arguments->size() != 0)
return;
}
for (size_t i = 0; i < arguments->size(); ++i)
for (size_t i = 0; i < std::min(arguments->size(), parameterTypes.size()); ++i)
if (!type(*(*arguments)[i])->isImplicitlyConvertibleTo(*parameterTypes[i]))
m_errorReporter.typeError(
(*arguments)[i]->location(),

View File

@ -1,13 +1,7 @@
contract Base {
constructor(uint) public {}
}
contract Base2 {
constructor(uint, uint) public {}
}
contract Derived is Base(2) { }
contract Derived2 is Base(), Derived() { }
contract Derived3 is Base2(2,2) { }
contract Derived4 is Base2(2), Derived() { }
// ----
// TypeError: (156-162): Wrong argument count for constructor call: 0 arguments given but expected 1.
// TypeError: (235-243): Wrong argument count for constructor call: 1 arguments given but expected 2.
// TypeError: (101-107): Wrong argument count for constructor call: 0 arguments given but expected 1.