diff options
author | Jose <jose@zeroc.com> | 2017-02-03 18:10:20 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2017-02-03 18:10:20 +0100 |
commit | 7274ebf13c7a1ff3b587598335201c3a4e848c90 (patch) | |
tree | ad673e775b6ab68d511bcc86cf420c519b65948d /cpp/src/slice2java/GenCompat.cpp | |
parent | Connection::close fixes for C#/Java/JS (diff) | |
download | ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.bz2 ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.xz ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.zip |
Rework warning suppression to use global meta data
Diffstat (limited to 'cpp/src/slice2java/GenCompat.cpp')
-rw-r--r-- | cpp/src/slice2java/GenCompat.cpp | 114 |
1 files changed, 64 insertions, 50 deletions
diff --git a/cpp/src/slice2java/GenCompat.cpp b/cpp/src/slice2java/GenCompat.cpp index 6579642d280..a3f4179ed8f 100644 --- a/cpp/src/slice2java/GenCompat.cpp +++ b/cpp/src/slice2java/GenCompat.cpp @@ -191,9 +191,8 @@ writeParamList(Output& out, vector<string> params, bool end = true, bool newLine } -Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir, int warningLevel) : - JavaCompatGenerator(dir), - ParserVisitor(warningLevel) +Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir) : + JavaCompatGenerator(dir) { } @@ -2280,12 +2279,11 @@ Slice::JavaCompatVisitor::writeDocCommentParam(Output& out, const OperationPtr& } Slice::GenCompat::GenCompat(const string& /*name*/, const string& base, const vector<string>& includePaths, - const string& dir, bool tie, int warningLevel) : + const string& dir, bool tie) : _base(base), _includePaths(includePaths), _dir(dir), - _tie(tie), - _warningLevel(warningLevel) + _tie(tie) { } @@ -2296,47 +2294,47 @@ Slice::GenCompat::~GenCompat() void Slice::GenCompat::generate(const UnitPtr& p) { - JavaGenerator::validateMetaData(p, _warningLevel); + JavaGenerator::validateMetaData(p); - OpsVisitor opsVisitor(_dir, _warningLevel); + OpsVisitor opsVisitor(_dir); p->visit(&opsVisitor, false); - PackageVisitor packageVisitor(_dir, _warningLevel); + PackageVisitor packageVisitor(_dir); p->visit(&packageVisitor, false); - TypesVisitor typesVisitor(_dir, _warningLevel); + TypesVisitor typesVisitor(_dir); p->visit(&typesVisitor, false); - CompactIdVisitor compactIdVisitor(_dir, _warningLevel); + CompactIdVisitor compactIdVisitor(_dir); p->visit(&compactIdVisitor, false); - HolderVisitor holderVisitor(_dir, _warningLevel); + HolderVisitor holderVisitor(_dir); p->visit(&holderVisitor, false); - HelperVisitor helperVisitor(_dir, _warningLevel); + HelperVisitor helperVisitor(_dir); p->visit(&helperVisitor, false); - ProxyVisitor proxyVisitor(_dir, _warningLevel); + ProxyVisitor proxyVisitor(_dir); p->visit(&proxyVisitor, false); - DispatcherVisitor dispatcherVisitor(_dir, _tie, _warningLevel); + DispatcherVisitor dispatcherVisitor(_dir, _tie); p->visit(&dispatcherVisitor, false); - AsyncVisitor asyncVisitor(_dir, _warningLevel); + AsyncVisitor asyncVisitor(_dir); p->visit(&asyncVisitor, false); } void Slice::GenCompat::generateImpl(const UnitPtr& p) { - ImplVisitor implVisitor(_dir, _warningLevel); + ImplVisitor implVisitor(_dir); p->visit(&implVisitor, false); } void Slice::GenCompat::generateImplTie(const UnitPtr& p) { - ImplTieVisitor implTieVisitor(_dir, _warningLevel); + ImplTieVisitor implTieVisitor(_dir); p->visit(&implTieVisitor, false); } @@ -2395,8 +2393,8 @@ Slice::GenCompat::writeChecksumClass(const string& checksumClass, const string& out << nl; } -Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -2530,8 +2528,8 @@ Slice::GenCompat::OpsVisitor::writeOperations(const ClassDefPtr& p, bool noCurre close(); } -Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -2555,8 +2553,8 @@ Slice::GenCompat::PackageVisitor::visitModuleStart(const ModulePtr& p) return false; } -Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -3014,10 +3012,14 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) string serialVersionUID; if(p->findMetaData("java:serialVersionUID", serialVersionUID)) { + const UnitPtr unit = p->unit(); + const DefinitionContextPtr dc = unit->findDefinitionContext(p->file()); + assert(dc); + bool emitWarnings = !dc->suppressWarning("invalid-metadata"); string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; @@ -3033,7 +3035,7 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for class `" << p->scoped() @@ -3440,10 +3442,14 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string serialVersionUID; if(p->findMetaData("java:serialVersionUID", serialVersionUID)) { + const UnitPtr unit = p->unit(); + const DefinitionContextPtr dc = unit->findDefinitionContext(p->file()); + assert(dc); + bool emitWarnings = !dc->suppressWarning("invalid-metadata"); string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value"; @@ -3459,7 +3465,7 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for exception `" << p->scoped() @@ -3762,10 +3768,14 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p) string serialVersionUID; if(p->findMetaData("java:serialVersionUID", serialVersionUID)) { + const UnitPtr unit = p->unit(); + const DefinitionContextPtr dc = unit->findDefinitionContext(p->file()); + assert(dc); + bool emitWarnings = !dc->suppressWarning("invalid-metadata"); string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value"; @@ -3781,7 +3791,7 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for struct `" << p->scoped() @@ -4212,8 +4222,8 @@ Slice::GenCompat::TypesVisitor::validateMethod(const OperationList& ops, const s return true; } -Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -4242,8 +4252,8 @@ Slice::GenCompat::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -4391,8 +4401,8 @@ Slice::GenCompat::HolderVisitor::writeHolder(const TypePtr& p) close(); } -Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -5324,8 +5334,8 @@ Slice::GenCompat::HelperVisitor::writeOperation(const ClassDefPtr& p, const stri } } -Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -5644,8 +5654,8 @@ Slice::GenCompat::ProxyVisitor::visitOperation(const OperationPtr& p) } } -Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie, int warningLevel) : - JavaCompatVisitor(dir, warningLevel), +Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie) : + JavaCompatVisitor(dir), _tie(tie) { } @@ -5843,10 +5853,14 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) string serialVersionUID; if(p->findMetaData("java:serialVersionUID", serialVersionUID)) { + const UnitPtr unit = p->unit(); + const DefinitionContextPtr dc = unit->findDefinitionContext(p->file()); + assert(dc); + bool emitWarnings = !dc->suppressWarning("invalid-metadata"); string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; @@ -5862,7 +5876,7 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream os; os << "ignoring invalid serialVersionUID for class `" << p->scoped() @@ -5887,8 +5901,8 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir) : + JavaCompatVisitor(dir) { } @@ -6152,8 +6166,8 @@ Slice::GenCompat::BaseImplVisitor::writeOperation(Output& out, const string& pac } } -Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir, int warningLevel) : - BaseImplVisitor(dir, warningLevel) +Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir) : + BaseImplVisitor(dir) { } @@ -6208,8 +6222,8 @@ Slice::GenCompat::ImplVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir, int warningLevel) : - BaseImplVisitor(dir, warningLevel) +Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir) : + BaseImplVisitor(dir) { } @@ -6297,8 +6311,8 @@ Slice::GenCompat::ImplTieVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir, int warningLevel) : - JavaCompatVisitor(dir, warningLevel) +Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir) : + JavaCompatVisitor(dir) { } |