summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/CsUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/CsUtil.cpp')
-rwxr-xr-xcpp/src/Slice/CsUtil.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/cpp/src/Slice/CsUtil.cpp b/cpp/src/Slice/CsUtil.cpp
index 37f1c116301..b1bc74d704a 100755
--- a/cpp/src/Slice/CsUtil.cpp
+++ b/cpp/src/Slice/CsUtil.cpp
@@ -1017,8 +1017,8 @@ Slice::CsGenerator::MetaDataVisitor::visitModuleStart(const ModulePtr& p)
}
}
_globalMetaDataDone = true;
- validate(p);
}
+ validate(p);
return true;
}
@@ -1061,6 +1061,15 @@ bool
Slice::CsGenerator::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;
}
@@ -1174,6 +1183,17 @@ Slice::CsGenerator::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;
}