Ignore:
Timestamp:
Mar 21, 2008, 2:23:20 PM (17 years ago)
Author:
dai_9181
Message:

共変戻り値のオーバーロードをサポートした。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Procedure.cpp

    r438 r447  
    2626            return true;
    2727        }
    28 
    29         if( this->returnType.IsTypeParameter() )
     28        else if( this->returnType.IsCovariant( pUserProc->returnType ) )
     29        {
     30            // 戻り値が共変
     31            return true;
     32        }
     33        else if( this->returnType.IsTypeParameter() )
    3034        {
    3135            // 型パラメータだったとき
     36
    3237            if( actualTypeParametersForThisProc[this->returnType.GetFormalTypeIndex()].Equals( pUserProc->returnType ) )
    3338            {
    3439                // 戻り値が等しい
     40                return true;
     41            }
     42            else if( actualTypeParametersForThisProc[this->returnType.GetFormalTypeIndex()].IsCovariant( pUserProc->returnType ) )
     43            {
     44                // 戻り値が共変
    3545                return true;
    3646            }
Note: See TracChangeset for help on using the changeset viewer.