Ignore:
Timestamp:
Dec 16, 2007, 11:44:29 PM (16 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r376 r378  
    5050}
    5151
     52std::string Interface::GetFullNameWithActualGenericTypeParameters() const
     53{
     54    std::string interfaceName = this->GetClass().GetFullName();
     55    if( actualTypeParameters.size() )
     56    {
     57        std::string actualGenericTypesName;
     58        BOOST_FOREACH( const Type &typeParameter, actualTypeParameters )
     59        {
     60            if( actualGenericTypesName.size() )
     61            {
     62                actualGenericTypesName += ",";
     63            }
     64            actualGenericTypesName += typeParameter.ToString();
     65        }
     66
     67        interfaceName += "<" + actualGenericTypesName + ">";
     68    }
     69    return interfaceName;
     70}
    5271
    5372bool CClass::IsClass() const
     
    344363            1, ESC_OPERATOR,
    345364            1, ESC_AS,
    346             interfaceClass.GetName().c_str()
     365            pDestInterface->GetFullNameWithActualGenericTypeParameters().c_str()
    347366        );
    348367
     
    539558            }
    540559
     560            if( !pInterface->GetClass().IsReady() ){
     561                // インターフェイスが未解析のとき
     562                compiler.GetObjectModule().meta.GetClasses().LookaheadClass( pInterface->GetClass().GetName().c_str() );
     563            }
     564
    541565            CMethod *pMethodForOverride = pInterface->GetDynamicMethods().FindForOverride( pUserProc );
    542566            if( pMethodForOverride )
Note: See TracChangeset for help on using the changeset viewer.