Ignore:
Timestamp:
Jan 2, 2008, 12:50:34 AM (16 years ago)
Author:
dai_9181
Message:

ジェネリクスインターフェイス実装時のオーバーロード解決ロジックを改良。(型パラメータを戻り値に持つメソッドのオーバーロードをミスしてしまうバグを修正)

Location:
trunk/abdev/BasicCompiler_Common/include
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/include/Class.h

    r379 r382  
    44#include <Program.h>
    55#include <Prototype.h>
     6#include <Type.h>
    67#include <Method.h>
    78#include <Member.h>
     
    148149    GenericTypes formalGenericTypes;
    149150
    150     // 継承クラス
     151    // 基底クラス
    151152    const CClass *pSuperClass;
    152153
    153     // 継承クラスの型パラメータ(実パラメータ)
     154    // 基底クラスの型パラメータ(実パラメータ)
    154155    Types superClassActualTypeParameters;
    155156
  • trunk/abdev/BasicCompiler_Common/include/Member.h

    r299 r382  
    77#include <Program.h>
    88#include <Prototype.h>
    9 #include <Type.h>
    109
    1110using namespace std;
  • trunk/abdev/BasicCompiler_Common/include/Method.h

    r353 r382  
    230230    void AddStatic(UserProc *pUserProc,Prototype::Accessibility accessibility);
    231231
    232     // オーバーライドのための検索
    233     CMethod *FindForOverride( const UserProc *pUserProc );
     232    /*!
     233    @brief  オーバーライドのための検索
     234    @param  actualTypeParametersForThisMethods thisオブジェクトで保有するメソッド群を対象とした実型パラメータ
     235            pUserProc 照らし合わせる関数
     236    */
     237    CMethod *FindForOverride( const Types &actualTypeParametersForThisMethods, const UserProc *pUserProc );
    234238
    235239    const CMethod *GetMethodPtr( const UserProc *pUserProc ) const;
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r364 r382  
    55#include <Program.h>
    66#include <Class.h>
    7 #include <Method.h>
    87#include <Procedure.h>
    98#include <Parameter.h>
     
    225224    }
    226225
    227     // オーバーライド用に関数同士が等しいかどうかをチェックする
    228     bool IsEqualForOverride( const UserProc *pUserProc ) const
    229     {
    230         if( this->GetName() == pUserProc->GetName()                     // 名前空間及び名前が等しい
    231             && this->Params().Equals( pUserProc->Params() )             // パラメータが等しい
    232             && this->returnType.Equals( pUserProc->returnType ) )       // 戻り値が等しい
    233         {
    234             return true;
    235         }
    236         return false;
    237     }
     226    /*!
     227    @brief  オーバーライド用に関数同士が等しいかどうかをチェックする
     228    @param  actualTypeParametersForThisProc thisオブジェクトで保有するメソッドを対象とした実型パラメータ
     229            pUserProc 照らし合わせる関数
     230    */
     231    bool IsEqualForOverride( const Types &actualTypeParametersForThisProc, const UserProc *pUserProc ) const;
    238232
    239233    bool IsMacro() const
Note: See TracChangeset for help on using the changeset viewer.