diff options
Diffstat (limited to 'cpp/src/Slice/VbUtil.cpp')
-rwxr-xr-x | cpp/src/Slice/VbUtil.cpp | 22 |
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; } |