mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
still not able to get types resolved, however it is compiling
This commit is contained in:
parent
9ab066de8c
commit
c8e4e9c05c
@ -779,6 +779,7 @@ bool TypeChecker::visit(Assignment const& _assignment)
|
||||
|
||||
bool TypeChecker::visit(TupleExpression const& _tuple)
|
||||
{
|
||||
|
||||
vector<ASTPointer<Expression>> const& components = _tuple.components();
|
||||
TypePointers types;
|
||||
if (_tuple.annotation().lValueRequested)
|
||||
@ -791,7 +792,10 @@ bool TypeChecker::visit(TupleExpression const& _tuple)
|
||||
}
|
||||
else
|
||||
types.push_back(TypePointer());
|
||||
_tuple.annotation().type = make_shared<TupleType>(types);
|
||||
if (_tuple.isInlineArray())
|
||||
_tuple.annotation().type = make_shared<ArrayType>(DataLocation::Storage, _tuple.annotation().type, types.size());
|
||||
else
|
||||
_tuple.annotation().type = make_shared<TupleType>(types);
|
||||
// If some of the components are not LValues, the error is reported above.
|
||||
_tuple.annotation().isLValue = true;
|
||||
}
|
||||
@ -801,7 +805,10 @@ bool TypeChecker::visit(TupleExpression const& _tuple)
|
||||
{
|
||||
// Outside of an lvalue-context, the only situation where a component can be empty is (x,).
|
||||
if (!components[i] && !(i == 1 && components.size() == 2))
|
||||
fatalTypeError(_tuple.location(), "Tuple component cannot be empty.");
|
||||
_tuple.isInlineArray() ?
|
||||
fatalTypeError(_tuple.location(), "Array component cannot have empty cells.")
|
||||
:
|
||||
fatalTypeError(_tuple.location(), "Tuple component cannot be empty.");
|
||||
else if (components[i])
|
||||
{
|
||||
components[i]->accept(*this);
|
||||
|
Loading…
Reference in New Issue
Block a user