summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/VbUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/VbUtil.cpp')
-rwxr-xr-xcpp/src/Slice/VbUtil.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/cpp/src/Slice/VbUtil.cpp b/cpp/src/Slice/VbUtil.cpp
index 545aa6f4ef0..4894958b78b 100755
--- a/cpp/src/Slice/VbUtil.cpp
+++ b/cpp/src/Slice/VbUtil.cpp
@@ -1065,8 +1065,8 @@ Slice::VbGenerator::MetaDataVisitor::visitModuleStart(const ModulePtr& p)
}
}
_globalMetaDataDone = true;
- validate(p);
}
+ validate(p);
return true;
}
@@ -1109,6 +1109,15 @@ bool
Slice::VbGenerator::MetaDataVisitor::visitStructStart(const StructPtr& p)
{
validate(p);
+ if(p->hasMetaData("clr:property"))
+ {
+ if(!p->hasMetaData("clr:class"))
+ {
+ string file = p->definitionContext()->filename();
+ cout << file << ":" << p->line() << ": warning: the property mapping applies to Slice "
+ << "structures only in conjunction with the `clr:class' metadata directive" << endl;
+ }
+ }
return true;
}
@@ -1222,6 +1231,17 @@ Slice::VbGenerator::MetaDataVisitor::validate(const ContainedPtr& cont)
{
continue;
}
+ if(s.substr(prefix.size()) == "property")
+ {
+ continue;
+ }
+ }
+ if(ClassDefPtr::dynamicCast(cont))
+ {
+ if(s.substr(prefix.size()) == "property")
+ {
+ continue;
+ }
}
cout << file << ":" << cont->line() << ": warning: ignoring invalid metadata `" << s << "'" << endl;
}