Ignore:
Timestamp:
Aug 22, 2007, 3:46:23 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/CParameter.cpp

    r284 r292  
    213213            dummyType = *params[i2];
    214214            bByVal = ( params[i2]->IsRef() == false ) ? TRUE:FALSE;
     215
     216
     217            /////////////////////////////////////////////////////////
     218            // ☆★☆ ジェネリクスサポート ☆★☆
     219
     220            if( dummyType.IsTypeParameter() )
     221            {
     222                // 型パラメータだったとき
     223
     224                int ptrLevel = PTR_LEVEL( dummyType.GetBasicType() );
     225
     226                if( leftType.HasActualGenericType() )
     227                {
     228                    // TODO: GetDummyActualGenericTypeを適切な形に実装し直す
     229                    dummyType = leftType.GetDummyActualGenericType();
     230                }
     231                else
     232                {
     233                    // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする
     234                    dummyType.SetBasicType( DEF_OBJECT );
     235                }
     236
     237                for( int i=0; i<ptrLevel; i++ )
     238                {
     239                    dummyType.PtrLevelUp();
     240                }
     241            }
     242
     243            //
     244            /////////////////////////////////////////////////////////
    215245        }
    216246
Note: See TracChangeset for help on using the changeset viewer.