mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Some more consts.
This commit is contained in:
parent
e0ed942519
commit
a15b03e991
@ -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())
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
2
Types.h
2
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;
|
||||
|
Loading…
Reference in New Issue
Block a user