summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/PythonUtil.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
committerJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
commitca131951f8d81ea3da13277172a24234b5c848ea (patch)
tree28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/Slice/PythonUtil.cpp
parentAdded entries for support of try-with-resources/with statement in Java/Python (diff)
downloadice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.bz2
ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.xz
ice-ca131951f8d81ea3da13277172a24234b5c848ea.zip
Add --no-warn option to Slice compilers
Diffstat (limited to 'cpp/src/Slice/PythonUtil.cpp')
-rw-r--r--cpp/src/Slice/PythonUtil.cpp46
1 files changed, 33 insertions, 13 deletions
diff --git a/cpp/src/Slice/PythonUtil.cpp b/cpp/src/Slice/PythonUtil.cpp
index 8373daabb4f..c3e98bd1627 100644
--- a/cpp/src/Slice/PythonUtil.cpp
+++ b/cpp/src/Slice/PythonUtil.cpp
@@ -50,6 +50,8 @@ class MetaDataVisitor : public ParserVisitor
{
public:
+ MetaDataVisitor(int);
+
virtual bool visitUnitStart(const UnitPtr&);
virtual bool visitModuleStart(const ModulePtr&);
virtual void visitClassDecl(const ClassDeclPtr&);
@@ -91,7 +93,7 @@ class ModuleVisitor : public ParserVisitor
{
public:
- ModuleVisitor(Output&, set<string>&);
+ ModuleVisitor(Output&, set<string>&, int);
virtual bool visitModuleStart(const ModulePtr&);
@@ -108,7 +110,7 @@ class CodeVisitor : public ParserVisitor
{
public:
- CodeVisitor(IceUtilInternal::Output&, set<string>&);
+ CodeVisitor(IceUtilInternal::Output&, set<string>&, int);
virtual bool visitModuleStart(const ModulePtr&);
virtual void visitModuleEnd(const ModulePtr&);
@@ -291,7 +293,8 @@ getDictLookup(const ContainedPtr& cont, const string& suffix = "", const string&
//
// ModuleVisitor implementation.
//
-Slice::Python::ModuleVisitor::ModuleVisitor(Output& out, set<string>& history) :
+Slice::Python::ModuleVisitor::ModuleVisitor(Output& out, set<string>& history, int warningLevel) :
+ ParserVisitor(warningLevel),
_out(out), _history(history)
{
}
@@ -341,8 +344,10 @@ Slice::Python::ModuleVisitor::visitModuleStart(const ModulePtr& p)
//
// CodeVisitor implementation.
//
-Slice::Python::CodeVisitor::CodeVisitor(Output& out, set<string>& moduleHistory) :
- _out(out), _moduleHistory(moduleHistory)
+Slice::Python::CodeVisitor::CodeVisitor(Output& out, set<string>& moduleHistory, int warningLevel) :
+ ParserVisitor(warningLevel),
+ _out(out),
+ _moduleHistory(moduleHistory)
{
}
@@ -2830,9 +2835,9 @@ Slice::Python::CodeVisitor::writeDocstring(const OperationPtr& op, DocstringMode
void
Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector<string>& includePaths,
- Output& out)
+ Output& out, int warningLevel)
{
- Slice::Python::MetaDataVisitor visitor;
+ Slice::Python::MetaDataVisitor visitor(warningLevel);
un->visit(&visitor, false);
out << nl << "from sys import version_info as _version_info_";
@@ -2857,10 +2862,10 @@ Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector
set<string> moduleHistory;
- ModuleVisitor moduleVisitor(out, moduleHistory);
+ ModuleVisitor moduleVisitor(out, moduleHistory, warningLevel);
un->visit(&moduleVisitor, true);
- CodeVisitor codeVisitor(out, moduleHistory);
+ CodeVisitor codeVisitor(out, moduleHistory, warningLevel);
un->visit(&codeVisitor, false);
if(checksum)
@@ -2981,6 +2986,11 @@ Slice::Python::printHeader(IceUtilInternal::Output& out)
out << "#\n";
}
+Slice::Python::MetaDataVisitor::MetaDataVisitor(int warningLevel) :
+ ParserVisitor(warningLevel)
+{
+}
+
bool
Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
{
@@ -3007,7 +3017,11 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
{
continue;
}
- emitWarning(file, "", "ignoring invalid global metadata `" + s + "'");
+
+ if(warningLevel() > 0)
+ {
+ emitWarning(file, "", "ignoring invalid global metadata `" + s + "'");
+ }
globalMetaData.remove(s);
}
}
@@ -3092,8 +3106,11 @@ Slice::Python::MetaDataVisitor::visitSequence(const SequencePtr& p)
BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
if(!builtin || builtin->kind() != Builtin::KindByte)
{
- emitWarning(file, line, "ignoring invalid metadata `" + s + ": " +
- "`protobuf' encoding must be a byte sequence");
+ if(warningLevel() > 0)
+ {
+ emitWarning(file, line, "ignoring invalid metadata `" + s + ": " +
+ "`protobuf' encoding must be a byte sequence");
+ }
}
else
{
@@ -3149,7 +3166,10 @@ Slice::Python::MetaDataVisitor::validateSequence(const string& file, const strin
}
}
}
- emitWarning(file, line, "ignoring invalid metadata `" + s + "'");
+ if(warningLevel() > 0)
+ {
+ emitWarning(file, line, "ignoring invalid metadata `" + s + "'");
+ }
newMetaData.remove(s);
}
}