Ignore:
Timestamp:
Aug 23, 2007, 6:17:00 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/Subroutine.cpp

    r292 r299  
    232232        GetVarType( ObjectName, leftType, false );
    233233
    234         /////////////////////////////////////////////////////////
    235         // ☆★☆ ジェネリクスサポート ☆★☆
    236 
    237         if( resultType.IsTypeParameter() )
    238         {
    239             // 型パラメータだったとき
    240 
    241             int ptrLevel = PTR_LEVEL( resultType.GetBasicType() );
    242 
    243             if( leftType.HasActualGenericType() )
    244             {
    245                 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す
    246                 resultType = leftType.GetDummyActualGenericType();
    247             }
    248             else
    249             {
    250                 // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする
    251                 resultType.SetBasicType( DEF_OBJECT );
    252             }
    253 
    254             for( int i=0; i<ptrLevel; i++ )
    255             {
    256                 resultType.PtrLevelUp();
    257             }
    258         }
    259 
    260         //
    261         /////////////////////////////////////////////////////////
     234        // 型パラメータを解決
     235        ResolveFormalGenericTypeParameter( resultType, leftType, pUserProc );
    262236    }
    263237
     
    314288    }
    315289
    316     resultType = subs[0]->ReturnType();
    317 
    318 
    319     /////////////////////////////////////////////////////////
    320     // ☆★☆ ジェネリクスサポート ☆★☆
    321 
    322     if( resultType.IsTypeParameter() )
    323     {
    324         // 型パラメータだったとき
    325 
    326         int ptrLevel = PTR_LEVEL( resultType.GetBasicType() );
    327 
    328         if( classType.HasActualGenericType() )
    329         {
    330             // TODO: GetDummyActualGenericTypeを適切な形に実装し直す
    331             resultType = classType.GetDummyActualGenericType();
    332         }
    333         else
    334         {
    335             // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする
    336             resultType.SetBasicType( DEF_OBJECT );
    337         }
    338 
    339         for( int i=0; i<ptrLevel; i++ )
    340         {
    341             resultType.PtrLevelUp();
    342         }
    343     }
    344 
    345     //
    346     /////////////////////////////////////////////////////////
     290    const UserProc *pUserProc = subs[0];
     291
     292    resultType = pUserProc->ReturnType();
     293
     294
     295    // 型パラメータを解決
     296    ResolveFormalGenericTypeParameter( resultType, classType, pUserProc );
    347297
    348298    return true;
Note: See TracChangeset for help on using the changeset viewer.