From 34a031609e1e7c5358f0e716eeb8ef1c4d25c81a Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Tue, 10 Jul 2018 12:05:41 +0200 Subject: Updates Changelog, syntax test and simplifies type checker. --- libsolidity/analysis/TypeChecker.cpp | 4 +--- .../syntaxTests/inheritance/base_arguments_empty_parentheses.sol | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 1678e5a5..f39504e1 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -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(), diff --git a/test/libsolidity/syntaxTests/inheritance/base_arguments_empty_parentheses.sol b/test/libsolidity/syntaxTests/inheritance/base_arguments_empty_parentheses.sol index 6aacc95e..4c6021ca 100644 --- a/test/libsolidity/syntaxTests/inheritance/base_arguments_empty_parentheses.sol +++ b/test/libsolidity/syntaxTests/inheritance/base_arguments_empty_parentheses.sol @@ -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. -- cgit