Changeset 293 in dev for trunk


Ignore:
Timestamp:
Aug 22, 2007, 11:09:26 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
5 edited

Legend:

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

    r292 r293  
    455455    GetArrayElement(termFull,VarName,ArrayElements);
    456456    if(ArrayElements[0]){
    457         Type leftType;
    458         GetVarType(VarName,leftType,false);
    459         if( leftType.IsObject() )
     457        Type classType;
     458        GetVarType(VarName,classType,false);
     459        if( classType.IsObject() )
    460460        {
    461             CallIndexerGetterProc(/*UseReg,*/&resultType.GetClass(),VarName, leftType, ArrayElements,resultType);
     461            CallIndexerGetterProc(/*UseReg,*/classType,VarName, ArrayElements,resultType);
    462462
    463463            isLiteral = false;
  • trunk/abdev/BasicCompiler32/Opcode.h

    r292 r293  
    227227int CallOperatorProc(int idCalc, const Type &baseType, int *type_stack,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp);
    228228void CallCastOperatorProc(Type &calcType,BOOL bCalcUseHeap,const Type &toType);
    229 void CallIndexerGetterProc(const CClass *pobj_Class,char *ObjectName, const Type &leftType, char *Parameter,Type &resultType);
     229void CallIndexerGetterProc( const Type &classType, char *ObjectName, char *Parameter,Type &resultType);
    230230
    231231//Compile_Statement.cpp
  • trunk/abdev/BasicCompiler32/OperatorProc.cpp

    r292 r293  
    252252    SetError(-1,"キャスト演算子がオーバーロードされていません。",cp);
    253253}
    254 void CallIndexerGetterProc(const CClass *pobj_Class,char *ObjectName, const Type &leftType, char *Parameter,Type &resultType){
     254void CallIndexerGetterProc( const Type &classType, char *ObjectName, char *Parameter,Type &resultType){
    255255    std::vector<const UserProc *> subs;
    256     pobj_Class->GetMethods().Enum( CALC_ARRAY_GET, subs );
     256    classType.GetClass().GetMethods().Enum( CALC_ARRAY_GET, subs );
    257257    if( subs.size() == 0 ){
    258258        return;
     
    272272        int ptrLevel = PTR_LEVEL( resultType.GetBasicType() );
    273273
    274         if( leftType.HasActualGenericType() )
     274        if( classType.HasActualGenericType() )
    275275        {
    276276            // TODO: GetDummyActualGenericTypeを適切な形に実装し直す
    277             resultType = leftType.GetDummyActualGenericType();
     277            resultType = classType.GetDummyActualGenericType();
    278278        }
    279279        else
  • trunk/abdev/BasicCompiler_Common/include/Class.h

    r290 r293  
    9191        ar & BOOST_SERIALIZATION_NVP( classType );
    9292        ar & BOOST_SERIALIZATION_NVP( importedNamespaces );
     93        ar & BOOST_SERIALIZATION_NVP( formalGenericTypes );
    9394        ar & boost::serialization::make_nvp( "pSuperClass", const_cast<CClass *&>(pSuperClass) );
    9495        ar & BOOST_SERIALIZATION_NVP( blittableType );
  • trunk/abdev/BasicCompiler_Common/include/Type.h

    r290 r293  
    3939        {
    4040            ar & boost::serialization::make_nvp("pClass", const_cast<CClass *&>(pClass));
     41            ar & BOOST_SERIALIZATION_NVP( actualGenericTypes );
    4142        }
    4243        else
     
    193194    std::string name;
    194195    Type type;
     196
     197    // XMLシリアライズ用
     198private:
     199    friend class boost::serialization::access;
     200    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     201    {
     202        trace_for_serialize( "serializing - GenericType" );
     203
     204        ar & BOOST_SERIALIZATION_NVP( name );
     205        ar & BOOST_SERIALIZATION_NVP( type );
     206    }
     207
    195208public:
    196209    GenericType( const std::string &name, const Type &type )
Note: See TracChangeset for help on using the changeset viewer.