aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2014-12-06 09:39:58 +0800
committerChristian <c@ethdev.com>2014-12-08 20:29:14 +0800
commita15b03e991453d03eb8dfd41f2729642aee3bb8d (patch)
treedbaafe4f0b477fc1f2f80a36a251e7d119276c1b
parente0ed942519fbf3a5be106fae2d1906b9c217df95 (diff)
downloaddexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar.gz
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar.bz2
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar.lz
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar.xz
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.tar.zst
dexon-solidity-a15b03e991453d03eb8dfd41f2729642aee3bb8d.zip
Some more consts.
-rw-r--r--CompilerStack.cpp22
-rw-r--r--CompilerStack.h28
-rw-r--r--Types.h2
3 files changed, 26 insertions, 26 deletions
diff --git a/CompilerStack.cpp b/CompilerStack.cpp
index 41ae5603..d4675485 100644
--- a/CompilerStack.cpp
+++ b/CompilerStack.cpp
@@ -82,7 +82,7 @@ void CompilerStack::parse(string const& _sourceCode)
parse();
}
-vector<string> CompilerStack::getContractNames()
+vector<string> CompilerStack::getContractNames() const
{
if (!m_parseSuccessful)
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
@@ -116,29 +116,29 @@ bytes const& CompilerStack::compile(string const& _sourceCode, bool _optimize)
return getBytecode();
}
-bytes const& CompilerStack::getBytecode(string const& _contractName)
+bytes const& CompilerStack::getBytecode(string const& _contractName) const
{
return getContract(_contractName).bytecode;
}
-void CompilerStack::streamAssembly(ostream& _outStream, string const& _contractName)
+void CompilerStack::streamAssembly(ostream& _outStream, string const& _contractName) const
{
getContract(_contractName).compiler->streamAssembly(_outStream);
}
-string const& CompilerStack::getInterface(std::string const& _contractName)
+string const& CompilerStack::getInterface(string const& _contractName) const
{
return getJsonDocumentation(_contractName, DocumentationType::ABI_INTERFACE);
}
-std::string const& CompilerStack::getJsonDocumentation(std::string const& _contractName, DocumentationType _type)
+string const& CompilerStack::getJsonDocumentation(string const& _contractName, DocumentationType _type) const
{
if (!m_parseSuccessful)
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
- Contract& contract = getContract(_contractName);
+ Contract const& contract = getContract(_contractName);
- std::unique_ptr<string>* doc;
+ std::unique_ptr<string const>* doc;
switch (_type)
{
case DocumentationType::NATSPEC_USER:
@@ -158,12 +158,12 @@ std::string const& CompilerStack::getJsonDocumentation(std::string const& _contr
return *(*doc);
}
-Scanner const& CompilerStack::getScanner(string const& _sourceName)
+Scanner const& CompilerStack::getScanner(string const& _sourceName) const
{
return *getSource(_sourceName).scanner;
}
-SourceUnit& CompilerStack::getAST(string const& _sourceName)
+SourceUnit const& CompilerStack::getAST(string const& _sourceName) const
{
return *getSource(_sourceName).ast;
}
@@ -217,7 +217,7 @@ void CompilerStack::resolveImports()
swap(m_sourceOrder, sourceOrder);
}
-CompilerStack::Contract& CompilerStack::getContract(string const& _contractName)
+CompilerStack::Contract const& CompilerStack::getContract(string const& _contractName) const
{
if (m_contracts.empty())
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("No compiled contracts found."));
@@ -229,7 +229,7 @@ CompilerStack::Contract& CompilerStack::getContract(string const& _contractName)
return it->second;
}
-CompilerStack::Source& CompilerStack::getSource(string const& _sourceName)
+CompilerStack::Source const& CompilerStack::getSource(string const& _sourceName) const
{
auto it = m_sources.find(_sourceName);
if (it == m_sources.end())
diff --git a/CompilerStack.h b/CompilerStack.h
index 82d27549..b6c34f1a 100644
--- a/CompilerStack.h
+++ b/CompilerStack.h
@@ -64,7 +64,7 @@ public:
/// Sets the given source code as the only source unit and parses it.
void parse(std::string const& _sourceCode);
/// Returns a list of the contract names in the sources.
- std::vector<std::string> getContractNames();
+ std::vector<std::string> getContractNames() const;
/// Compiles the source units that were previously added and parsed.
void compile(bool _optimize = false);
@@ -72,23 +72,23 @@ public:
/// @returns the compiled bytecode
bytes const& compile(std::string const& _sourceCode, bool _optimize = false);
- bytes const& getBytecode(std::string const& _contractName = "");
+ bytes const& getBytecode(std::string const& _contractName = "") const;
/// Streams a verbose version of the assembly to @a _outStream.
/// Prerequisite: Successful compilation.
- void streamAssembly(std::ostream& _outStream, std::string const& _contractName = "");
+ void streamAssembly(std::ostream& _outStream, std::string const& _contractName = "") const;
/// Returns a string representing the contract interface in JSON.
/// Prerequisite: Successful call to parse or compile.
- std::string const& getInterface(std::string const& _contractName = "");
+ std::string const& getInterface(std::string const& _contractName = "") const;
/// Returns a string representing the contract's documentation in JSON.
/// Prerequisite: Successful call to parse or compile.
/// @param type The type of the documentation to get.
/// Can be one of 3 types defined at @c DocumentationType
- std::string const& getJsonDocumentation(std::string const& _contractName, DocumentationType _type);
+ std::string const& getJsonDocumentation(std::string const& _contractName, DocumentationType _type) const;
/// Returns the previously used scanner, useful for counting lines during error reporting.
- Scanner const& getScanner(std::string const& _sourceName = "");
- SourceUnit& getAST(std::string const& _sourceName = "");
+ Scanner const& getScanner(std::string const& _sourceName = "") const;
+ SourceUnit const& getAST(std::string const& _sourceName = "") const;
/// Compile the given @a _sourceCode to bytecode. If a scanner is provided, it is used for
/// scanning the source code - this is useful for printing exception information.
@@ -112,9 +112,9 @@ private:
std::shared_ptr<Compiler> compiler;
bytes bytecode;
std::shared_ptr<InterfaceHandler> interfaceHandler;
- std::unique_ptr<std::string> interface;
- std::unique_ptr<std::string> userDocumentation;
- std::unique_ptr<std::string> devDocumentation;
+ mutable std::unique_ptr<std::string const> interface;
+ mutable std::unique_ptr<std::string const> userDocumentation;
+ mutable std::unique_ptr<std::string const> devDocumentation;
Contract();
};
@@ -122,14 +122,14 @@ private:
void reset(bool _keepSources = false);
void resolveImports();
- Contract& getContract(std::string const& _contractName = "");
- Source& getSource(std::string const& _sourceName = "");
+ Contract const& getContract(std::string const& _contractName = "") const;
+ Source const& getSource(std::string const& _sourceName = "") const;
bool m_parseSuccessful;
- std::map<std::string, Source> m_sources;
+ std::map<std::string const, Source> m_sources;
std::shared_ptr<GlobalContext> m_globalContext;
std::vector<Source const*> m_sourceOrder;
- std::map<std::string, Contract> m_contracts;
+ std::map<std::string const, Contract> m_contracts;
};
}
diff --git a/Types.h b/Types.h
index 42ead008..f4ad804d 100644
--- a/Types.h
+++ b/Types.h
@@ -279,7 +279,7 @@ public:
virtual bool canLiveOutsideStorage() const override { return false; }
virtual unsigned getSizeOnStack() const override;
- Location getLocation() const { return m_location; }
+ Location const& getLocation() const { return m_location; }
private:
TypePointers m_parameterTypes;