Ignore:
Timestamp:
Mar 21, 2008, 7:34:57 PM (16 years ago)
Author:
dai_9181
Message:

・デリゲートの共変戻り値、反変引数に対応した。
・core.libで定義されたデリゲートがアプリケーションプロジェクトで利用できないバグを修正。

File:
1 edited

Legend:

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

    r424 r448  
    470470        }
    471471
    472         if( !varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) )
    473         {
    474             //等しくなく、派生クラスでもないとき
    475             DifferentTypeError( varType, calcType,3,pszFuncName,ParmNum);
    476             return false;
     472        if( varType.IsDelegate() && calcType.IsDelegate() )
     473        {
     474            // デリゲート同士の比較の場合
     475            // ※共変戻り値及び反辺引数をサポートすること
     476            if( !varType.GetClass().GetDelegate().IsSimilar( calcType.GetClass().GetDelegate() ) )
     477            {
     478                // 等しいと見なされないとき
     479                DifferentTypeError( varType, calcType,3,pszFuncName,ParmNum);
     480                return false;
     481            }
     482        }
     483        else
     484        {
     485            // 一般的なクラスの比較の場合
     486
     487            if( !varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) )
     488            {
     489                //等しくなく、派生クラスでもないとき
     490                DifferentTypeError( varType, calcType,3,pszFuncName,ParmNum);
     491                return false;
     492            }
    477493        }
    478494    }
Note: See TracChangeset for help on using the changeset viewer.