Changeset 85 in dev for BasicCompiler_Common/Class.cpp


Ignore:
Timestamp:
Mar 30, 2007, 4:19:07 AM (18 years ago)
Author:
dai_9181
Message:

オブジェクトの循環参照を許容した(構造体はダメ)。
抽象クラスをメンバの型に指定できるようにした。
メンバがオブジェクトだったとき、自動的にNewするのをやめ、初期値としてNothingを指定するようにした。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Class.cpp

    r79 r85  
    3030    }
    3131
     32    /*
     33    TODO: 消す
     34    メンバ定義は抽象クラスでもOK
    3235    if( IsObject() ){
    3336        if( GetClass().IsAbstract() ){
     
    3538            SetError(125,GetClass().name,cp);
    3639        }
    37     }
     40    }*/
    3841
    3942    //メンバ名
     
    574577    }
    575578
     579    /*
     580    TODO: 消す
     581    これはAB5からは良くなった(参照型になったため)
     582
    576583    //コンポジションの関係にあるメンバも検査する
    577584    for(int i=0;i < iMemberNum;i++){
     
    581588        }
    582589    }
     590    */
    583591
    584592    return false;
     
    860868    if(fConstructor||bDestructor){
    861869        // コンストラクタ、デストラクタのアクセシビリティをチェック
    862         if(dwAccess!=ACCESS_PUBLIC){
    863             SetError(116,NULL,nowLine);
    864             dwAccess=ACCESS_PUBLIC;
    865         }
    866870
    867871        //強制的にConst修飾子をつける
     
    946950    for(i=0;i<objClass.iMemberNum;i++){
    947951        const CMember *pMember = objClass.ppobj_Member[i];
    948         if(pMember->IsObject()){
     952        if(pMember->IsStruct()){
    949953            //循環参照でないかをチェック
    950954            if(pobj_LoopRefCheck->check(pMember->GetClass().name)){
Note: See TracChangeset for help on using the changeset viewer.