summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rwxr-xr-xcpp/src/Slice/Parser.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 93cbb799fc6..96260809ef8 100755
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -3433,6 +3433,20 @@ Slice::ClassDef::hasDefaultValues() const
return false;
}
+bool
+Slice::ClassDef::inheritsMetaData(const string& meta) const
+{
+ for(ClassList::const_iterator p = _bases.begin(); p != _bases.end(); ++p)
+ {
+ if((*p)->hasMetaData(meta) || (*p)->inheritsMetaData(meta))
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
Contained::ContainedType
Slice::ClassDef::containedType() const
{
@@ -3862,6 +3876,17 @@ Slice::Exception::hasDefaultValues() const
return false;
}
+bool
+Slice::Exception::inheritsMetaData(const string& meta) const
+{
+ if(_base && (_base->hasMetaData(meta) || _base->inheritsMetaData(meta)))
+ {
+ return true;
+ }
+
+ return false;
+}
+
string
Slice::Exception::kindOf() const
{