Changeset 326 in dev


Ignore:
Timestamp:
Sep 25, 2007, 12:26:53 PM (17 years ago)
Author:
dai_9181
Message:

メソッドの重複チェックで戻り値も判定するよにうにした

Location:
trunk/abdev
Files:
4 edited

Legend:

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

    r290 r326  
    140140
    141141    const PertialSchedule *pIfPertialSchedule = NULL;
    142     if( !NumOpe(Parameter,Type(),tempType) ){
     142    if( !NumOpe(Parameter,Type(DEF_BOOLEAN),tempType) ){
    143143        //NumOpe内でエラー
    144144    }
  • trunk/abdev/BasicCompiler64/Compile_Statement.cpp

    r308 r326  
    128128    int reg=REG_RAX;
    129129    Type resultType;
    130     if( !NumOpe(&reg,buffer,Type(),resultType) ){
     130    if( !NumOpe(&reg,buffer,Type(DEF_BOOLEAN),resultType) ){
    131131        return;
    132132    }
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r277 r326  
    210210    virtual bool IsDuplication( const UserProc *pUserProc ) const
    211211    {
    212         if( this->GetParentClassPtr() == pUserProc->GetParentClassPtr()
    213             && pUserProc->IsEqualSymbol( *this )
    214             && this->Params().Equals( pUserProc->Params() ) )
     212        if( this->GetParentClassPtr() == pUserProc->GetParentClassPtr() // 親クラスが等しい
     213            && pUserProc->IsEqualSymbol( *this )                        // 名前空間及び名前が等しい
     214            && this->Params().Equals( pUserProc->Params() )             // パラメータが等しい
     215            && this->returnType.Equals( pUserProc->returnType ) )       // 戻り値が等しい
    215216        {
    216217            return true;
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r325 r326  
    500500
    501501        if( pMethod->GetUserProc().GetName() == temporary ){
    502             if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() ) ){
    503                 //関数名、パラメータ属性が合致したとき
     502            if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() )
     503                && pMethod->GetUserProc().ReturnType().Equals( pUserProc->ReturnType() ) )
     504            {
     505                //関数名、パラメータ、戻り値が合致したとき
    504506                SetError(15,pUserProc->GetName().c_str(),nowLine);
    505507                return;
     
    514516    BOOST_FOREACH( CMethod *pMethod, pobj_c->GetMethods() ){
    515517        if( pMethod->GetUserProc().GetName() == temporary ){
    516             if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() ) )
     518            if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() )
     519                && pMethod->GetUserProc().ReturnType().Equals( pUserProc->ReturnType() ) )
    517520            {
    518521                //メンバ関数を上書き
Note: See TracChangeset for help on using the changeset viewer.