mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
fixup! Code generation for errors.
This commit is contained in:
parent
204066f58c
commit
0ede2d2df3
@ -1977,6 +1977,7 @@ void IRGeneratorForStatements::endVisit(MemberAccess const& _memberAccess)
|
||||
solAssert(
|
||||
dynamic_cast<VariableDeclaration const*>(_memberAccess.annotation().referencedDeclaration) ||
|
||||
dynamic_cast<FunctionDefinition const*>(_memberAccess.annotation().referencedDeclaration) ||
|
||||
dynamic_cast<ErrorDefinition const*>(_memberAccess.annotation().referencedDeclaration) ||
|
||||
category == Type::Category::TypeType ||
|
||||
category == Type::Category::Module,
|
||||
""
|
||||
|
37
test/libsolidity/semanticTests/errors/via_import.sol
Normal file
37
test/libsolidity/semanticTests/errors/via_import.sol
Normal file
@ -0,0 +1,37 @@
|
||||
==== Source: s1.sol ====
|
||||
error E(uint);
|
||||
==== Source: s2.sol ====
|
||||
import "s1.sol" as S;
|
||||
==== Source: s3.sol ====
|
||||
import "s1.sol" as S;
|
||||
import "s2.sol" as T;
|
||||
import "s1.sol";
|
||||
contract C {
|
||||
function a() public pure {
|
||||
require(false, E(1));
|
||||
}
|
||||
function b() public pure {
|
||||
require(false, S.E(2));
|
||||
}
|
||||
function c() public pure {
|
||||
require(false, T.S.E(3));
|
||||
}
|
||||
function x() public pure {
|
||||
revert(E(1));
|
||||
}
|
||||
function y() public pure {
|
||||
revert(S.E(2));
|
||||
}
|
||||
function z() public pure {
|
||||
revert(T.S.E(3));
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// a() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000001"
|
||||
// b() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000002"
|
||||
// c() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000003"
|
||||
// x() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000001"
|
||||
// y() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000002"
|
||||
// z() -> FAILURE, hex"002ff067", hex"0000000000000000000000000000000000000000000000000000000000000003"
|
Loading…
Reference in New Issue
Block a user