Kaydet (Commit) 87dc2228 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Fix unoidl sourceprovider "published" checks

Change-Id: I93b9fcc2b20ed7a7c160a9ef3294b6e578678f53
üst 75144495
......@@ -636,3 +636,46 @@ singleton S: I1;
EXPECT SUCCESS "published.tests 118":
published interface I1 {};
published singleton S: I1;
EXPECT FAILURE "published.tests 119":
interface I1 {};
published interface I2 { [optional] interface I1; };
EXPECT FAILURE "published.tests 120":
service S1 {};
published service S2 { [optional] service S1; };
EXPECT SUCCESS "published.tests 121":
interface I {};
published service S { [optional] interface I; };
EXPECT FAILURE "published.tests 122":
interface I {};
published service S { [optional, property] I p; };
EXPECT FAILURE "published.tests 123":
interface I {};
published service S { [optional, property] sequence<I> p; };
EXPECT FAILURE "published.tests 124":
struct P<T> { T m; };
interface I {};
published service S { [optional, property] P<I> p; };
EXPECT FAILURE "published.tests 125":
published struct P<T> { T m; };
interface I {};
published service S { [optional, property] P<I> p; };
EXPECT FAILURE "published.tests 126":
struct P<T> { T m; };
published interface I {};
published service S { [optional, property] P<I> p; };
......@@ -218,7 +218,10 @@ private:
};
struct SourceProviderEntity {
enum Kind { KIND_EXTERNAL, KIND_LOCAL, KIND_INTERFACE_DECL, KIND_MODULE };
enum Kind {
KIND_EXTERNAL, KIND_LOCAL, KIND_INTERFACE_DECL,
KIND_PUBLISHED_INTERFACE_DECL, KIND_MODULE
};
explicit SourceProviderEntity(
Kind theKind, rtl::Reference<unoidl::Entity> const & externalEntity):
......@@ -248,7 +251,7 @@ struct SourceProviderScannerData {
manager(theManager),
sourcePosition(), sourceEnd(),
// avoid false warnings about uninitialized members
errorLine(0)
errorLine(0), publishedContext(false)
{ assert(manager.is()); }
void setSource(void const * address, sal_uInt64 size) {
......@@ -267,6 +270,7 @@ struct SourceProviderScannerData {
std::map<OUString, SourceProviderEntity> entities;
std::vector<OUString> modules;
OUString currentName;
bool publishedContext;
};
bool parse(OUString const & uri, SourceProviderScannerData * data);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment