Changeset 116 in dev for BasicCompiler32/Compile_Calc.cpp


Ignore:
Timestamp:
May 12, 2007, 4:34:39 PM (17 years ago)
Author:
dai_9181
Message:

暗黙的なアップキャストを可能にした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_Calc.cpp

    r75 r116  
    606606
    607607    if( calcType.IsObject() && !calcType.Equals( varType ) ){
    608         //キャスト演算子のオーバーロードに対応する
    609         CallCastOperatorProc(calcType,bCalcUseHeap,varType);
     608        bool isUpCast = false;
     609        if( varType.IsObject() ){
     610            if( varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) ){
     611                isUpCast = true;
     612            }
     613        }
     614        if( !isUpCast ){
     615            //キャスト演算子のオーバーロードに対応する
     616            CallCastOperatorProc(calcType,bCalcUseHeap,varType);
     617        }
    610618    }
    611619
Note: See TracChangeset for help on using the changeset viewer.