aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/Exceptions.h
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-06-22 04:50:57 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-06-22 18:25:07 +0800
commitd5f8ce90c7a76870e5a9d0fe6f9fd709a7383572 (patch)
treeb37c982a2f05517d4e2ae731bfbbe8e74aa62437 /libsolidity/interface/Exceptions.h
parent09c548ec69478ee0fa1b1d017481c78d58662280 (diff)
downloaddexon-solidity-d5f8ce90c7a76870e5a9d0fe6f9fd709a7383572.tar.gz
dexon-solidity-d5f8ce90c7a76870e5a9d0fe6f9fd709a7383572.tar.zst
dexon-solidity-d5f8ce90c7a76870e5a9d0fe6f9fd709a7383572.zip
Merge interface/Exceptions and interface/Utils
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: