aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/Exceptions.h
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-06-22 19:38:46 +0800
committerGitHub <noreply@github.com>2017-06-22 19:38:46 +0800
commita95f057e37b746359a7426e95da32e3236f0603a (patch)
treee7c7b00393570752b461cbf768fa0ea53e18fee5 /libsolidity/interface/Exceptions.h
parentde7a488f82217118d698f4cd6028826f12cbad8b (diff)
parentd5f8ce90c7a76870e5a9d0fe6f9fd709a7383572 (diff)
downloaddexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar.gz
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar.bz2
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar.lz
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar.xz
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.tar.zst
dexon-solidity-a95f057e37b746359a7426e95da32e3236f0603a.zip
Merge pull request #2438 from ethereum/exceptions-cleanup
Cleanup assertions/exceptions includes
Diffstat (limited to 'libsolidity/interface/Exceptions.h')
-rw-r--r--libsolidity/interface/Exceptions.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libsolidity/interface/Exceptions.h b/libsolidity/interface/Exceptions.h
index 0803d8cc..5fdb8f11 100644
--- a/libsolidity/interface/Exceptions.h
+++ b/libsolidity/interface/Exceptions.h
@@ -25,6 +25,7 @@
#include <string>
#include <utility>
#include <libdevcore/Exceptions.h>
+#include <libdevcore/Assertions.h>
#include <libevmasm/SourceLocation.h>
namespace dev
@@ -39,6 +40,16 @@ struct InternalCompilerError: virtual Exception {};
struct FatalError: virtual Exception {};
struct UnimplementedFeatureError: virtual Exception{};
+/// Assertion that throws an InternalCompilerError containing the given description if it is not met.
+#define solAssert(CONDITION, DESCRIPTION) \
+ assertThrow(CONDITION, ::dev::solidity::InternalCompilerError, DESCRIPTION)
+
+#define solUnimplementedAssert(CONDITION, DESCRIPTION) \
+ assertThrow(CONDITION, ::dev::solidity::UnimplementedFeatureError, DESCRIPTION)
+
+#define solUnimplemented(DESCRIPTION) \
+ solUnimplementedAssert(false, DESCRIPTION)
+
class Error: virtual public Exception
{
public: