Forbid old-style services/singletons inheriting new-style services
...does not make sense. Adapted some old-style services accordingly, where the inherited service had been changed to new-style after the fact. Change-Id: I5f3e4ddf99160778a319062a6c84f83529ff177b
This commit is contained in:
@@ -181,7 +181,7 @@ service S2: XTest;
|
||||
|
||||
service S3 { interface XTest; };
|
||||
|
||||
singleton S4 { service S2; };
|
||||
singleton S4 { service S3; };
|
||||
|
||||
module services {
|
||||
|
||||
|
||||
@@ -50,6 +50,11 @@ $(call gb_CustomTarget_get_target,idlc/parser_test) : \
|
||||
$(call gb_Executable_get_command,idlc) \
|
||||
-O $(call gb_CustomTarget_get_workdir,idlc/parser_test) \
|
||||
-stdin && \
|
||||
$(PERL) $(SRCDIR)/solenv/bin/exectest.pl \
|
||||
$(SRCDIR)/idlc/test/parser/oldstyle.tests \
|
||||
$(call gb_Executable_get_command,idlc) \
|
||||
-O $(call gb_CustomTarget_get_workdir,idlc/parser_test) \
|
||||
-stdin && \
|
||||
$(PERL) $(SRCDIR)/solenv/bin/exectest.pl \
|
||||
$(SRCDIR)/idlc/test/parser/polystruct.tests \
|
||||
$(call gb_Executable_get_command,idlc) \
|
||||
|
||||
@@ -29,22 +29,31 @@ public:
|
||||
AstService(const ::rtl::OString& name, AstScope* pScope)
|
||||
: AstDeclaration(NT_service, name, pScope)
|
||||
, AstScope(NT_service)
|
||||
, m_singleInterfaceBasedService(false)
|
||||
, m_defaultConstructor(false)
|
||||
{}
|
||||
AstService(const NodeType type, const ::rtl::OString& name, AstScope* pScope)
|
||||
: AstDeclaration(type, name, pScope)
|
||||
, AstScope(type)
|
||||
, m_singleInterfaceBasedService(false)
|
||||
, m_defaultConstructor(false)
|
||||
{}
|
||||
virtual ~AstService() {}
|
||||
|
||||
virtual sal_Bool dump(RegistryKey& rKey);
|
||||
|
||||
void setSingleInterfaceBasedService()
|
||||
{ m_singleInterfaceBasedService = true; }
|
||||
|
||||
void setDefaultConstructor(bool b) { m_defaultConstructor = b; }
|
||||
|
||||
bool isSingleInterfaceBasedService() const
|
||||
{ return m_singleInterfaceBasedService; }
|
||||
|
||||
bool checkLastConstructor() const;
|
||||
|
||||
private:
|
||||
bool m_singleInterfaceBasedService;
|
||||
bool m_defaultConstructor;
|
||||
};
|
||||
|
||||
|
||||
@@ -1707,7 +1707,7 @@ service_export :
|
||||
pDecl = pScope->lookupByName(*iter);
|
||||
if ( pDecl && (pDecl->getNodeType() == NT_service) )
|
||||
{
|
||||
if ( pScope->getScopeNodeType() == NT_singleton && pScope->nMembers() > 0 )
|
||||
if ( static_cast< AstService * >(pDecl)->isSingleInterfaceBasedService() || pScope->getScopeNodeType() == NT_singleton && pScope->nMembers() > 0 )
|
||||
idlc()->error()->error0(EIDL_ILLEGAL_ADD);
|
||||
else if ( idlc()->error()->checkPublished(pDecl) )
|
||||
{
|
||||
@@ -1907,6 +1907,7 @@ service_interface_dfn:
|
||||
{
|
||||
AstService * s = static_cast< AstService * >(idlc()->scopes()->top());
|
||||
if (s != 0) {
|
||||
s->setSingleInterfaceBasedService();
|
||||
s->setDefaultConstructor(!$4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#
|
||||
# This file is part of the LibreOffice project.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
|
||||
EXPECT SUCCESS "oldstyle.tests 1":
|
||||
service S1 {};
|
||||
service S2 { service S1; };
|
||||
|
||||
|
||||
EXPECT FAILURE "oldstyle.tests 2":
|
||||
interface X {};
|
||||
service S1: X;
|
||||
service S2 { service S1; };
|
||||
|
||||
|
||||
EXPECT SUCCESS "oldstyle.tests 3":
|
||||
service S1 {};
|
||||
singleton S2 { service S1; };
|
||||
|
||||
|
||||
EXPECT FAILURE "oldstyle.tests 4":
|
||||
interface X {};
|
||||
service S1: X;
|
||||
singleton S2 { service S1; };
|
||||
@@ -20,7 +20,7 @@
|
||||
#ifndef __com_sun_star_script_vba_VBASpreadsheetEventProcessor_idl__
|
||||
#define __com_sun_star_script_vba_VBASpreadsheetEventProcessor_idl__
|
||||
|
||||
#include <com/sun/star/script/vba/VBAEventProcessor.idl>
|
||||
#include <com/sun/star/script/vba/XVBAEventProcessor.idl>
|
||||
|
||||
|
||||
module com { module sun { module star { module script { module vba {
|
||||
@@ -28,7 +28,7 @@ module com { module sun { module star { module script { module vba {
|
||||
|
||||
service VBASpreadsheetEventProcessor
|
||||
{
|
||||
service VBAEventProcessor;
|
||||
interface XVBAEventProcessor;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#ifndef __com_sun_star_script_vba_VBATextEventProcessor_idl__
|
||||
#define __com_sun_star_script_vba_VBATextEventProcessor_idl__
|
||||
|
||||
#include <com/sun/star/script/vba/VBAEventProcessor.idl>
|
||||
#include <com/sun/star/script/vba/XVBAEventProcessor.idl>
|
||||
|
||||
|
||||
module com { module sun { module star { module script { module vba {
|
||||
@@ -28,7 +28,7 @@ module com { module sun { module star { module script { module vba {
|
||||
|
||||
service VBATextEventProcessor
|
||||
{
|
||||
service VBAEventProcessor;
|
||||
interface XVBAEventProcessor;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include <com/sun/star/sdb/DataSettings.idl>
|
||||
|
||||
#include <com/sun/star/sdb/QueryDefinition.idl>
|
||||
#include <com/sun/star/sdb/XQueryDefinition.idl>
|
||||
|
||||
module com { module sun { module star { module sdb {
|
||||
|
||||
@@ -47,7 +47,7 @@ published service Query
|
||||
|
||||
/** defines the command of the query.
|
||||
*/
|
||||
service com::sun::star::sdb::QueryDefinition;
|
||||
interface com::sun::star::sdb::XQueryDefinition;
|
||||
|
||||
|
||||
/** is used for customization of data appearance.
|
||||
|
||||
Binary file not shown.
@@ -19,8 +19,7 @@
|
||||
#ifndef __com_sun_star_loader_Java2_idl__
|
||||
#define __com_sun_star_loader_Java2_idl__
|
||||
|
||||
#include <com/sun/star/loader/Java.idl>
|
||||
|
||||
#include <com/sun/star/loader/XImplementationLoader.idl>
|
||||
|
||||
module com { module sun { module star { module loader {
|
||||
/**the same as <type scope="com::sun::star::loader">Java</type>.
|
||||
@@ -28,11 +27,12 @@ module com { module sun { module star { module loader {
|
||||
<type scope="com::sun::star::loader">Java</type> service was intended for
|
||||
UNO 2 components. Since UNO 2 is not supported anymore, the service
|
||||
name is reused again.
|
||||
|
||||
@deprecated
|
||||
*/
|
||||
published service Java2
|
||||
{
|
||||
service Java;
|
||||
|
||||
interface XImplementationLoader;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user