diff options
author | LianaHus <liana@ethdev.com> | 2015-10-15 17:50:25 +0800 |
---|---|---|
committer | LianaHus <liana@ethdev.com> | 2015-10-15 17:50:25 +0800 |
commit | 675aed1edfcff1cf7cd68cc92582d987820e4729 (patch) | |
tree | 480726e0c76b3b4401c8e51a0d9d4f24b8d84a22 /libsolidity | |
parent | 7a7a7dcbb59e1126679e7e8f6eab16992fffb51c (diff) | |
download | dexon-solidity-675aed1edfcff1cf7cd68cc92582d987820e4729.tar.gz dexon-solidity-675aed1edfcff1cf7cd68cc92582d987820e4729.tar.zst dexon-solidity-675aed1edfcff1cf7cd68cc92582d987820e4729.zip |
fixed new tests
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/Exceptions.cpp | 52 | ||||
-rw-r--r-- | libsolidity/Exceptions.h | 27 | ||||
-rw-r--r-- | libsolidity/Utils.h | 9 |
3 files changed, 62 insertions, 26 deletions
diff --git a/libsolidity/Exceptions.cpp b/libsolidity/Exceptions.cpp new file mode 100644 index 00000000..37d25697 --- /dev/null +++ b/libsolidity/Exceptions.cpp @@ -0,0 +1,52 @@ +/* + This file is part of cpp-ethereum. + + cpp-ethereum is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + cpp-ethereum is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>. +*/ +/** + * @author Christian <c@ethdev.com> + * @date 2015 + * Solidity exception hierarchy. + */ + +#include <libsolidity/Exceptions.h> +#include <libsolidity/Utils.h> + +using namespace dev; +using namespace dev::solidity; + +Error::Error(Error::Type _type): m_type(_type) +{ + switch(m_type) + { + case Type::DeclarationError: + m_typeName = "Declaration Error"; + break; + case Type::DocstringParsingError: + m_typeName = "Docstring Parsing Error"; + break; + case Type::ParserError: + m_typeName = "Parser Error"; + break; + case Type::TypeError: + m_typeName = "Type Error"; + break; + case Type::Warning: + m_typeName = "Warning"; + break; + default: + solAssert(false, ""); + break; + } +} diff --git a/libsolidity/Exceptions.h b/libsolidity/Exceptions.h index 92c009ef..9bc22994 100644 --- a/libsolidity/Exceptions.h +++ b/libsolidity/Exceptions.h @@ -26,7 +26,6 @@ #include <utility> #include <libdevcore/Exceptions.h> #include <libevmasm/SourceLocation.h> -#include <libsolidity/Utils.h> namespace dev { @@ -51,35 +50,11 @@ public: Warning }; - Error(Type _type) : m_type(_type) - { - switch(m_type) - { - case Type::DeclarationError: - m_typeName = "Declaration Error"; - break; - case Type::DocstringParsingError: - m_typeName = "Docstring Parsing Error"; - break; - case Type::ParserError: - m_typeName = "Parser Error"; - break; - case Type::TypeError: - m_typeName = "Type Error"; - break; - case Type::Warning: - m_typeName = "Warning"; - break; - default: - solAssert(false, ""); - break; - } - } + explicit Error(Type _type); Type type() const { return m_type; } std::string const& typeName() const { return m_typeName; } - /// helper functions static Error const* containsErrorOfType(ErrorList const& _list, Error::Type _type) { diff --git a/libsolidity/Utils.h b/libsolidity/Utils.h index 05c5fa6f..48bb1e47 100644 --- a/libsolidity/Utils.h +++ b/libsolidity/Utils.h @@ -23,6 +23,15 @@ #pragma once #include <libdevcore/Assertions.h> +#include <libsolidity/Exceptions.h> + +namespace dev +{ +namespace solidity +{ +struct InternalCompilerError; +} +} /// Assertion that throws an InternalCompilerError containing the given description if it is not met. #define solAssert(CONDITION, DESCRIPTION) \ |