aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Kundt <bitshift@posteo.org>2018-07-10 18:05:41 +0800
committerErik Kundt <bitshift@posteo.org>2018-07-11 07:58:17 +0800
commit34a031609e1e7c5358f0e716eeb8ef1c4d25c81a (patch)
tree13d57947ee1bf5b70d3a2587b34aaf0b6f4c0b23
parent038554abe0d484fdb733df69210f1efae5d46bef (diff)
downloaddexon-solidity-34a031609e1e7c5358f0e716eeb8ef1c4d25c81a.tar.gz
dexon-solidity-34a031609e1e7c5358f0e716eeb8ef1c4d25c81a.tar.zst
dexon-solidity-34a031609e1e7c5358f0e716eeb8ef1c4d25c81a.zip
Updates Changelog, syntax test and simplifies type checker.
-rw-r--r--libsolidity/analysis/TypeChecker.cpp4
-rw-r--r--test/libsolidity/syntaxTests/inheritance/base_arguments_empty_parentheses.sol8
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.