From ca131951f8d81ea3da13277172a24234b5c848ea Mon Sep 17 00:00:00 2001 From: Jose Date: Wed, 1 Feb 2017 23:16:30 +0100 Subject: Add --no-warn option to Slice compilers --- cpp/src/Slice/JavaUtil.cpp | 68 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 18 deletions(-) (limited to 'cpp/src/Slice/JavaUtil.cpp') diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp index 7bb4ab6dcea..7c2f83fb20e 100644 --- a/cpp/src/Slice/JavaUtil.cpp +++ b/cpp/src/Slice/JavaUtil.cpp @@ -139,6 +139,10 @@ class MetaDataVisitor : public ParserVisitor { public: + MetaDataVisitor(int warningLevel) : ParserVisitor(warningLevel) + { + } + virtual bool visitUnitStart(const UnitPtr& p) { static const string prefix = "java:"; @@ -171,7 +175,10 @@ public: } else { - emitWarning(file, "", "ignoring invalid global metadata `" + s + "'"); + if(warningLevel() > 0) + { + emitWarning(file, "", "ignoring invalid global metadata `" + s + "'"); + } globalMetaData.remove(s); continue; } @@ -238,8 +245,11 @@ public: string s = *q++; if(s.find("java:type:", 0) == 0) { - emitWarning(p->file(), p->line(), "ignoring invalid metadata `" + s + - "' for operation with void return type"); + if(warningLevel() > 0) + { + emitWarning(p->file(), p->line(), "ignoring invalid metadata `" + s + + "' for operation with void return type"); + } metaData.remove(s); continue; } @@ -293,8 +303,11 @@ public: BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type()); if(!builtin || builtin->kind() != Builtin::KindByte) { - emitWarning(file, line, "ignoring invalid metadata `" + s + "': " + - "this metadata can only be used with a byte sequence"); + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + s + "': " + + "this metadata can only be used with a byte sequence"); + } continue; } newMetaData.push_back(s); @@ -309,8 +322,11 @@ public: builtin->kind() != Builtin::KindInt && builtin->kind() != Builtin::KindLong && builtin->kind() != Builtin::KindFloat && builtin->kind() != Builtin::KindDouble)) { - emitWarning(file, line, "ignoring invalid metadata `" + s + "': " + - "this metadata can not be used with this type"); + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + s + "': " + + "this metadata can not be used with this type"); + } continue; } newMetaData.push_back(s); @@ -415,7 +431,10 @@ private: continue; } - emitWarning(cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'"); + if(warningLevel() > 0) + { + emitWarning(cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'"); + } } else { @@ -449,7 +468,10 @@ private: assert(b); str = b->typeId(); } - emitWarning(file, line, "invalid metadata for " + str); + if(warningLevel() > 0) + { + emitWarning(file, line, "invalid metadata for " + str); + } } else if(i->find("java:buffer") == 0) { @@ -467,14 +489,21 @@ private: } } - emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); + + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); + } } else if(i->find("java:protobuf:") == 0 || i->find("java:serializable:") == 0) { // // Only valid in sequence definition which is checked in visitSequence // - emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); + } } else if(i->find("delegate") == 0) { @@ -483,7 +512,7 @@ private: { newMetaData.push_back(*i); } - else + else if(warningLevel() > 0) { emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); } @@ -494,7 +523,7 @@ private: { newMetaData.push_back(*i); } - else + else if(warningLevel() > 0) { emitWarning(file, line, "ignoring invalid metadata `" + *i + "'"); } @@ -531,7 +560,10 @@ private: assert(b); str = b->typeId(); } - emitWarning(file, line, "invalid metadata for " + str); + if(warningLevel() > 0) + { + emitWarning(file, line, "invalid metadata for " + str); + } continue; } newMetaData.push_back(*i); @@ -3187,9 +3219,9 @@ Slice::JavaCompatGenerator::createOutput() } void -Slice::JavaCompatGenerator::validateMetaData(const UnitPtr& u) +Slice::JavaCompatGenerator::validateMetaData(const UnitPtr& u, int warningLevel) { - MetaDataVisitor visitor; + MetaDataVisitor visitor(warningLevel); u->visit(&visitor, true); } @@ -5498,8 +5530,8 @@ Slice::JavaGenerator::createOutput() } void -Slice::JavaGenerator::validateMetaData(const UnitPtr& u) +Slice::JavaGenerator::validateMetaData(const UnitPtr& u, int warningLevel) { - MetaDataVisitor visitor; + MetaDataVisitor visitor(warningLevel); u->visit(&visitor, true); } -- cgit v1.2.3