Changeset 375 in dev for trunk/abdev/BasicCompiler_Common


Ignore:
Timestamp:
Nov 29, 2007, 9:08:55 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler_Common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/include/Class.h

    r370 r375  
    395395
    396396    // インターフェイス実装
    397     bool Implements( const CClass &interfaceClass, int nowLine );
     397    bool Implements( const CClass &interfaceClass, const Jenga::Common::Strings &typeParameters, int nowLine );
    398398    bool Implements( const char *interfaceNames, int nowLine );
    399399
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r374 r375  
    355355}
    356356
    357 bool CClass::Implements( const CClass &interfaceClass, int nowLine )
     357bool CClass::Implements( const CClass &interfaceClass, const Jenga::Common::Strings &typeParameters, int nowLine )
    358358{
    359359    if( !interfaceClass.IsInterface() && !interfaceClass.IsComInterface() )
     
    430430    BOOST_FOREACH( const std::string &paramStr, paramStrs )
    431431    {
     432        char className[VN_SIZE];
     433        Jenga::Common::Strings typeParameters;
     434        SplitGenericClassInstance( paramStr.c_str(), className, typeParameters );
     435
    432436        //継承元クラスを取得
    433         const CClass *pInterfaceClass = compiler.GetObjectModule().meta.GetClasses().Find( paramStr.c_str() );
     437        const CClass *pInterfaceClass = compiler.GetObjectModule().meta.GetClasses().Find( className );
    434438        if( !pInterfaceClass ){
    435439            SetError(106,paramStr.c_str(),nowLine);
     
    438442
    439443        // インターフェイスを継承する
    440         Implements( *pInterfaceClass, nowLine );
     444        Implements( *pInterfaceClass, typeParameters, nowLine );
    441445    }
    442446
Note: See TracChangeset for help on using the changeset viewer.