summaryrefslogtreecommitdiff
path: root/cpp/src/Slice
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-03 18:10:20 +0100
committerJose <jose@zeroc.com>2017-02-03 18:10:20 +0100
commit7274ebf13c7a1ff3b587598335201c3a4e848c90 (patch)
treead673e775b6ab68d511bcc86cf420c519b65948d /cpp/src/Slice
parentConnection::close fixes for C#/Java/JS (diff)
downloadice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.bz2
ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.xz
ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.zip
Rework warning suppression to use global meta data
Diffstat (limited to 'cpp/src/Slice')
-rw-r--r--cpp/src/Slice/Checksum.cpp9
-rw-r--r--cpp/src/Slice/Checksum.h2
-rw-r--r--cpp/src/Slice/JavaUtil.cpp58
-rw-r--r--cpp/src/Slice/JavaUtil.h4
-rw-r--r--cpp/src/Slice/Parser.cpp18
-rw-r--r--cpp/src/Slice/Parser.h14
-rw-r--r--cpp/src/Slice/Python.cpp19
-rw-r--r--cpp/src/Slice/PythonUtil.cpp56
-rw-r--r--cpp/src/Slice/PythonUtil.h2
-rw-r--r--cpp/src/Slice/Ruby.cpp6
-rw-r--r--cpp/src/Slice/RubyUtil.cpp12
-rw-r--r--cpp/src/Slice/RubyUtil.h2
12 files changed, 107 insertions, 95 deletions
diff --git a/cpp/src/Slice/Checksum.cpp b/cpp/src/Slice/Checksum.cpp
index 1dd25cef5c8..1c8a21511e8 100644
--- a/cpp/src/Slice/Checksum.cpp
+++ b/cpp/src/Slice/Checksum.cpp
@@ -21,7 +21,7 @@ class ChecksumVisitor : public ParserVisitor
{
public:
- ChecksumVisitor(ChecksumMap&, int);
+ ChecksumVisitor(ChecksumMap&);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual bool visitExceptionStart(const ExceptionPtr&);
@@ -41,8 +41,7 @@ private:
}
-Slice::ChecksumVisitor::ChecksumVisitor(ChecksumMap& m, int warningLevel) :
- ParserVisitor(warningLevel),
+Slice::ChecksumVisitor::ChecksumVisitor(ChecksumMap& m) :
_map(m)
{
}
@@ -442,11 +441,11 @@ Slice::ChecksumVisitor::updateMap(const string& scoped, const string& data)
}
Slice::ChecksumMap
-Slice::createChecksums(const UnitPtr& u, int warningLevel)
+Slice::createChecksums(const UnitPtr& u)
{
ChecksumMap result;
- ChecksumVisitor visitor(result, warningLevel);
+ ChecksumVisitor visitor(result);
u->visit(&visitor, false);
return result;
diff --git a/cpp/src/Slice/Checksum.h b/cpp/src/Slice/Checksum.h
index 158ac182f77..3744d8a6ad4 100644
--- a/cpp/src/Slice/Checksum.h
+++ b/cpp/src/Slice/Checksum.h
@@ -19,7 +19,7 @@ namespace Slice
typedef std::map<std::string, std::vector<unsigned char> > ChecksumMap;
-ChecksumMap createChecksums(const UnitPtr&, int);
+ChecksumMap createChecksums(const UnitPtr&);
}
diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp
index 7c2f83fb20e..461f9b7c09e 100644
--- a/cpp/src/Slice/JavaUtil.cpp
+++ b/cpp/src/Slice/JavaUtil.cpp
@@ -139,10 +139,6 @@ class MetaDataVisitor : public ParserVisitor
{
public:
- MetaDataVisitor(int warningLevel) : ParserVisitor(warningLevel)
- {
- }
-
virtual bool visitUnitStart(const UnitPtr& p)
{
static const string prefix = "java:";
@@ -157,6 +153,7 @@ public:
string file = *q;
DefinitionContextPtr dc = p->findDefinitionContext(file);
assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
StringList globalMetaData = dc->getMetaData();
for(StringList::const_iterator r = globalMetaData.begin(); r != globalMetaData.end();)
{
@@ -175,7 +172,7 @@ public:
}
else
{
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, "", "ignoring invalid global metadata `" + s + "'");
}
@@ -238,6 +235,11 @@ public:
TypePtr returnType = p->returnType();
StringList metaData = getMetaData(p);
+ UnitPtr unit = p->unit();
+ string file = p->file();
+ DefinitionContextPtr dc = unit->findDefinitionContext(p->file());
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
if(!returnType)
{
for(StringList::const_iterator q = metaData.begin(); q != metaData.end();)
@@ -245,7 +247,7 @@ public:
string s = *q++;
if(s.find("java:type:", 0) == 0)
{
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(p->file(), p->line(), "ignoring invalid metadata `" + s +
"' for operation with void return type");
@@ -290,6 +292,10 @@ public:
const string file = p->file();
const string line = p->line();
+ const UnitPtr unit = p->unit();
+ const DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); )
{
string s = *q++;
@@ -303,7 +309,7 @@ public:
BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
if(!builtin || builtin->kind() != Builtin::KindByte)
{
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + s + "': " +
"this metadata can only be used with a byte sequence");
@@ -322,7 +328,7 @@ public:
builtin->kind() != Builtin::KindInt && builtin->kind() != Builtin::KindLong &&
builtin->kind() != Builtin::KindFloat && builtin->kind() != Builtin::KindDouble))
{
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + s + "': " +
"this metadata can not be used with this type");
@@ -372,6 +378,12 @@ private:
StringList metaData = cont->getMetaData();
StringList result;
+ UnitPtr unit = cont->container()->unit();
+ string file = cont->file();
+ DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
for(StringList::const_iterator p = metaData.begin(); p != metaData.end(); ++p)
{
string s = *p;
@@ -431,7 +443,7 @@ private:
continue;
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'");
}
@@ -448,6 +460,10 @@ private:
StringList validateType(const SyntaxTreeBasePtr& p, const StringList& metaData, const string& file, const string& line)
{
+ const UnitPtr unit = p->unit();
+ const DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
StringList newMetaData;
for(StringList::const_iterator i = metaData.begin(); i != metaData.end(); ++i)
{
@@ -468,7 +484,7 @@ private:
assert(b);
str = b->typeId();
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "invalid metadata for " + str);
}
@@ -490,7 +506,7 @@ private:
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + *i + "'");
}
@@ -500,7 +516,7 @@ private:
//
// Only valid in sequence definition which is checked in visitSequence
//
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + *i + "'");
}
@@ -512,7 +528,7 @@ private:
{
newMetaData.push_back(*i);
}
- else if(warningLevel() > 0)
+ else if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + *i + "'");
}
@@ -523,7 +539,7 @@ private:
{
newMetaData.push_back(*i);
}
- else if(warningLevel() > 0)
+ else if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + *i + "'");
}
@@ -538,6 +554,10 @@ private:
StringList validateGetSet(const SyntaxTreeBasePtr& p, const StringList& metaData, const string& file, const string& line)
{
+ const UnitPtr unit = p->unit();
+ const DefinitionContextPtr dc= unit->findDefinitionContext(file);
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
StringList newMetaData;
for(StringList::const_iterator i = metaData.begin(); i != metaData.end(); ++i)
{
@@ -560,7 +580,7 @@ private:
assert(b);
str = b->typeId();
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "invalid metadata for " + str);
}
@@ -3219,9 +3239,9 @@ Slice::JavaCompatGenerator::createOutput()
}
void
-Slice::JavaCompatGenerator::validateMetaData(const UnitPtr& u, int warningLevel)
+Slice::JavaCompatGenerator::validateMetaData(const UnitPtr& u)
{
- MetaDataVisitor visitor(warningLevel);
+ MetaDataVisitor visitor;
u->visit(&visitor, true);
}
@@ -5530,8 +5550,8 @@ Slice::JavaGenerator::createOutput()
}
void
-Slice::JavaGenerator::validateMetaData(const UnitPtr& u, int warningLevel)
+Slice::JavaGenerator::validateMetaData(const UnitPtr& u)
{
- MetaDataVisitor visitor(warningLevel);
+ MetaDataVisitor visitor;
u->visit(&visitor, true);
}
diff --git a/cpp/src/Slice/JavaUtil.h b/cpp/src/Slice/JavaUtil.h
index c16f78a3247..fcc77d30f63 100644
--- a/cpp/src/Slice/JavaUtil.h
+++ b/cpp/src/Slice/JavaUtil.h
@@ -68,7 +68,7 @@ public:
//
// Validate all metadata in the unit with a "java:" prefix.
//
- static void validateMetaData(const UnitPtr&, int);
+ static void validateMetaData(const UnitPtr&);
void close();
@@ -235,7 +235,7 @@ public:
//
// Validate all metadata in the unit with a "java:" prefix.
//
- static void validateMetaData(const UnitPtr&, int);
+ static void validateMetaData(const UnitPtr&);
void close();
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 5db58db7ef9..9b95062c035 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -122,17 +122,6 @@ Unit* unit;
}
-Slice::ParserVisitor::ParserVisitor(int warningLevel) :
- _warningLevel(warningLevel)
-{
-}
-
-int
-Slice::ParserVisitor::warningLevel()
-{
- return _warningLevel;
-}
-
// ----------------------------------------------------------------------
// DefinitionContext
// ----------------------------------------------------------------------
@@ -204,6 +193,13 @@ Slice::DefinitionContext::getMetaData() const
return _metaData;
}
+bool
+Slice::DefinitionContext::suppressWarning(const string& name) const
+{
+ string q = findMetaData("suppress-warning");
+ return q == "suppress-warning" || q == "supress-warning:all" || q == ("suppress-warning:" + name);
+}
+
// ----------------------------------------------------------------------
// SyntaxTreeBase
// ----------------------------------------------------------------------
diff --git a/cpp/src/Slice/Parser.h b/cpp/src/Slice/Parser.h
index 3f969dbf330..9363105a066 100644
--- a/cpp/src/Slice/Parser.h
+++ b/cpp/src/Slice/Parser.h
@@ -191,8 +191,6 @@ class ParserVisitor
{
public:
- ParserVisitor(int warningLevel = 1);
-
virtual ~ParserVisitor() { }
virtual bool visitUnitStart(const UnitPtr&) { return true; }
virtual void visitUnitEnd(const UnitPtr&) { }
@@ -212,12 +210,6 @@ public:
virtual void visitDictionary(const DictionaryPtr&) { }
virtual void visitEnum(const EnumPtr&) { }
virtual void visitConst(const ConstPtr&) { }
-
- int warningLevel();
-
-private:
-
- int _warningLevel;
};
// ----------------------------------------------------------------------
@@ -242,6 +234,12 @@ public:
std::string findMetaData(const std::string&) const;
StringList getMetaData() const;
+ //
+ // Check if we need to suppress the given warnings based
+ // on the [["supress-warning"]] global meta-data
+ //
+ bool suppressWarning(const std::string& = "") const;
+
private:
int _includeLevel;
diff --git a/cpp/src/Slice/Python.cpp b/cpp/src/Slice/Python.cpp
index 057fb22cca4..bc1da962d70 100644
--- a/cpp/src/Slice/Python.cpp
+++ b/cpp/src/Slice/Python.cpp
@@ -101,13 +101,13 @@ class PackageVisitor : public ParserVisitor
{
public:
- static void createModules(const UnitPtr&, const string&, const string&, int);
+ static void createModules(const UnitPtr&, const string&, const string&);
virtual void visitModuleEnd(const ModulePtr&);
private:
- PackageVisitor(StringList&, int);
+ PackageVisitor(StringList&);
enum ReadState { PreModules, InModules, InSubmodules };
@@ -128,17 +128,16 @@ private:
const char* PackageVisitor::_moduleTag = "# Modules:";
const char* PackageVisitor::_submoduleTag = "# Submodules:";
-PackageVisitor::PackageVisitor(StringList& modules, int warningLevel) :
- ParserVisitor(warningLevel),
+PackageVisitor::PackageVisitor(StringList& modules) :
_modules(modules)
{
}
void
-PackageVisitor::createModules(const UnitPtr& unit, const string& module, const string& dir, int warningLevel)
+PackageVisitor::createModules(const UnitPtr& unit, const string& module, const string& dir)
{
StringList modules;
- PackageVisitor v(modules, warningLevel);
+ PackageVisitor v(modules);
unit->visit(&v, false);
for(StringList::iterator p = modules.begin(); p != modules.end(); ++p)
@@ -404,7 +403,6 @@ usage(const string& n)
"--all Generate code for Slice definitions in included files.\n"
"--checksum Generate checksums for Slice definitions.\n"
"--prefix PREFIX Prepend filenames of Python modules with PREFIX.\n"
- "--no-warn Disable all warnings.\n"
;
}
@@ -432,7 +430,6 @@ Slice::Python::compile(const vector<string>& argv)
opts.addOpt("", "build-package");
opts.addOpt("", "checksum");
opts.addOpt("", "prefix", IceUtilInternal::Options::NeedArg);
- opts.addOpt("", "no-warn");
vector<string> args;
try
@@ -503,8 +500,6 @@ Slice::Python::compile(const vector<string>& argv)
string prefix = opts.optArg("prefix");
- int warningLevel = opts.isSet("no-warn") ? 0 : 1;
-
if(args.empty())
{
consoleErr << argv[0] << ": error: no input file" << endl;
@@ -670,7 +665,7 @@ Slice::Python::compile(const vector<string>& argv)
//
// Generate Python code.
//
- generate(u, all, checksum, includePaths, out, warningLevel);
+ generate(u, all, checksum, includePaths, out);
out.close();
}
@@ -680,7 +675,7 @@ Slice::Python::compile(const vector<string>& argv)
//
if(!noPackage)
{
- PackageVisitor::createModules(u, prefix + base + "_ice", output, warningLevel);
+ PackageVisitor::createModules(u, prefix + base + "_ice", output);
}
}
catch(const Slice::FileException& ex)
diff --git a/cpp/src/Slice/PythonUtil.cpp b/cpp/src/Slice/PythonUtil.cpp
index 4d5a23caf9d..9f09a765ed4 100644
--- a/cpp/src/Slice/PythonUtil.cpp
+++ b/cpp/src/Slice/PythonUtil.cpp
@@ -50,8 +50,6 @@ class MetaDataVisitor : public ParserVisitor
{
public:
- MetaDataVisitor(int);
-
virtual bool visitUnitStart(const UnitPtr&);
virtual bool visitModuleStart(const ModulePtr&);
virtual void visitClassDecl(const ClassDeclPtr&);
@@ -93,7 +91,7 @@ class ModuleVisitor : public ParserVisitor
{
public:
- ModuleVisitor(Output&, set<string>&, int);
+ ModuleVisitor(Output&, set<string>&);
virtual bool visitModuleStart(const ModulePtr&);
@@ -110,7 +108,7 @@ class CodeVisitor : public ParserVisitor
{
public:
- CodeVisitor(IceUtilInternal::Output&, set<string>&, int);
+ CodeVisitor(IceUtilInternal::Output&, set<string>&);
virtual bool visitModuleStart(const ModulePtr&);
virtual void visitModuleEnd(const ModulePtr&);
@@ -293,8 +291,7 @@ getDictLookup(const ContainedPtr& cont, const string& suffix = "", const string&
//
// ModuleVisitor implementation.
//
-Slice::Python::ModuleVisitor::ModuleVisitor(Output& out, set<string>& history, int warningLevel) :
- ParserVisitor(warningLevel),
+Slice::Python::ModuleVisitor::ModuleVisitor(Output& out, set<string>& history) :
_out(out), _history(history)
{
}
@@ -344,8 +341,7 @@ Slice::Python::ModuleVisitor::visitModuleStart(const ModulePtr& p)
//
// CodeVisitor implementation.
//
-Slice::Python::CodeVisitor::CodeVisitor(Output& out, set<string>& moduleHistory, int warningLevel) :
- ParserVisitor(warningLevel),
+Slice::Python::CodeVisitor::CodeVisitor(Output& out, set<string>& moduleHistory) :
_out(out),
_moduleHistory(moduleHistory)
{
@@ -2835,9 +2831,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, int warningLevel)
+ Output& out)
{
- Slice::Python::MetaDataVisitor visitor(warningLevel);
+ Slice::Python::MetaDataVisitor visitor;
un->visit(&visitor, false);
out << nl << "from sys import version_info as _version_info_";
@@ -2862,15 +2858,15 @@ Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector
set<string> moduleHistory;
- ModuleVisitor moduleVisitor(out, moduleHistory, warningLevel);
+ ModuleVisitor moduleVisitor(out, moduleHistory);
un->visit(&moduleVisitor, true);
- CodeVisitor codeVisitor(out, moduleHistory, warningLevel);
+ CodeVisitor codeVisitor(out, moduleHistory);
un->visit(&codeVisitor, false);
if(checksum)
{
- ChecksumMap checksums = createChecksums(un, warningLevel);
+ ChecksumMap checksums = createChecksums(un);
if(!checksums.empty())
{
out << sp;
@@ -2986,11 +2982,6 @@ Slice::Python::printHeader(IceUtilInternal::Output& out)
out << "#\n";
}
-Slice::Python::MetaDataVisitor::MetaDataVisitor(int warningLevel) :
- ParserVisitor(warningLevel)
-{
-}
-
bool
Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
{
@@ -3000,12 +2991,12 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
// Validate global metadata in the top-level file and all included files.
//
StringList files = p->allFiles();
-
for(StringList::iterator q = files.begin(); q != files.end(); ++q)
{
string file = *q;
DefinitionContextPtr dc = p->findDefinitionContext(file);
assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
StringList globalMetaData = dc->getMetaData();
for(StringList::const_iterator r = globalMetaData.begin(); r != globalMetaData.end();)
{
@@ -3018,7 +3009,7 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
continue;
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, "", "ignoring invalid global metadata `" + s + "'");
}
@@ -3094,6 +3085,11 @@ Slice::Python::MetaDataVisitor::visitSequence(const SequencePtr& p)
const string file = p->file();
const string line = p->line();
StringList protobufMetaData;
+ const UnitPtr unit = p->unit();
+ const DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); )
{
string s = *q++;
@@ -3106,7 +3102,7 @@ Slice::Python::MetaDataVisitor::visitSequence(const SequencePtr& p)
BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
if(!builtin || builtin->kind() != Builtin::KindByte)
{
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + s + ": " +
"`protobuf' encoding must be a byte sequence");
@@ -3146,6 +3142,11 @@ StringList
Slice::Python::MetaDataVisitor::validateSequence(const string& file, const string& line,
const TypePtr& type, const StringList& metaData)
{
+ const UnitPtr unit = type->unit();
+ const DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
static const string prefix = "python:";
StringList newMetaData = metaData;
for(StringList::const_iterator p = newMetaData.begin(); p != newMetaData.end();)
@@ -3166,7 +3167,7 @@ Slice::Python::MetaDataVisitor::validateSequence(const string& file, const strin
}
}
}
- if(warningLevel() > 0)
+ if(emitWarnings)
{
emitWarning(file, line, "ignoring invalid metadata `" + s + "'");
}
@@ -3181,12 +3182,21 @@ Slice::Python::MetaDataVisitor::reject(const ContainedPtr& cont)
{
StringList localMetaData = cont->getMetaData();
static const string prefix = "python:";
+
+ const UnitPtr unit = cont->unit();
+ const DefinitionContextPtr dc = unit->findDefinitionContext(cont->file());
+ assert(dc);
+ bool emitWarnings = !dc->suppressWarning("invalid-metadata");
+
for(StringList::const_iterator p = localMetaData.begin(); p != localMetaData.end();)
{
string s = *p++;
if(s.find(prefix) == 0)
{
- emitWarning(cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'");
+ if(emitWarnings)
+ {
+ emitWarning(cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'");
+ }
localMetaData.remove(s);
}
}
diff --git a/cpp/src/Slice/PythonUtil.h b/cpp/src/Slice/PythonUtil.h
index 161d3bdb148..9d48b3d3871 100644
--- a/cpp/src/Slice/PythonUtil.h
+++ b/cpp/src/Slice/PythonUtil.h
@@ -21,7 +21,7 @@ namespace Python
//
// Generate Python code for a translation unit.
//
-void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&, int);
+void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
//
// Convert a scoped name into a Python name.
diff --git a/cpp/src/Slice/Ruby.cpp b/cpp/src/Slice/Ruby.cpp
index 7bd4dd07d17..7861bcb8c0b 100644
--- a/cpp/src/Slice/Ruby.cpp
+++ b/cpp/src/Slice/Ruby.cpp
@@ -81,7 +81,6 @@ 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"
;
}
@@ -106,7 +105,6 @@ Slice::Ruby::compile(const vector<string>& argv)
opts.addOpt("", "underscore");
opts.addOpt("", "all");
opts.addOpt("", "checksum");
- opts.addOpt("", "no-warn");
vector<string> args;
try
@@ -171,8 +169,6 @@ Slice::Ruby::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;
@@ -315,7 +311,7 @@ Slice::Ruby::compile(const vector<string>& argv)
//
// Generate the Ruby mapping.
//
- generate(u, all, checksum, includePaths, out, warningLevel);
+ generate(u, all, checksum, includePaths, out);
out.close();
}
diff --git a/cpp/src/Slice/RubyUtil.cpp b/cpp/src/Slice/RubyUtil.cpp
index 574a7cf2644..9c1a32d8e77 100644
--- a/cpp/src/Slice/RubyUtil.cpp
+++ b/cpp/src/Slice/RubyUtil.cpp
@@ -52,7 +52,7 @@ class CodeVisitor : public ParserVisitor
{
public:
- CodeVisitor(IceUtilInternal::Output&, int);
+ CodeVisitor(IceUtilInternal::Output&);
virtual bool visitModuleStart(const ModulePtr&);
virtual void visitModuleEnd(const ModulePtr&);
@@ -184,8 +184,7 @@ splitScopedName(const string& scoped)
//
// CodeVisitor implementation.
//
-Slice::Ruby::CodeVisitor::CodeVisitor(Output& out, int warningLevel) :
- ParserVisitor(warningLevel),
+Slice::Ruby::CodeVisitor::CodeVisitor(Output& out) :
_out(out)
{
}
@@ -1446,8 +1445,7 @@ Slice::Ruby::CodeVisitor::collectExceptionMembers(const ExceptionPtr& p, MemberI
}
void
-Slice::Ruby::generate(const UnitPtr& un, bool all, bool checksum, const vector<string>& includePaths, Output& out,
- int warningLevel)
+Slice::Ruby::generate(const UnitPtr& un, bool all, bool checksum, const vector<string>& includePaths, Output& out)
{
out << nl << "require 'Ice'";
@@ -1467,12 +1465,12 @@ Slice::Ruby::generate(const UnitPtr& un, bool all, bool checksum, const vector<s
}
}
- CodeVisitor codeVisitor(out, warningLevel);
+ CodeVisitor codeVisitor(out);
un->visit(&codeVisitor, false);
if(checksum)
{
- ChecksumMap checksums = createChecksums(un, warningLevel);
+ ChecksumMap checksums = createChecksums(un);
if(!checksums.empty())
{
out << sp;
diff --git a/cpp/src/Slice/RubyUtil.h b/cpp/src/Slice/RubyUtil.h
index 387cbc67073..e67ecd1b623 100644
--- a/cpp/src/Slice/RubyUtil.h
+++ b/cpp/src/Slice/RubyUtil.h
@@ -21,7 +21,7 @@ namespace Ruby
//
// Generate Ruby code for a translation unit.
//
-void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&, int);
+void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
//
// Check the given identifier against Ruby's list of reserved words. If it matches