summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 1b319f3fa9d..dec77656af9 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -1763,7 +1763,8 @@ Slice::ClassDef::destroy()
OperationPtr
Slice::ClassDef::createOperation(const string& name,
- const TypePtr& returnType)
+ const TypePtr& returnType,
+ bool nonmutating)
{
checkPrefix(name);
@@ -1864,7 +1865,7 @@ Slice::ClassDef::createOperation(const string& name,
_unit->error(msg);
}
- OperationPtr op = new Operation(this, name, returnType);
+ OperationPtr op = new Operation(this, name, returnType, nonmutating);
_contents.push_back(op);
return op;
}
@@ -3157,6 +3158,12 @@ Slice::Operation::throws() const
return _throws;
}
+bool
+Slice::Operation::nonmutating() const
+{
+ return _nonmutating;
+}
+
void
Slice::Operation::setExceptionList(const ExceptionList& el)
{
@@ -3262,16 +3269,15 @@ Slice::Operation::visit(ParserVisitor* visitor)
visitor->visitOperation(this);
}
-Slice::Operation::Operation(const ContainerPtr& container, const string& name, const TypePtr& returnType) :
- //const TypeStringList& inParams, const TypeStringList& outParams,
- //const ExceptionList& throws) :
+Slice::Operation::Operation(const ContainerPtr& container,
+ const string& name,
+ const TypePtr& returnType,
+ bool nonmutating) :
Contained(container, name),
Container(container->unit()),
SyntaxTreeBase(container->unit()),
- _returnType(returnType)
- //_inParams(inParams),
- //_outParams(outParams),
- //_throws(throws)
+ _returnType(returnType),
+ _nonmutating(nonmutating)
{
}