Changeset 293 in dev
- Timestamp:
- Aug 22, 2007, 11:09:26 AM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/NumOpe.cpp
r292 r293 455 455 GetArrayElement(termFull,VarName,ArrayElements); 456 456 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() ) 460 460 { 461 CallIndexerGetterProc(/*UseReg,*/ &resultType.GetClass(),VarName, leftType, ArrayElements,resultType);461 CallIndexerGetterProc(/*UseReg,*/classType,VarName, ArrayElements,resultType); 462 462 463 463 isLiteral = false; -
trunk/abdev/BasicCompiler32/Opcode.h
r292 r293 227 227 int CallOperatorProc(int idCalc, const Type &baseType, int *type_stack,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp); 228 228 void CallCastOperatorProc(Type &calcType,BOOL bCalcUseHeap,const Type &toType); 229 void CallIndexerGetterProc( const CClass *pobj_Class,char *ObjectName, const Type &leftType, char *Parameter,Type &resultType);229 void CallIndexerGetterProc( const Type &classType, char *ObjectName, char *Parameter,Type &resultType); 230 230 231 231 //Compile_Statement.cpp -
trunk/abdev/BasicCompiler32/OperatorProc.cpp
r292 r293 252 252 SetError(-1,"キャスト演算子がオーバーロードされていません。",cp); 253 253 } 254 void CallIndexerGetterProc( const CClass *pobj_Class,char *ObjectName, const Type &leftType, char *Parameter,Type &resultType){254 void CallIndexerGetterProc( const Type &classType, char *ObjectName, char *Parameter,Type &resultType){ 255 255 std::vector<const UserProc *> subs; 256 pobj_Class->GetMethods().Enum( CALC_ARRAY_GET, subs );256 classType.GetClass().GetMethods().Enum( CALC_ARRAY_GET, subs ); 257 257 if( subs.size() == 0 ){ 258 258 return; … … 272 272 int ptrLevel = PTR_LEVEL( resultType.GetBasicType() ); 273 273 274 if( leftType.HasActualGenericType() )274 if( classType.HasActualGenericType() ) 275 275 { 276 276 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す 277 resultType = leftType.GetDummyActualGenericType();277 resultType = classType.GetDummyActualGenericType(); 278 278 } 279 279 else -
trunk/abdev/BasicCompiler_Common/include/Class.h
r290 r293 91 91 ar & BOOST_SERIALIZATION_NVP( classType ); 92 92 ar & BOOST_SERIALIZATION_NVP( importedNamespaces ); 93 ar & BOOST_SERIALIZATION_NVP( formalGenericTypes ); 93 94 ar & boost::serialization::make_nvp( "pSuperClass", const_cast<CClass *&>(pSuperClass) ); 94 95 ar & BOOST_SERIALIZATION_NVP( blittableType ); -
trunk/abdev/BasicCompiler_Common/include/Type.h
r290 r293 39 39 { 40 40 ar & boost::serialization::make_nvp("pClass", const_cast<CClass *&>(pClass)); 41 ar & BOOST_SERIALIZATION_NVP( actualGenericTypes ); 41 42 } 42 43 else … … 193 194 std::string name; 194 195 Type type; 196 197 // XMLシリアライズ用 198 private: 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 195 208 public: 196 209 GenericType( const std::string &name, const Type &type )
Note:
See TracChangeset
for help on using the changeset viewer.