Ignore:
Timestamp:
Aug 23, 2007, 10:58:43 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r299 r301  
    473473    resultType = pMember->GetType();
    474474
    475 
    476     /////////////////////////////////////////////////////////
    477     // ☆★☆ ジェネリクスサポート ☆★☆
    478 
    479     if( resultType.IsTypeParameter() )
    480     {
    481         // 型パラメータだったとき
    482 
    483         int ptrLevel = PTR_LEVEL( resultType.GetBasicType() );
    484 
    485         if( classType.HasActualGenericType() )
    486         {
    487             // TODO: GetDummyActualGenericTypeを適切な形に実装し直す
    488             resultType = classType.GetDummyActualGenericType();
    489         }
    490         else
    491         {
    492             // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする
    493             resultType.SetBasicType( DEF_OBJECT );
    494         }
    495 
    496         for( int i=0; i<ptrLevel; i++ )
    497         {
    498             resultType.PtrLevelUp();
    499         }
    500     }
    501 
    502     //
    503     /////////////////////////////////////////////////////////
     475    // 型パラメータを解決
     476    ResolveFormalGenericTypeParameter( resultType, classType );
    504477
    505478
     
    838811
    839812        for(i+=2,i2=0;;i++,i2++){
    840             if(buffer[i]==','||buffer[i]=='('||buffer[i]=='\0'){
     813            if(buffer[i]=='('||buffer[i]=='\0'){
    841814                temporary[i2]=0;
    842815                break;
     
    868841        }
    869842
    870         if( (string)temporary == "T" )
    871         {
    872             int test=0;
    873         }
    874 
    875843        if( !compiler.StringToType( temporary, type ) ){
    876844            SetError(3,temporary,cp);
     
    11601128            continue;
    11611129        }
     1130        if( Parameter[i] == '<' && IsStr == 0 )
     1131        {
     1132            if( IsGenericTypeSourcePart( Parameter + i ) )
     1133            {
     1134                // ジェネリクス構文
     1135                i3=GetStringInGenericBracket(temporary+i2,Parameter+i);
     1136                i+=i3-1;
     1137                i2+=i3-1;
     1138                continue;
     1139            }
     1140            else
     1141            {
     1142                // 一般構文
     1143            }
     1144        }
    11621145        if((Parameter[i]==','&&IsStr==0)||
    11631146            Parameter[i]=='\0'){
Note: See TracChangeset for help on using the changeset viewer.