aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/CompilerStack.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-10-25 20:21:40 +0800
committerGitHub <noreply@github.com>2016-10-25 20:21:40 +0800
commite98d7f4ba45732b47fbdf028186e1b1668850440 (patch)
tree6371ca861d6de7717d1bf6070df87ccb4d6c3d0a /libsolidity/interface/CompilerStack.cpp
parent2f7c847ce40fe6726d270a2997b380177ab6e03e (diff)
parent762f7ac2508d119d1d1b66002c5498663a8d482f (diff)
downloaddexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar.gz
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar.bz2
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar.lz
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar.xz
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.tar.zst
dexon-solidity-e98d7f4ba45732b47fbdf028186e1b1668850440.zip
Merge pull request #1155 from ethereum/suggestcorrectversion
Suggest correct version for pragma.
Diffstat (limited to 'libsolidity/interface/CompilerStack.cpp')
-rw-r--r--libsolidity/interface/CompilerStack.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp
index 476721db..efbbd237 100644
--- a/libsolidity/interface/CompilerStack.cpp
+++ b/libsolidity/interface/CompilerStack.cpp
@@ -21,8 +21,10 @@
* Full-stack compiler that converts a source code string to bytecode.
*/
-#include <boost/algorithm/string.hpp>
-#include <boost/filesystem.hpp>
+#include <libsolidity/interface/CompilerStack.h>
+
+#include <libsolidity/interface/Version.h>
+#include <libsolidity/analysis/SemVerHandler.h>
#include <libsolidity/ast/AST.h>
#include <libsolidity/parsing/Scanner.h>
#include <libsolidity/parsing/Parser.h>
@@ -32,12 +34,15 @@
#include <libsolidity/analysis/DocStringAnalyser.h>
#include <libsolidity/analysis/SyntaxChecker.h>
#include <libsolidity/codegen/Compiler.h>
-#include <libsolidity/interface/CompilerStack.h>
#include <libsolidity/interface/InterfaceHandler.h>
#include <libsolidity/formal/Why3Translator.h>
#include <libdevcore/SHA3.h>
+#include <boost/algorithm/string.hpp>
+#include <boost/filesystem.hpp>
+
+
using namespace std;
using namespace dev;
using namespace dev::solidity;
@@ -100,6 +105,13 @@ bool CompilerStack::parse()
m_errors.clear();
m_parseSuccessful = false;
+ if (SemVerVersion{string(VersionString)}.isPrerelease())
+ {
+ auto err = make_shared<Error>(Error::Type::Warning);
+ *err << errinfo_comment("This is a pre-release compiler version, please do not use it in production.");
+ m_errors.push_back(err);
+ }
+
vector<string> sourcesToParse;
for (auto const& s: m_sources)
sourcesToParse.push_back(s.first);