INTEGRATION: CWS sb18 (1.5.4); FILE MERGED
2004/05/19 08:56:08 sb 1.5.4.3: #i21150# Check that an unpublished entity is not used in the declaration of a published entity. 2004/04/14 08:52:30 sb 1.5.4.2: #i21150# Added support for polymorphic struct types. 2004/04/08 14:37:17 sb 1.5.4.1: #i21150# Fixed UNOIDL typedef support; initial support for polymorphic struct types.
This commit is contained in:
parent
d43f5ed82f
commit
c95fdf355a
1 changed files with 22 additions and 7 deletions
|
@ -2,9 +2,9 @@
|
|||
*
|
||||
* $RCSfile: fehelper.cxx,v $
|
||||
*
|
||||
* $Revision: 1.5 $
|
||||
* $Revision: 1.6 $
|
||||
*
|
||||
* last change: $Author: rt $ $Date: 2004-03-30 16:46:55 $
|
||||
* last change: $Author: obo $ $Date: 2004-06-03 15:10:19 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
|
@ -67,6 +67,7 @@
|
|||
#ifndef _IDLC_ASTARRAY_HXX_
|
||||
#include <idlc/astarray.hxx>
|
||||
#endif
|
||||
#include "idlc/idlc.hxx"
|
||||
|
||||
using namespace ::rtl;
|
||||
|
||||
|
@ -99,6 +100,10 @@ AstType const * FeDeclarator::compose(AstDeclaration const * pDecl)
|
|||
AstArray* pArray;
|
||||
AstType* pType;
|
||||
|
||||
if ( pDecl == 0 )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
if ( !pDecl->isType() )
|
||||
{
|
||||
idlc()->error()->noTypeError(pDecl);
|
||||
|
@ -131,11 +136,16 @@ AstType const * FeDeclarator::compose(AstDeclaration const * pDecl)
|
|||
return NULL; // return through this statement should not happen
|
||||
}
|
||||
|
||||
FeInheritanceHeader::FeInheritanceHeader(NodeType nodeType, ::rtl::OString* pName, ::rtl::OString* pInherits)
|
||||
FeInheritanceHeader::FeInheritanceHeader(
|
||||
NodeType nodeType, ::rtl::OString* pName, ::rtl::OString* pInherits,
|
||||
std::vector< rtl::OString > * typeParameters)
|
||||
: m_nodeType(nodeType)
|
||||
, m_pName(pName)
|
||||
, m_pInherits(NULL)
|
||||
{
|
||||
if (typeParameters != 0) {
|
||||
m_typeParameters = *typeParameters;
|
||||
}
|
||||
initializeInherits(pInherits);
|
||||
}
|
||||
|
||||
|
@ -147,11 +157,16 @@ void FeInheritanceHeader::initializeInherits(::rtl::OString* pInherits)
|
|||
AstDeclaration* pDecl = pScope->lookupByName(*pInherits);
|
||||
if ( pDecl )
|
||||
{
|
||||
if ( pDecl->getNodeType() == getNodeType()
|
||||
&& (pDecl->getNodeType() != NT_interface
|
||||
|| static_cast< AstInterface* >(pDecl)->isDefined()) )
|
||||
AstDeclaration const * resolved = resolveTypedefs(pDecl);
|
||||
if ( resolved->getNodeType() == getNodeType()
|
||||
&& (resolved->getNodeType() != NT_interface
|
||||
|| static_cast< AstInterface const * >(
|
||||
resolved)->isDefined()) )
|
||||
{
|
||||
m_pInherits = pDecl;
|
||||
if ( idlc()->error()->checkPublished( pDecl ) )
|
||||
{
|
||||
m_pInherits = pDecl;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue