diff options
author | Jose <jose@zeroc.com> | 2017-02-01 23:16:30 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2017-02-01 23:16:30 +0100 |
commit | ca131951f8d81ea3da13277172a24234b5c848ea (patch) | |
tree | 28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/slice2cs | |
parent | Added entries for support of try-with-resources/with statement in Java/Python (diff) | |
download | ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.bz2 ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.xz ice-ca131951f8d81ea3da13277172a24234b5c848ea.zip |
Add --no-warn option to Slice compilers
Diffstat (limited to 'cpp/src/slice2cs')
-rw-r--r-- | cpp/src/slice2cs/CsUtil.cpp | 31 | ||||
-rw-r--r-- | cpp/src/slice2cs/CsUtil.h | 4 | ||||
-rw-r--r-- | cpp/src/slice2cs/Gen.cpp | 80 | ||||
-rw-r--r-- | cpp/src/slice2cs/Gen.h | 30 | ||||
-rw-r--r-- | cpp/src/slice2cs/Main.cpp | 6 |
5 files changed, 89 insertions, 62 deletions
diff --git a/cpp/src/slice2cs/CsUtil.cpp b/cpp/src/slice2cs/CsUtil.cpp index 251b910f473..5de4582dd56 100644 --- a/cpp/src/slice2cs/CsUtil.cpp +++ b/cpp/src/slice2cs/CsUtil.cpp @@ -2335,12 +2335,16 @@ Slice::CsGenerator::toArrayAlloc(const string& decl, const string& sz) } void -Slice::CsGenerator::validateMetaData(const UnitPtr& u) +Slice::CsGenerator::validateMetaData(const UnitPtr& u, int warningLevel) { - MetaDataVisitor visitor; + MetaDataVisitor visitor(warningLevel); u->visit(&visitor, true); } +Slice::CsGenerator::MetaDataVisitor::MetaDataVisitor(int warningLevel) : ParserVisitor(warningLevel) +{ +} + bool Slice::CsGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) { @@ -2375,7 +2379,10 @@ Slice::CsGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) static const string csAttributePrefix = csPrefix + "attribute:"; if(s.find(csAttributePrefix) != 0 || s.size() == csAttributePrefix.size()) { - emitWarning(file, -1, "ignoring invalid global metadata `" + oldS + "'"); + if(warningLevel() > 0) + { + emitWarning(file, -1, "ignoring invalid global metadata `" + oldS + "'"); + } continue; } } @@ -2540,8 +2547,11 @@ Slice::CsGenerator::MetaDataVisitor::validate(const ContainedPtr& cont) string meta; if(cont->findMetaData(csPrefix + "generic:", meta)) { - emitWarning(cont->file(), cont->line(), msg + " `" + meta + "':\n" + - "serialization can only be used with the array mapping for byte sequences"); + if(warningLevel() > 0) + { + emitWarning(cont->file(), cont->line(), msg + " `" + meta + "':\n" + + "serialization can only be used with the array mapping for byte sequences"); + } continue; } string type = s.substr(csSerializablePrefix.size()); @@ -2613,7 +2623,10 @@ Slice::CsGenerator::MetaDataVisitor::validate(const ContainedPtr& cont) continue; } - emitWarning(cont->file(), cont->line(), msg + " `" + oldS + "'"); + if(warningLevel() > 0) + { + emitWarning(cont->file(), cont->line(), msg + " `" + oldS + "'"); + } continue; } else if(s == "delegate") @@ -2624,7 +2637,11 @@ Slice::CsGenerator::MetaDataVisitor::validate(const ContainedPtr& cont) newLocalMetaData.push_back(s); continue; } - emitWarning(cont->file(), cont->line(), msg + " `" + s + "'"); + + if(warningLevel() > 0) + { + emitWarning(cont->file(), cont->line(), msg + " `" + s + "'"); + } continue; } newLocalMetaData.push_back(s); diff --git a/cpp/src/slice2cs/CsUtil.h b/cpp/src/slice2cs/CsUtil.h index 16ebd8a3c54..1741150f100 100644 --- a/cpp/src/slice2cs/CsUtil.h +++ b/cpp/src/slice2cs/CsUtil.h @@ -30,7 +30,7 @@ public: // // Validate all metadata in the unit with a "cs:" prefix. // - static void validateMetaData(const UnitPtr&); + static void validateMetaData(const UnitPtr&, int); protected: @@ -65,6 +65,8 @@ private: { public: + MetaDataVisitor(int); + virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index 0008249211a..5e6fc6b6407 100644 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -154,7 +154,8 @@ resultStructReturnValueName(const ParamDeclList& outParams) } -Slice::CsVisitor::CsVisitor(Output& out) : +Slice::CsVisitor::CsVisitor(Output& out, int warningLevel) : + ParserVisitor(warningLevel), _out(out) { } @@ -2020,9 +2021,10 @@ Slice::CsVisitor::writeDocCommentParam(const OperationPtr& p, ParamDir paramType } Slice::Gen::Gen(const string& base, const vector<string>& includePaths, const string& dir, - bool tie, bool impl, bool implTie) : + bool tie, bool impl, bool implTie, int warningLevel) : _includePaths(includePaths), - _tie(tie) + _tie(tie), + _warningLevel(warningLevel) { string fileBase = base; string::size_type pos = base.find_last_of("/\\"); @@ -2092,51 +2094,51 @@ Slice::Gen::~Gen() void Slice::Gen::generate(const UnitPtr& p) { - CsGenerator::validateMetaData(p); + CsGenerator::validateMetaData(p, _warningLevel); - UnitVisitor unitVisitor(_out); + UnitVisitor unitVisitor(_out, _warningLevel); p->visit(&unitVisitor, false); - CompactIdVisitor compactIdVisitor(_out); + CompactIdVisitor compactIdVisitor(_out, _warningLevel); p->visit(&compactIdVisitor, false); - TypesVisitor typesVisitor(_out); + TypesVisitor typesVisitor(_out, _warningLevel); p->visit(&typesVisitor, false); // // The async delegates are emitted before the proxy definition // because the proxy methods need to know the type. // - AsyncDelegateVisitor asyncDelegateVisitor(_out); + AsyncDelegateVisitor asyncDelegateVisitor(_out, _warningLevel); p->visit(&asyncDelegateVisitor, false); - ResultVisitor resultVisitor(_out); + ResultVisitor resultVisitor(_out, _warningLevel); p->visit(&resultVisitor, false); - ProxyVisitor proxyVisitor(_out); + ProxyVisitor proxyVisitor(_out, _warningLevel); p->visit(&proxyVisitor, false); - OpsVisitor opsVisitor(_out); + OpsVisitor opsVisitor(_out, _warningLevel); p->visit(&opsVisitor, false); - HelperVisitor helperVisitor(_out); + HelperVisitor helperVisitor(_out, _warningLevel); p->visit(&helperVisitor, false); - DispatcherVisitor dispatcherVisitor(_out, _tie); + DispatcherVisitor dispatcherVisitor(_out, _tie, _warningLevel); p->visit(&dispatcherVisitor, false); } void Slice::Gen::generateImpl(const UnitPtr& p) { - ImplVisitor implVisitor(_impl); + ImplVisitor implVisitor(_impl, _warningLevel); p->visit(&implVisitor, false); } void Slice::Gen::generateImplTie(const UnitPtr& p) { - ImplTieVisitor implTieVisitor(_impl); + ImplTieVisitor implTieVisitor(_impl, _warningLevel); p->visit(&implTieVisitor, false); } @@ -2212,8 +2214,8 @@ Slice::Gen::printHeader() _out << "//\n"; } -Slice::Gen::UnitVisitor::UnitVisitor(IceUtilInternal::Output& out) : - CsVisitor(out) +Slice::Gen::UnitVisitor::UnitVisitor(IceUtilInternal::Output& out, int warningLevel) : + CsVisitor(out, warningLevel) { } @@ -2244,8 +2246,8 @@ Slice::Gen::UnitVisitor::visitUnitStart(const UnitPtr& p) return false; } -Slice::Gen::CompactIdVisitor::CompactIdVisitor(IceUtilInternal::Output& out) : - CsVisitor(out) +Slice::Gen::CompactIdVisitor::CompactIdVisitor(IceUtilInternal::Output& out, int warningLevel) : + CsVisitor(out, warningLevel) { } @@ -2278,8 +2280,8 @@ Slice::Gen::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::Gen::TypesVisitor::TypesVisitor(IceUtilInternal::Output& out) : - CsVisitor(out) +Slice::Gen::TypesVisitor::TypesVisitor(IceUtilInternal::Output& out, int warningLevel) : + CsVisitor(out, warningLevel) { } @@ -3765,8 +3767,8 @@ Slice::Gen::TypesVisitor::writeMemberEquals(const DataMemberList& dataMembers, i } } -Slice::Gen::ResultVisitor::ResultVisitor(::IceUtilInternal::Output& out) - : CsVisitor(out) +Slice::Gen::ResultVisitor::ResultVisitor(::IceUtilInternal::Output& out, int warningLevel) + : CsVisitor(out, warningLevel) { } @@ -3924,8 +3926,8 @@ Slice::Gen::ResultVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::ProxyVisitor::ProxyVisitor(IceUtilInternal::Output& out) : - CsVisitor(out) +Slice::Gen::ProxyVisitor::ProxyVisitor(IceUtilInternal::Output& out, int warningLevel) : + CsVisitor(out, warningLevel) { } @@ -4112,8 +4114,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::AsyncDelegateVisitor::AsyncDelegateVisitor(IceUtilInternal::Output& out) - : CsVisitor(out) +Slice::Gen::AsyncDelegateVisitor::AsyncDelegateVisitor(IceUtilInternal::Output& out, int warningLevel) + : CsVisitor(out, warningLevel) { } @@ -4169,8 +4171,8 @@ Slice::Gen::AsyncDelegateVisitor::visitOperation(const OperationPtr& p) _out << paramDeclAMI << epar << ';'; } -Slice::Gen::OpsVisitor::OpsVisitor(IceUtilInternal::Output& out) - : CsVisitor(out) +Slice::Gen::OpsVisitor::OpsVisitor(IceUtilInternal::Output& out, int warningLevel) + : CsVisitor(out, warningLevel) { } @@ -4267,8 +4269,8 @@ Slice::Gen::OpsVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::Gen::HelperVisitor::HelperVisitor(IceUtilInternal::Output& out) : - CsVisitor(out) +Slice::Gen::HelperVisitor::HelperVisitor(IceUtilInternal::Output& out, int warningLevel) : + CsVisitor(out, warningLevel) { } @@ -5198,8 +5200,8 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) _out << eb; } -Slice::Gen::DispatcherVisitor::DispatcherVisitor(::IceUtilInternal::Output& out, bool tie) : - CsVisitor(out), +Slice::Gen::DispatcherVisitor::DispatcherVisitor(::IceUtilInternal::Output& out, bool tie, int warningLevel) : + CsVisitor(out, warningLevel), _tie(tie) { } @@ -5412,8 +5414,8 @@ Slice::Gen::DispatcherVisitor::writeTieOperations(const ClassDefPtr& p, NameSet* } } -Slice::Gen::BaseImplVisitor::BaseImplVisitor(IceUtilInternal::Output& out) - : CsVisitor(out) +Slice::Gen::BaseImplVisitor::BaseImplVisitor(IceUtilInternal::Output& out, int warningLevel) + : CsVisitor(out, warningLevel) { } @@ -5520,8 +5522,8 @@ Slice::Gen::BaseImplVisitor::writeOperation(const OperationPtr& op, bool comment } } -Slice::Gen::ImplVisitor::ImplVisitor(IceUtilInternal::Output& out) : - BaseImplVisitor(out) +Slice::Gen::ImplVisitor::ImplVisitor(IceUtilInternal::Output& out, int warningLevel) : + BaseImplVisitor(out, warningLevel) { } @@ -5588,8 +5590,8 @@ Slice::Gen::ImplVisitor::visitClassDefEnd(const ClassDefPtr&) _out << eb; } -Slice::Gen::ImplTieVisitor::ImplTieVisitor(IceUtilInternal::Output& out) - : BaseImplVisitor(out) +Slice::Gen::ImplTieVisitor::ImplTieVisitor(IceUtilInternal::Output& out, int warningLevel) + : BaseImplVisitor(out, warningLevel) { } diff --git a/cpp/src/slice2cs/Gen.h b/cpp/src/slice2cs/Gen.h index d061616693d..f07bbc77cdc 100644 --- a/cpp/src/slice2cs/Gen.h +++ b/cpp/src/slice2cs/Gen.h @@ -20,7 +20,7 @@ class CsVisitor : public CsGenerator, public ParserVisitor { public: - CsVisitor(::IceUtilInternal::Output&); + CsVisitor(::IceUtilInternal::Output&, int); virtual ~CsVisitor(); protected: @@ -87,7 +87,8 @@ public: const std::string&, bool, bool, - bool); + bool, + int); ~Gen(); void generate(const UnitPtr&); @@ -102,6 +103,7 @@ private: IceUtilInternal::Output _impl; std::vector<std::string> _includePaths; bool _tie; + int _warningLevel; void printHeader(); @@ -109,7 +111,7 @@ private: { public: - UnitVisitor(::IceUtilInternal::Output&); + UnitVisitor(::IceUtilInternal::Output&, int); virtual bool visitUnitStart(const UnitPtr&); }; @@ -118,7 +120,7 @@ private: { public: - CompactIdVisitor(IceUtilInternal::Output&); + CompactIdVisitor(IceUtilInternal::Output&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -129,7 +131,7 @@ private: { public: - TypesVisitor(::IceUtilInternal::Output&); + TypesVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -156,7 +158,7 @@ private: { public: - AsyncDelegateVisitor(::IceUtilInternal::Output&); + AsyncDelegateVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -169,7 +171,7 @@ private: { public: - ResultVisitor(::IceUtilInternal::Output&); + ResultVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -182,7 +184,7 @@ private: { public: - ProxyVisitor(::IceUtilInternal::Output&); + ProxyVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -195,7 +197,7 @@ private: { public: - OpsVisitor(::IceUtilInternal::Output&); + OpsVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -206,7 +208,7 @@ private: { public: - HelperVisitor(::IceUtilInternal::Output&); + HelperVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -220,7 +222,7 @@ private: { public: - DispatcherVisitor(::IceUtilInternal::Output&, bool); + DispatcherVisitor(::IceUtilInternal::Output&, bool, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -239,7 +241,7 @@ private: { public: - BaseImplVisitor(::IceUtilInternal::Output&); + BaseImplVisitor(::IceUtilInternal::Output&, int); protected: @@ -250,7 +252,7 @@ private: { public: - ImplVisitor(::IceUtilInternal::Output&); + ImplVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -262,7 +264,7 @@ private: { public: - ImplTieVisitor(::IceUtilInternal::Output&); + ImplTieVisitor(::IceUtilInternal::Output&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); diff --git a/cpp/src/slice2cs/Main.cpp b/cpp/src/slice2cs/Main.cpp index 21738ba6f83..31b60cee93d 100644 --- a/cpp/src/slice2cs/Main.cpp +++ b/cpp/src/slice2cs/Main.cpp @@ -82,6 +82,7 @@ usage(const string& n) " deprecated: use instead [[\"ice-prefix\"]] metadata.\n" "--underscore Allow underscores in Slice identifiers\n" " deprecated: use instead [[\"underscore\"]] metadata.\n" + "--no-warn Disable all warnings.\n" ; } @@ -107,6 +108,7 @@ compile(const vector<string>& argv) opts.addOpt("", "ice"); opts.addOpt("", "underscore"); opts.addOpt("", "checksum"); + opts.addOpt("", "no-warn"); bool validate = find(argv.begin(), argv.end(), "--validate") != argv.end(); vector<string> args; @@ -179,6 +181,8 @@ compile(const vector<string>& argv) bool checksum = opts.isSet("checksum"); + int warningLevel = opts.isSet("no-warn") ? 0 : 1; + if(args.empty()) { consoleErr << argv[0] << ": error: no input file" << endl; @@ -309,7 +313,7 @@ compile(const vector<string>& argv) { try { - Gen gen(icecpp->getBaseName(), includePaths, output, tie, impl, implTie); + Gen gen(icecpp->getBaseName(), includePaths, output, tie, impl, implTie, warningLevel); gen.generate(p); if(impl) { |